Commit 3a7a612607 for ffmpeg
commit 3a7a6126073d8a5a8d1b33fead60328a7e301651
Author: Romain Beauxis <romain.beauxis@gmail.com>
Date: Fri Oct 16 03:40:33 2026 +0200
tests/fate: show a seek past the end of a stream and a seek on video
Seek past the end of AAC in CAF and Opus in Matroska, so that the seek
lands on the last packet, which carries the padding to discard at the
end of the stream. Seek on the video stream of H.264 with AAC in MP4,
just after a keyframe, to show whether room is left for the pre-roll of
the audio stream.
The references record the current behaviour.
diff --git a/tests/fate/preroll.mak b/tests/fate/preroll.mak
index dabad89dcf..e8dcbd71ed 100644
--- a/tests/fate/preroll.mak
+++ b/tests/fate/preroll.mak
@@ -43,6 +43,19 @@ fate-preroll-aac-caf-decode-in-priming: CMD = framecrc -noaccurate_seek -ss 0.01
# open at the end.
FATE_PREROLL_SEEK-$(call DEMDEC, MOV, AAC) += fate-preroll-aac-mov-seek-forward
fate-preroll-aac-mov-seek-forward: CMD = run libavformat/tests/seek$(EXESUF) $(TARGET_SAMPLES)/gapless/102400samples_qt-lc-aac.m4a -seekforw 530000 -seekmin 400000 -frames 2 -duration 3
+
+# A seek past the end lands on the last packet, which carries the padding
+# to discard at the end of the stream.
+FATE_PREROLL_FFPROBE-$(call DEMDEC, CAF, AAC) += fate-preroll-aac-caf-landing-end
+fate-preroll-aac-caf-landing-end: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -select_streams a:0 -read_intervals 5.45%+\#2 -show_entries packet=pts,duration:packet_side_data=skip_samples,discard_padding -print_format compact $(TARGET_SAMPLES)/caf/aac.caf
+FATE_PREROLL_FFPROBE-$(call DEMDEC, MATROSKA, OPUS) += fate-preroll-opus-mkv-landing-end
+fate-preroll-opus-mkv-landing-end: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -select_streams a:0 -read_intervals 1.1%+\#2 -show_entries packet=pts,duration:packet_side_data=skip_samples,discard_padding -print_format compact $(TARGET_SAMPLES)/mkv/codec_delay_opus.mkv
+
+# A seek on the video stream, just after a keyframe: the audio pre-roll
+# still needs room.
+FATE_PREROLL_SEEK-$(call DEMDEC, MOV, AAC H264) += fate-preroll-aac-mov-seek-video
+fate-preroll-aac-mov-seek-video: CMD = run libavformat/tests/seek$(EXESUF) $(TARGET_SAMPLES)/h264/twofields_packet.mp4 -stream_id 0 -seekback 182000 -frames 4 -duration 3
+
$(FATE_PREROLL_SEEK-yes): libavformat/tests/seek$(EXESUF)
FATE_SAMPLES_FFPROBE += $(FATE_PREROLL_FFPROBE-yes)
diff --git a/tests/ref/fate/preroll-aac-caf-landing-end b/tests/ref/fate/preroll-aac-caf-landing-end
new file mode 100644
index 0000000000..d07325b7d6
--- /dev/null
+++ b/tests/ref/fate/preroll-aac-caf-landing-end
@@ -0,0 +1 @@
+packet|pts=239552|duration=448|side_datum/skip_samples:skip_samples=0|side_datum/skip_samples:discard_padding=576
diff --git a/tests/ref/fate/preroll-aac-mov-seek-video b/tests/ref/fate/preroll-aac-mov-seek-video
new file mode 100644
index 0000000000..c1ac11d006
--- /dev/null
+++ b/tests/ref/fate/preroll-aac-mov-seek-video
@@ -0,0 +1,134 @@
+ret: 0 st: 1 flags:1 dts: 1.962667 pts: 1.962667 pos:2810490 size: 342
+ret: 0 st: 1 flags:1 dts: 1.984000 pts: 1.984000 pos:2829340 size: 341
+ret: 0 st: 0 flags:1 dts: 1.968633 pts: 2.068733 pos:2829681 size:149436
+ret: 0 st: 1 flags:1 dts: 2.005333 pts: 2.005333 pos:2979117 size: 341
+ret: 0 st:-1 flags:0 ts:-1.000000
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st:-1 flags:1 ts:-0.105833
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st: 0 flags:0 ts: 0.788333
+ret: 0 st: 1 flags:1 dts: 0.981333 pts: 0.981333 pos:1385069 size: 341
+ret: 0 st: 0 flags:1 dts: 0.967633 pts: 1.067733 pos:1385410 size:225704
+ret: 0 st: 1 flags:1 dts: 1.002667 pts: 1.002667 pos:1611114 size: 342
+ret: 0 st: 1 flags:1 dts: 1.024000 pts: 1.024000 pos:1611456 size: 341
+ret: 0 st: 0 flags:1 ts: 1.682500
+ret: 0 st: 1 flags:1 dts: 0.960000 pts: 0.960000 pos:1364132 size: 341
+ret: 0 st: 1 flags:1 dts: 0.981333 pts: 0.981333 pos:1385069 size: 341
+ret: 0 st: 0 flags:1 dts: 0.967633 pts: 1.067733 pos:1385410 size:225704
+ret: 0 st: 1 flags:1 dts: 1.002667 pts: 1.002667 pos:1611114 size: 342
+ret: 0 st: 1 flags:0 ts:-0.423333
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st: 1 flags:1 ts: 0.470833
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st: 0 flags:0 dts: 0.033367 pts: 0.033367 pos: 260041 size: 15140
+ret: 0 st: 0 flags:0 dts: 0.066733 pts: 0.166833 pos: 275522 size: 48720
+ret: 0 st:-1 flags:0 ts: 1.365002
+ret: 0 st: 1 flags:1 dts: 1.984000 pts: 1.984000 pos:2829340 size: 341
+ret: 0 st: 0 flags:1 dts: 1.968633 pts: 2.068733 pos:2829681 size:149436
+ret: 0 st: 1 flags:1 dts: 2.005333 pts: 2.005333 pos:2979117 size: 341
+ret: 0 st: 1 flags:1 dts: 2.026667 pts: 2.026667 pos:2979458 size: 342
+ret: 0 st:-1 flags:1 ts:-0.740831
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st: 0 flags:0 ts: 0.153333
+ret: 0 st: 1 flags:1 dts: 0.981333 pts: 0.981333 pos:1385069 size: 341
+ret: 0 st: 0 flags:1 dts: 0.967633 pts: 1.067733 pos:1385410 size:225704
+ret: 0 st: 1 flags:1 dts: 1.002667 pts: 1.002667 pos:1611114 size: 342
+ret: 0 st: 1 flags:1 dts: 1.024000 pts: 1.024000 pos:1611456 size: 341
+ret: 0 st: 0 flags:1 ts: 1.047500
+ret: 0 st: 1 flags:1 dts: 0.960000 pts: 0.960000 pos:1364132 size: 341
+ret: 0 st: 1 flags:1 dts: 0.981333 pts: 0.981333 pos:1385069 size: 341
+ret: 0 st: 0 flags:1 dts: 0.967633 pts: 1.067733 pos:1385410 size:225704
+ret: 0 st: 1 flags:1 dts: 1.002667 pts: 1.002667 pos:1611114 size: 342
+ret: 0 st: 1 flags:0 ts: 1.941667
+ret: 0 st: 1 flags:1 dts: 1.962667 pts: 1.962667 pos:2810490 size: 342
+ret: 0 st: 1 flags:1 dts: 1.984000 pts: 1.984000 pos:2829340 size: 341
+ret: 0 st: 0 flags:1 dts: 1.968633 pts: 2.068733 pos:2829681 size:149436
+ret: 0 st: 1 flags:1 dts: 2.005333 pts: 2.005333 pos:2979117 size: 341
+ret: 0 st: 1 flags:1 ts:-0.164167
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st:-1 flags:0 ts: 0.730004
+ret: 0 st: 1 flags:1 dts: 0.981333 pts: 0.981333 pos:1385069 size: 341
+ret: 0 st: 0 flags:1 dts: 0.967633 pts: 1.067733 pos:1385410 size:225704
+ret: 0 st: 1 flags:1 dts: 1.002667 pts: 1.002667 pos:1611114 size: 342
+ret: 0 st: 1 flags:1 dts: 1.024000 pts: 1.024000 pos:1611456 size: 341
+ret: 0 st:-1 flags:1 ts: 1.624171
+ret: 0 st: 1 flags:1 dts: 0.960000 pts: 0.960000 pos:1364132 size: 341
+ret: 0 st: 1 flags:1 dts: 0.981333 pts: 0.981333 pos:1385069 size: 341
+ret: 0 st: 0 flags:1 dts: 0.967633 pts: 1.067733 pos:1385410 size:225704
+ret: 0 st: 1 flags:1 dts: 1.002667 pts: 1.002667 pos:1611114 size: 342
+ret: 0 st: 0 flags:0 ts:-0.481667
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st: 0 flags:1 ts: 0.412500
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st: 1 flags:0 ts: 1.306667
+ret: 0 st: 1 flags:1 dts: 1.322667 pts: 1.322667 pos:2041038 size: 342
+ret: 0 st: 1 flags:1 dts: 1.344000 pts: 1.344000 pos:2061588 size: 341
+ret: 0 st: 1 flags:1 dts: 1.365333 pts: 1.365333 pos:2061929 size: 341
+ret: 0 st: 1 flags:1 dts: 1.386667 pts: 1.386667 pos:2083322 size: 342
+ret: 0 st: 1 flags:1 ts:-0.799167
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st:-1 flags:0 ts: 0.095006
+ret: 0 st: 1 flags:1 dts: 0.981333 pts: 0.981333 pos:1385069 size: 341
+ret: 0 st: 0 flags:1 dts: 0.967633 pts: 1.067733 pos:1385410 size:225704
+ret: 0 st: 1 flags:1 dts: 1.002667 pts: 1.002667 pos:1611114 size: 342
+ret: 0 st: 1 flags:1 dts: 1.024000 pts: 1.024000 pos:1611456 size: 341
+ret: 0 st:-1 flags:1 ts: 0.989173
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st: 0 flags:0 ts: 1.883344
+ret: 0 st: 1 flags:1 dts: 1.984000 pts: 1.984000 pos:2829340 size: 341
+ret: 0 st: 0 flags:1 dts: 1.968633 pts: 2.068733 pos:2829681 size:149436
+ret: 0 st: 1 flags:1 dts: 2.005333 pts: 2.005333 pos:2979117 size: 341
+ret: 0 st: 1 flags:1 dts: 2.026667 pts: 2.026667 pos:2979458 size: 342
+ret: 0 st: 0 flags:1 ts:-0.222489
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st: 1 flags:0 ts: 0.671667
+ret: 0 st: 1 flags:1 dts: 0.682667 pts: 0.682667 pos: 973250 size: 342
+ret: 0 st: 1 flags:1 dts: 0.704000 pts: 0.704000 pos:1040112 size: 341
+ret: 0 st: 1 flags:1 dts: 0.725333 pts: 0.725333 pos:1040453 size: 341
+ret: 0 st: 1 flags:1 dts: 0.746667 pts: 0.746667 pos:1062686 size: 342
+ret: 0 st: 1 flags:1 ts: 1.565833
+ret: 0 st: 0 flags:1 dts: 0.967633 pts: 1.067733 pos:1385410 size:225704
+ret: 0 st: 0 flags:0 dts: 1.001000 pts: 1.001000 pos:1611797 size:120840
+ret: 0 st: 0 flags:0 dts: 1.034367 pts: 1.034367 pos:1733320 size: 84972
+ret: 0 st: 0 flags:0 dts: 1.067733 pts: 1.167833 pos:1818633 size: 39644
+ret: 0 st:-1 flags:0 ts:-0.539992
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
+ret: 0 st:-1 flags:1 ts: 0.354175
+ret: 0 st: 0 flags:1 dts:-0.033367 pts: 0.066733 pos: 32776 size:198404
+ret: 0 st: 1 flags:1 dts: 0.000000 pts: 0.000000 pos: 231180 size: 341
+ret: 0 st: 1 flags:1 dts: 0.021333 pts: 0.021333 pos: 231521 size: 341
+ret: 0 st: 0 flags:0 dts: 0.000000 pts: 0.000000 pos: 231862 size: 27496
diff --git a/tests/ref/fate/preroll-opus-mkv-landing-end b/tests/ref/fate/preroll-opus-mkv-landing-end
new file mode 100644
index 0000000000..e1391294ce
--- /dev/null
+++ b/tests/ref/fate/preroll-opus-mkv-landing-end
@@ -0,0 +1 @@
+packet|pts=1014|duration=20|side_datum/skip_samples:skip_samples=0|side_datum/skip_samples:discard_padding=706