[FFmpeg-devel] [PATCH] swscale: Add support for NV24 and NV42

Michael Niedermayer michael at niedermayer.cc
Sat May 11 19:56:05 EEST 2019


On Sat, May 11, 2019 at 05:40:41PM +0200, Michael Niedermayer wrote:
> On Thu, May 09, 2019 at 10:59:12PM -0700, Philip Langdale wrote:
> > I don't think this is terribly useful, as the only thing out there that
> > can even handle NV24 content is VDPAU and the only time you have to
> > deal with it is when doing VDPAU OpenGL interop where swscale is
> > irrelevant. In the other cases you can use YV24 (YUV444P).
> > 
> > But anyway, I was asked to do this for the sake of completeness.
> > 
> > The implementation is pretty straight-forward. Most of the existing
> > NV12 codepaths work regardless of subsampling and are re-used as is.
> > Where necessary I wrote the slightly different NV24 versions.
> > 
> > Finally, the one thing that confused me for a long time was the
> > asm specific x86 path that did an explicit exclusion check for NV12.
> > I replaced that with a semi-planar check and also updated the
> > equivalent PPC code, but which I cannot test.
> > 
> > Signed-off-by: Philip Langdale <philipl at overt.org>
> > ---
> >  libswscale/input.c                       |  2 +
> >  libswscale/output.c                      |  6 ++-
> >  libswscale/ppc/swscale_altivec.c         |  3 +-
> >  libswscale/ppc/swscale_vsx.c             |  3 +-
> >  libswscale/swscale_unscaled.c            | 51 ++++++++++++++++++++++++
> >  libswscale/utils.c                       |  2 +
> >  libswscale/version.h                     |  2 +-
> >  libswscale/x86/swscale_template.c        |  4 +-
> >  tests/ref/fate/filter-pixfmts-copy       |  2 +
> >  tests/ref/fate/filter-pixfmts-crop       |  2 +
> >  tests/ref/fate/filter-pixfmts-field      |  2 +
> >  tests/ref/fate/filter-pixfmts-fieldorder |  2 +
> >  tests/ref/fate/filter-pixfmts-hflip      |  2 +
> >  tests/ref/fate/filter-pixfmts-il         |  2 +
> >  tests/ref/fate/filter-pixfmts-null       |  2 +
> >  tests/ref/fate/filter-pixfmts-pad        |  2 +
> >  tests/ref/fate/filter-pixfmts-scale      |  2 +
> >  tests/ref/fate/filter-pixfmts-transpose  |  2 +
> >  tests/ref/fate/filter-pixfmts-vflip      |  2 +
> >  19 files changed, 86 insertions(+), 9 deletions(-)
> 
> was this tested with up/down scaling ?

also seems to require this:

diff --git a/tests/ref/fate/sws-pixdesc-query b/tests/ref/fate/sws-pixdesc-query
index 6c41a86e1e..bc8147e3c7 100644
--- a/tests/ref/fate/sws-pixdesc-query
+++ b/tests/ref/fate/sws-pixdesc-query
@@ -178,6 +178,8 @@ isYUV:
   nv20be
   nv20le
   nv21
+  nv24
+  nv42
   p010be
   p010le
   p016be
@@ -268,6 +270,8 @@ isPlanarYUV:
   nv20be
   nv20le
   nv21
+  nv24
+  nv42
   p010be
   p010le
   p016be
@@ -703,6 +707,8 @@ Planar:
   nv20be
   nv20le
   nv21
+  nv24
+  nv42
   p010be
   p010le
   p016be

[...]


-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Rewriting code that is poorly written but fully understood is good.
Rewriting code that one doesnt understand is a sign that one is less smart
then the original author, trying to rewrite it will not make it better.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190511/f39e28c3/attachment.sig>


More information about the ffmpeg-devel mailing list