From 320fa3bbe73c57e2ba5633a865b6997c1901b4b2 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 22 May 2020 02:25:23 +0200 Subject: video: add AV_PIX_FMT_UYYVYY411 conversion support It may be completely useless, and I can't verify it as no known samples or other known/accessible software using it, but why not? Putting this together with he 422 code requires making it slightly more generic. I'm still staying with a "huge" if tree instead of a table to select the scanline worker callback, because it's actually small and not huge (although it not being generic still feels slightly painful). --- test/ref/repack.txt | 3 ++- test/ref/zimg_formats.txt | 2 +- test/repack.c | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/ref/repack.txt b/test/ref/repack.txt index ec7a242315..6f0f5b281d 100644 --- a/test/ref/repack.txt +++ b/test/ref/repack.txt @@ -200,7 +200,8 @@ rgba64be => [pa] [un] gbrap16 | a=1:1 [tu] [tp] rgba64be => [pa] [un] gbrapf32 | a=1:1 [planar-f32] uyvy422 => [pa] [un] yuv422p | a=2:1 [tu] [tp] uyvy422 => [pa] [un] yuv422pf | a=2:1 [planar-f32] -uyyvyy411 => no +uyyvyy411 => [pa] [un] yuv411p | a=4:1 [tu] [tp] +uyyvyy411 => [pa] [un] yuv411pf | a=4:1 [planar-f32] vaapi => no vaapi_idct => no vaapi_moco => no diff --git a/test/ref/zimg_formats.txt b/test/ref/zimg_formats.txt index 94a348e782..a80ff8936e 100644 --- a/test/ref/zimg_formats.txt +++ b/test/ref/zimg_formats.txt @@ -115,7 +115,7 @@ rgba64 Zin Zout SWSin SWSout | rgba64be Zin Zout SWSin SWSout | uyvy422 Zin Zout SWSin SWSout | - uyyvyy411 | + uyyvyy411 Zin Zout | vaapi | vaapi_idct | vaapi_moco | diff --git a/test/repack.c b/test/repack.c index 00ff0cdc8b..f4b5c9c12a 100644 --- a/test/repack.c +++ b/test/repack.c @@ -141,8 +141,8 @@ static const struct entry repack_tests[] = { -AV_PIX_FMT_YUVA444P16, {P16(2), P16(3), P16(4), P16(1)}}, {1, 1, -AV_PIX_FMT_AYUV64BE, {P16(0x0100, 0x0200, 0x0300, 0x0400)}, -AV_PIX_FMT_YUVA444P16, {P16(2), P16(3), P16(4), P16(1)}}, - {2, 1, -AV_PIX_FMT_YUYV422, {P8(1, 2, 3, 4)}, - -AV_PIX_FMT_YUV422P, {P8(1, 3), P8(2), P8(4)}}, + {4, 1, -AV_PIX_FMT_YUYV422, {P8(1, 2, 3, 4, 5, 6, 7, 8)}, + -AV_PIX_FMT_YUV422P, {P8(1, 3, 5, 7), P8(2, 6), P8(4, 8)}}, {2, 1, -AV_PIX_FMT_YVYU422, {P8(1, 2, 3, 4)}, -AV_PIX_FMT_YUV422P, {P8(1, 3), P8(4), P8(2)}}, {2, 1, -AV_PIX_FMT_UYVY422, {P8(1, 2, 3, 4)}, @@ -159,6 +159,9 @@ static const struct entry repack_tests[] = { P16(0x4a4b)}, -AV_PIX_FMT_YUV422P16, {P16(0x1b1a, 0x2b2a), P16(0x3b3a), P16(0x4b4a)}}, + {8, 1, -AV_PIX_FMT_UYYVYY411, {P8(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)}, + -AV_PIX_FMT_YUV411P, {P8(2, 3, 5, 6, 8, 9, 11, 12), + P8(1, 7), P8(4, 10)}}, }; static bool is_true_planar(int imgfmt) -- cgit v1.2.3