[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