PR #25272 opened by Forgejo_Fairy
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25272
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25272.patch

The generated HLS seek fixture leaves MPEG-2 encoder threading automatic, 
allowing CPU availability to change its video packets. This causes the 
release/9.0 FATE failure reported in #24579.

Pin the output video encoder with `-threads:v 1`. Current master's seek 
reference selects different packets at the positions affected in 9.0, so no 
reference update is necessary here. The release/9.0 companion change also 
updates its two affected packet sizes.

Validation on x86-64 Linux with GCC 13.3 and pthreads: `fate-seek-hls` passes 
three fresh-fixture runs each with one, two, and eight CPUs selected through 
`taskset`. All nine outputs are identical, and `git diff --check` passes. 
Generated fixture files were removed before every run.

Related to #24579.


>From c2930fe4445ff05a379150fa01cf6e5d1d716d30 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <[email protected]>
Date: Tue, 20 Oct 2026 21:55:24 +0000
Subject: [PATCH] tests/fate/seek: pin the HLS video encoder thread count

The generated MPEG-2 video depends on the automatic slice thread count.
Use a single video encoder thread so CPU availability cannot change the
fixture. The current master seek reference does not sample the packets
whose sizes expose this difference on release/9.0, so it is unchanged.

Validated fate-seek-hls with freshly generated input three times each
under CPU affinity masks containing one, two, and eight CPUs.

Related-to: #24579
Assisted-by: Fairy
---
 tests/fate/seek.mak | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/fate/seek.mak b/tests/fate/seek.mak
index fa57d60841c..d33cef4d928 100644
--- a/tests/fate/seek.mak
+++ b/tests/fate/seek.mak
@@ -204,7 +204,7 @@ tests/data/hls-seek.m3u8: ffmpeg$(PROGSSUF)$(EXESUF) | 
tests/data
        $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
         -f lavfi -i "testsrc2=size=128x72:rate=10:d=6" \
         -f lavfi -i "aevalsrc=cos(2*PI*t)*sin(2*PI*(440+4*t)*t):d=6" \
-        -map 0:v -map 1:a -c:v mpeg2video -bf 2 -g 15 -dct int -idct int 
-flags +bitexact -c:a mp2fixed \
+        -map 0:v -map 1:a -c:v mpeg2video -threads:v 1 -bf 2 -g 15 -dct int 
-idct int -flags +bitexact -c:a mp2fixed \
         -f hls -hls_time 2 -hls_list_size 0 \
         -var_stream_map "v:0,agroup:a a:0,agroup:a,default:yes" 
-master_pl_name hls-seek.m3u8 \
         -hls_segment_filename $(TARGET_PATH)/tests/data/hls-seek-s%v-%d.ts \
-- 
2.54.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to