Commit 584aedb4c7 for ffmpeg
commit 584aedb4c73ef631d9be2e40d9daf051828320fa
Author: Romain Beauxis <romain.beauxis@gmail.com>
Date: Thu Nov 12 21:39:12 2026 -0600
tests/fate/mp3: add a test for MPEG audio sample rate changes
The test encodes MP2 at 44.1 kHz then 48 kHz, decodes the two streams
concatenated, as MPEG audio files joined without re-encoding play, and
prints the sample rate of each decoded frame through ashowinfo.
diff --git a/tests/fate/mp3.mak b/tests/fate/mp3.mak
index edce1f98e6..4521c16e90 100644
--- a/tests/fate/mp3.mak
+++ b/tests/fate/mp3.mak
@@ -78,3 +78,30 @@ fate-mpegaudiodecheader-libmp3lame: CMD = run_with_temp "$(FFMPEG) -nostdin -hid
FATE_SAMPLES_FFMPEG += $(FATE_MPA_HEADER-yes)
FATE_FFMPEG += $(FATE_MPA_HEADER_LAME-yes)
fate-mpegaudiodecheader: $(FATE_MPA_HEADER-yes) $(FATE_MPA_HEADER_LAME-yes)
+
+# The reference keeps only the rate of each frame from the ashowinfo log.
+MPA_RATE_CHANGE = tests/data/fate/mpegaudiodec-sample-rate-change
+MPA_RATE_CHANGE_44100 = $(TARGET_PATH)/$(MPA_RATE_CHANGE).44100.mp2
+MPA_RATE_CHANGE_48000 = $(TARGET_PATH)/$(MPA_RATE_CHANGE).48000.mp2
+MPA_RATE_CHANGE_DEPS = LAVFI_INDEV ANULLSRC_FILTER AFORMAT_FILTER \
+ ARESAMPLE_FILTER ASHOWINFO_FILTER PCM_U8_DECODER \
+ MP2_ENCODER MP2_DECODER MP2_MUXER MP3_DEMUXER \
+ MPEGAUDIO_PARSER PCM_S16LE_ENCODER NULL_MUXER \
+ FILE_PROTOCOL CONCAT_PROTOCOL
+FATE_MPA_RATE_CHANGE-$(call ALLYES, $(MPA_RATE_CHANGE_DEPS)) += \
+ fate-mpegaudiodec-sample-rate-change
+fate-mpegaudiodec-sample-rate-change: CMD = \
+ ffmpeg -auto_conversion_filters -v error -f lavfi \
+ -i anullsrc=r=44100:cl=stereo:n=1152:d=0.07 \
+ -c:a mp2 -b:a 128k -f mp2 -y $(MPA_RATE_CHANGE_44100) && \
+ ffmpeg -auto_conversion_filters -v error -f lavfi \
+ -i anullsrc=r=48000:cl=stereo:n=1152:d=0.07 \
+ -c:a mp2 -b:a 128k -f mp2 -y $(MPA_RATE_CHANGE_48000) && \
+ ffmpeg -auto_conversion_filters -hide_banner \
+ -probesize 32 -analyzeduration 1 -c:a mp2 \
+ -i "concat:$(MPA_RATE_CHANGE_44100)|$(MPA_RATE_CHANGE_48000)" \
+ -af ashowinfo -c:a pcm_s16le -f null - 2>$(MPA_RATE_CHANGE).log && \
+ sed -n "s/.* rate:\([0-9]*\) nb_samples:.*/\1/p" $(MPA_RATE_CHANGE).log
+fate-mpegaudiodec-sample-rate-change: CLEANFILES = \
+ $(addprefix $(MPA_RATE_CHANGE),.44100.mp2 .48000.mp2 .log)
+FATE_FFMPEG += $(FATE_MPA_RATE_CHANGE-yes)
diff --git a/tests/ref/fate/mpegaudiodec-sample-rate-change b/tests/ref/fate/mpegaudiodec-sample-rate-change
new file mode 100644
index 0000000000..b7d84f4651
--- /dev/null
+++ b/tests/ref/fate/mpegaudiodec-sample-rate-change
@@ -0,0 +1,6 @@
+44100
+44100
+44100
+44100
+48000
+48000