Commit 743814d181 for ffmpeg

commit 743814d181eed7736062ab65f9bde46666604d3d
Author: Jun Zhao <barryjzhao@tencent.com>
Date:   Wed Oct 28 23:32:36 2026 +0800

    tests/fate: add a test for a filtergraph closing a looped input

    The graph closes its three looped inputs by letting trim return EOF
    while the main input is still active. On the unfixed code this
    deadlocks the CLI with a significant probability, so the test then
    only finishes by timeout; with the fix it passes deterministically.

    Signed-off-by: Jun Zhao <barryjzhao@tencent.com>

diff --git a/tests/fate/ffmpeg.mak b/tests/fate/ffmpeg.mak
index ff5dfdd4c8..c2bb00b67c 100644
--- a/tests/fate/ffmpeg.mak
+++ b/tests/fate/ffmpeg.mak
@@ -424,6 +424,22 @@ fate-ffmpeg-filter-in-eof: CMD = framecrc
     -filter_complex "[0][1]concat" -c:v rawvideo
 FATE_FFMPEG-$(call FRAMECRC, RAWVIDEO, RAWVIDEO, CONCAT_FILTER) += fate-ffmpeg-filter-in-eof

+# Test that the CLI does not deadlock when a filtergraph closes one of its
+# looped inputs (here via trim returning EOF) while other inputs are still
+# active; the closed input must no longer be chosen for receiving frames.
+# cf. #25548
+fate-ffmpeg-filter-closed-input: tests/data/vsynth1.yuv
+fate-ffmpeg-filter-closed-input: CMD = framecrc -auto_conversion_filters -filter_complex_threads 1 \
+    -stream_loop -1 -f rawvideo -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth1.yuv \
+    -stream_loop -1 -f rawvideo -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth1.yuv \
+    -stream_loop -1 -f rawvideo -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth1.yuv \
+    -stream_loop -1 -f rawvideo -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth1.yuv \
+    -filter_complex "[2:v][1:v]scale2ref=w=iw:h=ih[m][s1];[3:v][s1]scale2ref=w=iw:h=ih[f][s2];[f][m]alphamerge[k];[s2]vflip[bg];[bg][k]overlay=format=yuv420,null,null,null,null,null,null,null,null,trim=duration=1.64,setpts=PTS-STARTPTS[l];[0:v][l]overlay=format=yuv420:eof_action=pass[v]" \
+    -map "[v]" -t 3 -c:v rawvideo
+FATE_FFMPEG-$(call FRAMECRC, RAWVIDEO, RAWVIDEO, SCALE_FILTER SCALE2REF_FILTER \
+    ALPHAMERGE_FILTER VFLIP_FILTER OVERLAY_FILTER NULL_FILTER TRIM_FILTER      \
+    SETPTS_FILTER) += fate-ffmpeg-filter-closed-input
+
 # Test termination on streamcopy with -t as an output option.
 fate-ffmpeg-streamcopy-t: tests/data/vsynth1.yuv
 fate-ffmpeg-streamcopy-t: CMP = null
