From: James Almer <jamrial@gmail.com> To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] avfilter/vsrc_testsrc: add support for semi planar formats to yuvtestsrc Date: Tue, 4 Mar 2025 18:47:28 -0300 Message-ID: <20250304214728.23595-1-jamrial@gmail.com> (raw) Signed-off-by: James Almer <jamrial@gmail.com> --- libavfilter/drawutils.c | 4 ++++ libavfilter/vsrc_testsrc.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index b86f666f1f..299eb0fd93 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -89,6 +89,10 @@ int ff_fill_ayuv_map(uint8_t *ayuv_map, enum AVPixelFormat pix_fmt) const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); if (desc->flags & AV_PIX_FMT_FLAG_RGB) return AVERROR(EINVAL); + if (desc->comp[0].plane == desc->comp[1].plane || + desc->comp[0].plane == desc->comp[2].plane || + desc->comp[1].plane == desc->comp[2].plane) + return AVERROR(EINVAL); return fill_map(desc, ayuv_map); } diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c index c842cacceb..71188e624a 100644 --- a/libavfilter/vsrc_testsrc.c +++ b/libavfilter/vsrc_testsrc.c @@ -1229,6 +1229,23 @@ static void yuvtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4], AV_WN16(&dstp[1][i*2 + j*dst_linesizep[1]], u); AV_WN16(&dstp[2][i*2 + j*dst_linesizep[2]], v); break; + case AV_PIX_FMT_NV24: + dstp[0][i + j*dst_linesizep[0] + 0] = y; + dstp[1][i*2 + j*dst_linesizep[1] + 0] = u; + dstp[1][i*2 + j*dst_linesizep[1] + 1] = v; + break; + case AV_PIX_FMT_NV42: + dstp[0][i + j*dst_linesizep[0] + 0] = y; + dstp[1][i*2 + j*dst_linesizep[1] + 1] = u; + dstp[1][i*2 + j*dst_linesizep[1] + 0] = v; + break; + case AV_PIX_FMT_P410: + case AV_PIX_FMT_P412: + case AV_PIX_FMT_P416: + AV_WN16(&dstp[0][i*2 + j*dst_linesizep[0] + 0], y << (16 - desc->comp[0].depth)); + AV_WN16(&dstp[1][i*4 + j*dst_linesizep[1] + 0], u << (16 - desc->comp[1].depth)); + AV_WN16(&dstp[1][i*4 + j*dst_linesizep[1] + 2], v << (16 - desc->comp[1].depth)); + break; } } @@ -1272,6 +1289,8 @@ static const enum AVPixelFormat yuvtest_pix_fmts[] = { AV_PIX_FMT_AYUV, AV_PIX_FMT_UYVA, AV_PIX_FMT_AYUV64, AV_PIX_FMT_VUYA, AV_PIX_FMT_VUYX, AV_PIX_FMT_XV48, AV_PIX_FMT_XV30LE, AV_PIX_FMT_V30XLE, AV_PIX_FMT_XV36, + AV_PIX_FMT_NV24, AV_PIX_FMT_NV42, + AV_PIX_FMT_P410, AV_PIX_FMT_P412, AV_PIX_FMT_P416, AV_PIX_FMT_NONE }; -- 2.48.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next reply other threads:[~2025-03-04 21:48 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-03-04 21:47 James Almer [this message] 2025-03-08 1:28 ` Michael Niedermayer 2025-03-08 22:30 ` James Almer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20250304214728.23595-1-jamrial@gmail.com \ --to=jamrial@gmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git