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

Submitted by Michael Niedermayer on May 11, 2019, 4:56 p.m.

Details

Message ID 20190511165605.GF3501@michaelspb
State New
Headers show

Commit Message

Michael Niedermayer May 11, 2019, 4:56 p.m.
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@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:


[...]

Patch hide | download patch | download mbox

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