diff --git a/tests/ref/fate/ffmpeg-filter-closed-input b/tests/ref/fate/ffmpeg-filter-closed-input
new file mode 100644
index 0000000000..1f6079068c
--- /dev/null
+++ b/tests/ref/fate/ffmpeg-filter-closed-input
@@ -0,0 +1,80 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 352x288
+#sar 0: 0/1
+0,          0,          0,        1,   152064, 0x1cea0ba7
+0,          1,          1,        1,   152064, 0x947dd590
+0,          2,          2,        1,   152064, 0x5c0bee04
+0,          3,          3,        1,   152064, 0x5efc9938
+0,          4,          4,        1,   152064, 0x331308a1
+0,          5,          5,        1,   152064, 0xf9f16ce5
+0,          6,          6,        1,   152064, 0x3a2e33a9
+0,          7,          7,        1,   152064, 0xb9a9ea7d
+0,          8,          8,        1,   152064, 0x7fa12282
+0,          9,          9,        1,   152064, 0x7b233354
+0,         10,         10,        1,   152064, 0x49d0a5b0
+0,         11,         11,        1,   152064, 0x49f9a94e
+0,         12,         12,        1,   152064, 0xd3e98c54
+0,         13,         13,        1,   152064, 0x77f98a2a
+0,         14,         14,        1,   152064, 0x049802f8
+0,         15,         15,        1,   152064, 0x8b6b7384
+0,         16,         16,        1,   152064, 0xd3277af1
+0,         17,         17,        1,   152064, 0x99a6d93f
+0,         18,         18,        1,   152064, 0x889c5293
+0,         19,         19,        1,   152064, 0x45a90039
+0,         20,         20,        1,   152064, 0xd9146cbb
+0,         21,         21,        1,   152064, 0x005e9a56
+0,         22,         22,        1,   152064, 0xf7d02e17
+0,         23,         23,        1,   152064, 0xeae66c67
+0,         24,         24,        1,   152064, 0x638065bc
+0,         25,         25,        1,   152064, 0x6a5f6505
+0,         26,         26,        1,   152064, 0xb505c498
+0,         27,         27,        1,   152064, 0x1df19545
+0,         28,         28,        1,   152064, 0x5195d763
+0,         29,         29,        1,   152064, 0x4047ca43
+0,         30,         30,        1,   152064, 0xdbc1f6b0
+0,         31,         31,        1,   152064, 0xf7a5c728
+0,         32,         32,        1,   152064, 0x7038fded
+0,         33,         33,        1,   152064, 0x3da99139
+0,         34,         34,        1,   152064, 0x2ff4b65f
+0,         35,         35,        1,   152064, 0x0e52916a
+0,         36,         36,        1,   152064, 0x5ea64cf6
+0,         37,         37,        1,   152064, 0x82d22ff2
+0,         38,         38,        1,   152064, 0x0305df79
+0,         39,         39,        1,   152064, 0xe3415fbf
+0,         40,         40,        1,   152064, 0x8affa56d
+0,         41,         41,        1,   152064, 0xd4e49e08
+0,         42,         42,        1,   152064, 0x20cebfa9
+0,         43,         43,        1,   152064, 0x575c20ec
+0,         44,         44,        1,   152064, 0xfd500471
+0,         45,         45,        1,   152064, 0x61b47e73
+0,         46,         46,        1,   152064, 0x09ef53ff
+0,         47,         47,        1,   152064, 0x6e88c5c2
+0,         48,         48,        1,   152064, 0xbb87b483
+0,         49,         49,        1,   152064, 0x4bbad8ea
+0,         50,         50,        1,   152064, 0x05b789ef
+0,         51,         51,        1,   152064, 0x4bb46551
+0,         52,         52,        1,   152064, 0x9dddf64a
+0,         53,         53,        1,   152064, 0x2a8380b0
+0,         54,         54,        1,   152064, 0x4de3b652
+0,         55,         55,        1,   152064, 0xedb5a8e6
+0,         56,         56,        1,   152064, 0xe20f7c23
+0,         57,         57,        1,   152064, 0x5ab58bac
+0,         58,         58,        1,   152064, 0x1f1b8026
+0,         59,         59,        1,   152064, 0x91373915
+0,         60,         60,        1,   152064, 0x02344760
+0,         61,         61,        1,   152064, 0x30f5fcd5
+0,         62,         62,        1,   152064, 0xc711ad61
+0,         63,         63,        1,   152064, 0x24eca223
+0,         64,         64,        1,   152064, 0x52a48ddd
+0,         65,         65,        1,   152064, 0xa91c0f05
+0,         66,         66,        1,   152064, 0x8e364e18
+0,         67,         67,        1,   152064, 0xb15d38c8
+0,         68,         68,        1,   152064, 0xf25f6acc
+0,         69,         69,        1,   152064, 0xf34ddbff
+0,         70,         70,        1,   152064, 0xfc7bf570
+0,         71,         71,        1,   152064, 0x9dc72412
+0,         72,         72,        1,   152064, 0x445d1d59
+0,         73,         73,        1,   152064, 0x2f2768ef
+0,         74,         74,        1,   152064, 0xce09f9d6