Commit d2bb67cc71 for ffmpeg

commit d2bb67cc7108a67791556b81869d9b6fa9d7ea8d
Author: Romain Beauxis <romain.beauxis@gmail.com>
Date:   Thu Oct 15 15:03:01 2026 +0200

    tests/fate: show the pre-roll declared for AAC

    Print initial_padding and seek_preroll for aac-2048-priming.mov. The
    priming is the encoder delay at the start of the stream, while the
    pre-roll is how far before a seek target decoding has to start for the
    output to be reliable. Nothing declares a pre-roll for AAC.

    Also print it for HE-AAC with explicit SBR, where a frame is twice as
    many output samples, for SBR that does not double the sample rate, for
    AAC-LC with 960 samples frames, and for ELD.

    The references record the current output.

diff --git a/tests/fate/aac.mak b/tests/fate/aac.mak
index 52d6c5e925..4c4756a8f8 100644
--- a/tests/fate/aac.mak
+++ b/tests/fate/aac.mak
@@ -389,8 +389,20 @@ FATE_AAC_ENCODE_FFPROBE-$(call TRANSCODE, AAC, ADTS AAC, WAV_DEMUXER PCM_S16LE_D

 FATE_AAC_BSF-$(call FRAMECRC, AAC MATROSKA, AAC, AAC_PARSER AAC_ADTSTOASC_BSF MATROSKA_MUXER) += fate-aac-autobsf-adtstoasc

+# The pre-roll a seek needs, by how long a frame is in output samples.
+FATE_AAC_PREROLL-$(call DEMDEC, MOV, AAC) += fate-aac-seek-preroll-sbr \
+                                            fate-aac-seek-preroll-sbr-no-doubling \
+                                            fate-aac-seek-preroll-frame-length-short \
+                                            fate-aac-seek-preroll-eld
+fate-aac-seek-preroll-sbr: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=profile,sample_rate,seek_preroll -print_format compact $(TARGET_SAMPLES)/aac/al_sbr_cm_48_2.mp4
+fate-aac-seek-preroll-sbr-no-doubling: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=profile,sample_rate,seek_preroll -print_format compact $(TARGET_SAMPLES)/aac/al_sbr_sr_48_2_fsaac48.mp4
+fate-aac-seek-preroll-frame-length-short: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=profile,sample_rate,seek_preroll -print_format compact $(TARGET_SAMPLES)/aac/al04sf_48.mp4
+fate-aac-seek-preroll-eld: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=profile,sample_rate,seek_preroll -print_format compact $(TARGET_SAMPLES)/aac/er_eld2000np_48_ep0.mp4
+
+FATE_SAMPLES_FFPROBE += $(FATE_AAC_PREROLL-yes)
+
 FATE_SAMPLES_FFMPEG += $(FATE_AAC_ALL) $(FATE_AAC_FRAMECRC-yes) $(FATE_AAC_ENCODE-yes) $(FATE_AAC_BSF-yes)
 FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_AAC_ENCODE_FFPROBE-yes)

-fate-aac: $(FATE_AAC_ALL) $(FATE_AAC_FRAMECRC-yes) $(FATE_AAC_ENCODE-yes) $(FATE_AAC_ENCODE_FFPROBE-yes) $(FATE_AAC_BSF-yes)
+fate-aac: $(FATE_AAC_ALL) $(FATE_AAC_PREROLL-yes) $(FATE_AAC_FRAMECRC-yes) $(FATE_AAC_ENCODE-yes) $(FATE_AAC_ENCODE_FFPROBE-yes) $(FATE_AAC_BSF-yes)
 fate-aac-latm: $(FATE_AAC_LATM-yes)
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index ee3cd5e940..91e1699a5f 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -151,6 +151,10 @@ fate-mov-stream-shorter-than-movie: CMD = framemd5 -flags +bitexact -i $(TARGET_

 fate-mov-aac-2048-priming: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets -print_format compact $(TARGET_SAMPLES)/mov/aac-2048-priming.mov

+# The container's priming and the pre-roll a seek needs are different things.
+FATE_MOV_FFPROBE-$(call DEMDEC, MOV, AAC) += fate-mov-aac-2048-priming-preroll
+fate-mov-aac-2048-priming-preroll: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=initial_padding,seek_preroll -print_format compact $(TARGET_SAMPLES)/mov/aac-2048-priming.mov
+
 # Seeking into the stream must not drop samples to the container's priming.
 FATE_MOV-$(call FRAMECRC, MOV, AAC, PCM_S16LE_ENCODER ARESAMPLE_FILTER VOLUME_FILTER) += fate-mov-aac-2048-priming-seek
 fate-mov-aac-2048-priming-seek: CMD = framecrc -ss 2.3 -t 0.15 -i $(TARGET_SAMPLES)/mov/aac-2048-priming.mov -af volume=0,aresample -c:a pcm_s16le
diff --git a/tests/ref/fate/aac-seek-preroll-eld b/tests/ref/fate/aac-seek-preroll-eld
new file mode 100644
index 0000000000..a491c65571
--- /dev/null
+++ b/tests/ref/fate/aac-seek-preroll-eld
@@ -0,0 +1 @@
+stream|profile=ELD|sample_rate=48000|seek_preroll=0
diff --git a/tests/ref/fate/aac-seek-preroll-frame-length-short b/tests/ref/fate/aac-seek-preroll-frame-length-short
new file mode 100644
index 0000000000..f749ee3324
--- /dev/null
+++ b/tests/ref/fate/aac-seek-preroll-frame-length-short
@@ -0,0 +1 @@
+stream|profile=LC|sample_rate=48000|seek_preroll=0
diff --git a/tests/ref/fate/aac-seek-preroll-sbr b/tests/ref/fate/aac-seek-preroll-sbr
new file mode 100644
index 0000000000..184174cf41
--- /dev/null
+++ b/tests/ref/fate/aac-seek-preroll-sbr
@@ -0,0 +1 @@
+stream|profile=HE-AAC|sample_rate=48000|seek_preroll=0
diff --git a/tests/ref/fate/aac-seek-preroll-sbr-no-doubling b/tests/ref/fate/aac-seek-preroll-sbr-no-doubling
new file mode 100644
index 0000000000..184174cf41
--- /dev/null
+++ b/tests/ref/fate/aac-seek-preroll-sbr-no-doubling
@@ -0,0 +1 @@
+stream|profile=HE-AAC|sample_rate=48000|seek_preroll=0
diff --git a/tests/ref/fate/mov-aac-2048-priming-preroll b/tests/ref/fate/mov-aac-2048-priming-preroll
new file mode 100644
index 0000000000..27fc25da22
--- /dev/null
+++ b/tests/ref/fate/mov-aac-2048-priming-preroll
@@ -0,0 +1 @@
+stream|initial_padding=2048|seek_preroll=0