diff mbox series

[FFmpeg-devel,2/3] avfilter/vsrc_testsrc: add support for packed YUV formats in yuvtestsrc

Message ID 20241012201016.46469-2-jamrial@gmail.com
State New
Headers show
Series [FFmpeg-devel,1/3] avfilter/vsdc_testsrc: simplify yuvtest_fill_picture | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished

Commit Message

James Almer Oct. 12, 2024, 8:10 p.m. UTC
Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavfilter/vsrc_testsrc.c | 9 +++++++++
 1 file changed, 9 insertions(+)
diff mbox series

Patch

diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index b182abea0f..0df857c766 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -1155,6 +1155,13 @@  static void yuvtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4],
     uint32_t n;
 
     switch (fmt) {
+    case AV_PIX_FMT_UYVA:
+    case AV_PIX_FMT_VUYA:
+    case AV_PIX_FMT_VUYX:
+    case AV_PIX_FMT_AYUV:
+        n = (y << (ayuv_map[Y]*8)) + (u << (ayuv_map[U]*8)) + (v << (ayuv_map[V]*8)) + (255U << (ayuv_map[A]*8));
+        AV_WL32(&dstp[0][i*4 + j*dst_linesizep[0]], n);
+        break;
     case AV_PIX_FMT_YUV444P:
     case AV_PIX_FMT_YUVJ444P:
         dstp[0][i + j*dst_linesizep[0]] = y;
@@ -1210,6 +1217,8 @@  static const enum AVPixelFormat yuvtest_pix_fmts[] = {
     AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10,
     AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV444P14,
     AV_PIX_FMT_YUV444P16,
+    AV_PIX_FMT_AYUV, AV_PIX_FMT_UYVA,
+    AV_PIX_FMT_VUYA, AV_PIX_FMT_VUYX,
     AV_PIX_FMT_NONE
 };