There is a typo at 'libavfilter/vsrc_testsrc.c' in
'colorchart_fill_picture()' regarding patch height when using
colorchart test image source. With current default size 64x64 all is
fine, but when move to any non-square patch size, there is unexpected
behavior:

Test examples:

[Blackstripe on bottom if height > width]
ffmpeg -f lavfi -i colorchart=duration=30:rate=25:patch_size=120x144
-f mp4 -c:v libx264 colorchart1.m4v

[Segmentation fault if height < width]
ffmpeg -f lavfi -i colorchart=duration=30:rate=25:patch_size=120x100
-f mp4 -c:v libx264 colorchart2.m4v
From c484a4976c54083770c8749f954394c35dfd9c63 Mon Sep 17 00:00:00 2001
From: Vladimir Petrov <vppetrov...@gmail.com>
Date: Tue, 9 Jan 2024 18:42:19 +0200
Subject: [PATCH] avfilter/vsrc_testsrc: fix colorchart black stripe

Fixed blackstripe on bottom or segmentation fault in case
when patch width and height differ.

Signed-off-by: Vladimir Petrov <vppetrov...@gmail.com>
---
 libavfilter/vsrc_testsrc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index da17e950d8..3b5536badc 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -1977,7 +1977,7 @@ static void colorchart_fill_picture(AVFilterContext *ctx, AVFrame *frame)
     const int w = colorchart_presets[preset].w;
     const int h = colorchart_presets[preset].h;
     const int pw = test->pw;
-    const int ph = test->pw;
+    const int ph = test->ph;
 
     for (int y = 0; y < h; y++) {
         for (int x = 0; x < w; x++) {
-- 
2.43.0

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to