PR #25724 opened by Kilian (lusoris) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25724 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25724.patch
Adds FATE coverage for `find_rect`, which had none. Seven tests cover a found object, inverted `xmin`/`xmax` and `ymin`/`ymax` search windows, and an object larger than the frame, each with `discard=0` and `discard=1`. The object image is generated at test time, so no sample is added. The inverted-window tests read uninitialised memory under MemorySanitizer without the window fix from 25612 and pass with it, so they also guard that fix. >From 970a5f96d92d37accb2bab380f495b081d106dfb Mon Sep 17 00:00:00 2001 From: lusoris <[email protected]> Date: Tue, 3 Nov 2026 16:22:50 +0100 Subject: [PATCH] fate/filter-video: add find_rect tests Cover a found object, inverted xmin/xmax and ymin/ymax windows and an object larger than the frame, each with discard=0 and discard=1. The object image is generated at test time. Signed-off-by: lusoris <[email protected]> --- tests/fate/filter-video.mak | 31 +++++++++++++++++++ tests/ref/fate/filter-find_rect-found | 2 ++ .../fate/filter-find_rect-largeobj-discard | 0 .../fate/filter-find_rect-largeobj-nodiscard | 2 ++ tests/ref/fate/filter-find_rect-xmin-discard | 0 .../ref/fate/filter-find_rect-xmin-nodiscard | 2 ++ tests/ref/fate/filter-find_rect-ymin-discard | 0 .../ref/fate/filter-find_rect-ymin-nodiscard | 2 ++ 8 files changed, 39 insertions(+) create mode 100644 tests/ref/fate/filter-find_rect-found create mode 100644 tests/ref/fate/filter-find_rect-largeobj-discard create mode 100644 tests/ref/fate/filter-find_rect-largeobj-nodiscard create mode 100644 tests/ref/fate/filter-find_rect-xmin-discard create mode 100644 tests/ref/fate/filter-find_rect-xmin-nodiscard create mode 100644 tests/ref/fate/filter-find_rect-ymin-discard create mode 100644 tests/ref/fate/filter-find_rect-ymin-nodiscard diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak index 95254ff3fcf..0b4da3dd44b 100644 --- a/tests/fate/filter-video.mak +++ b/tests/fate/filter-video.mak @@ -930,6 +930,37 @@ EBUR128_HEIGHT_DEPS = FFPROBE LAVFI_INDEV AEVALSRC_FILTER ARESAMPLE_FILTER EBUR1 FATE_FILTER_FFPROBE-$(call ALLYES, $(EBUR128_HEIGHT_DEPS)) += fate-filter-metadata-ebur128-height fate-filter-metadata-ebur128-height: CMD = run $(FILTER_METADATA_COMMAND) "aevalsrc=0.12589*sin(2*PI*997*t):channel_layout=TBL:sample_rate=48000:duration=0.4,ebur128=metadata=1" +tests/data/fate/find_rect_obj.pgm: TAG = GEN +tests/data/fate/find_rect_obj.pgm: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data/fate + $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin -f lavfi \ + -i "color=black:s=4x4:d=1,pad=8:8:0:0:white,format=gray" \ + -frames:v 1 -update 1 -y $(TARGET_PATH)/$@ 2>/dev/null + +FIND_RECT_DEPS = FFMPEG FFPROBE LAVFI_INDEV COLOR_FILTER PAD_FILTER FORMAT_FILTER \ + FIND_RECT_FILTER IMAGE2PIPE_DEMUXER PGM_DECODER PGM_ENCODER \ + IMAGE2_MUXER FILE_PROTOCOL PIPE_PROTOCOL WRAPPED_AVFRAME_DECODER + +FATE_FIND_RECT += fate-filter-find_rect-found \ + fate-filter-find_rect-xmin-nodiscard \ + fate-filter-find_rect-xmin-discard \ + fate-filter-find_rect-ymin-nodiscard \ + fate-filter-find_rect-ymin-discard \ + fate-filter-find_rect-largeobj-nodiscard \ + fate-filter-find_rect-largeobj-discard + +$(FATE_FIND_RECT): tests/data/fate/find_rect_obj.pgm + +fate-filter-find_rect-found: CMD = run $(FILTER_METADATA_COMMAND) "color=black:s=4x4:d=2:r=1,pad=8:8:0:0:white,pad=64:64:16:16:black,format=yuv420p,find_rect=object='$(TARGET_PATH)/tests/data/fate/find_rect_obj.pgm'" +fate-filter-find_rect-xmin-nodiscard: CMD = run $(FILTER_METADATA_COMMAND) "color=black:s=4x4:d=2:r=1,pad=8:8:0:0:white,pad=64:64:16:16:black,format=yuv420p,find_rect=object='$(TARGET_PATH)/tests/data/fate/find_rect_obj.pgm':xmin=30:xmax=10:discard=0" +fate-filter-find_rect-xmin-discard: CMD = run $(FILTER_METADATA_COMMAND) "color=black:s=4x4:d=2:r=1,pad=8:8:0:0:white,pad=64:64:16:16:black,format=yuv420p,find_rect=object='$(TARGET_PATH)/tests/data/fate/find_rect_obj.pgm':xmin=30:xmax=10:discard=1" +fate-filter-find_rect-ymin-nodiscard: CMD = run $(FILTER_METADATA_COMMAND) "color=black:s=4x4:d=2:r=1,pad=8:8:0:0:white,pad=64:64:16:16:black,format=yuv420p,find_rect=object='$(TARGET_PATH)/tests/data/fate/find_rect_obj.pgm':ymin=30:ymax=10:discard=0" +fate-filter-find_rect-ymin-discard: CMD = run $(FILTER_METADATA_COMMAND) "color=black:s=4x4:d=2:r=1,pad=8:8:0:0:white,pad=64:64:16:16:black,format=yuv420p,find_rect=object='$(TARGET_PATH)/tests/data/fate/find_rect_obj.pgm':ymin=30:ymax=10:discard=1" +fate-filter-find_rect-largeobj-nodiscard: CMD = run $(FILTER_METADATA_COMMAND) "color=black:s=4x4:d=2:r=1,format=yuv420p,find_rect=object='$(TARGET_PATH)/tests/data/fate/find_rect_obj.pgm':discard=0" +fate-filter-find_rect-largeobj-discard: CMD = run $(FILTER_METADATA_COMMAND) "color=black:s=4x4:d=2:r=1,format=yuv420p,find_rect=object='$(TARGET_PATH)/tests/data/fate/find_rect_obj.pgm':discard=1" + +FATE_FILTER_FFPROBE-$(call ALLYES, $(FIND_RECT_DEPS)) += $(FATE_FIND_RECT) +fate-find-rect: $(FATE_FIND_RECT) + READVITC_METADATA_DEPS = LAVFI_INDEV MOVIE_FILTER \ AVI_DEMUXER FFVHUFF_DECODER READVITC_FILTER FATE_METADATA_FILTER-$(call ALLYES, $(READVITC_METADATA_DEPS)) += fate-filter-metadata-readvitc-def diff --git a/tests/ref/fate/filter-find_rect-found b/tests/ref/fate/filter-find_rect-found new file mode 100644 index 00000000000..6af78b61b1a --- /dev/null +++ b/tests/ref/fate/filter-find_rect-found @@ -0,0 +1,2 @@ +pts=0|tag:lavfi.rect.y=16|tag:lavfi.rect.w=8|tag:lavfi.rect.h=8|tag:lavfi.rect.x=16|tag:lavfi.rect.score=0.000000 +pts=1|tag:lavfi.rect.y=16|tag:lavfi.rect.w=8|tag:lavfi.rect.h=8|tag:lavfi.rect.x=16|tag:lavfi.rect.score=0.000000 diff --git a/tests/ref/fate/filter-find_rect-largeobj-discard b/tests/ref/fate/filter-find_rect-largeobj-discard new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/ref/fate/filter-find_rect-largeobj-nodiscard b/tests/ref/fate/filter-find_rect-largeobj-nodiscard new file mode 100644 index 00000000000..e0b110c4b82 --- /dev/null +++ b/tests/ref/fate/filter-find_rect-largeobj-nodiscard @@ -0,0 +1,2 @@ +pts=0 +pts=1 diff --git a/tests/ref/fate/filter-find_rect-xmin-discard b/tests/ref/fate/filter-find_rect-xmin-discard new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/ref/fate/filter-find_rect-xmin-nodiscard b/tests/ref/fate/filter-find_rect-xmin-nodiscard new file mode 100644 index 00000000000..e0b110c4b82 --- /dev/null +++ b/tests/ref/fate/filter-find_rect-xmin-nodiscard @@ -0,0 +1,2 @@ +pts=0 +pts=1 diff --git a/tests/ref/fate/filter-find_rect-ymin-discard b/tests/ref/fate/filter-find_rect-ymin-discard new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/ref/fate/filter-find_rect-ymin-nodiscard b/tests/ref/fate/filter-find_rect-ymin-nodiscard new file mode 100644 index 00000000000..e0b110c4b82 --- /dev/null +++ b/tests/ref/fate/filter-find_rect-ymin-nodiscard @@ -0,0 +1,2 @@ +pts=0 +pts=1 -- 2.54.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
