This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit cffc83f50d83066fb655265fcde61127a31168ce Author: Romain Beauxis <[email protected]> AuthorDate: Sat Mar 14 11:20:34 2026 -0500 Commit: toots <[email protected]> CommitDate: Thu Jun 11 14:06:20 2026 +0000 tests/fate/wav.mak: Add bitrate regression tests. --- tests/Makefile | 1 + tests/fate/wav.mak | 119 ++++++++++++++++++++++++ tests/ref/fate/wav-bad-avg-byterate | 53 +++++++++++ tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate | 7 ++ tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo | 1 + tests/ref/fate/wav-enc-adpcm-ms-bitrate | 7 ++ tests/ref/fate/wav-enc-adpcm-ms-encinfo | 1 + tests/ref/fate/wav-pcm-alaw-bad-blockalign | 4 + tests/ref/fate/wav-pcm-alaw-wrong-avg-byterate | 4 + tests/ref/fate/wav-pcm-mulaw-bad-blockalign | 4 + tests/ref/fate/wav-pcm-mulaw-wrong-avg-byterate | 4 + tests/ref/fate/wav-pcm-s16le-bad-blockalign | 4 + tests/ref/fate/wav-pcm-s16le-large-blockalign | 4 + tests/ref/fate/wav-pcm-s16le-wrong-avg-byterate | 4 + tests/ref/fate/wav-pcm-s24le-bad-blockalign | 4 + tests/ref/fate/wav-pcm-s24le-wrong-avg-byterate | 4 + tests/ref/fate/wav-pcm-u8-bad-blockalign | 4 + tests/ref/fate/wav-pcm-u8-wrong-avg-byterate | 4 + 18 files changed, 233 insertions(+) diff --git a/tests/Makefile b/tests/Makefile index 585d0bd3c7..8c7d4539a3 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -259,6 +259,7 @@ include $(SRC_PATH)/tests/fate/vorbis.mak include $(SRC_PATH)/tests/fate/vpx.mak include $(SRC_PATH)/tests/fate/vqf.mak include $(SRC_PATH)/tests/fate/vvc.mak +include $(SRC_PATH)/tests/fate/wav.mak include $(SRC_PATH)/tests/fate/wavpack.mak include $(SRC_PATH)/tests/fate/webm-dash-manifest.mak include $(SRC_PATH)/tests/fate/wma.mak diff --git a/tests/fate/wav.mak b/tests/fate/wav.mak new file mode 100644 index 0000000000..d437ce5d53 --- /dev/null +++ b/tests/fate/wav.mak @@ -0,0 +1,119 @@ +FATE_WAV_SAMPLES-$(CONFIG_WAV_DEMUXER) += fate-wav-bad-avg-byterate +fate-wav-bad-avg-byterate: libavformat/tests/seek$(EXESUF) +fate-wav-bad-avg-byterate: CMD = run libavformat/tests/seek$(EXESUF) $(TARGET_SAMPLES)/wav/wrong-avg-byterate.wav -seekback 500 -stream_id 0 + +FATE_WAV_ENCINFO-$(CONFIG_ADPCM_MS_ENCODER) += fate-wav-enc-adpcm-ms-encinfo +fate-wav-enc-adpcm-ms-encinfo: libavcodec/tests/encinfo$(EXESUF) +fate-wav-enc-adpcm-ms-encinfo: CMD = run libavcodec/tests/encinfo$(EXESUF) adpcm_ms + +FATE_WAV_ENCINFO-$(CONFIG_ADPCM_IMA_WAV_ENCODER) += fate-wav-enc-adpcm-ima-wav-encinfo +fate-wav-enc-adpcm-ima-wav-encinfo: libavcodec/tests/encinfo$(EXESUF) +fate-wav-enc-adpcm-ima-wav-encinfo: CMD = run libavcodec/tests/encinfo$(EXESUF) adpcm_ima_wav + +FATE_WAV_BITRATE-$(call ALLYES, ADPCM_MS_ENCODER PCM_S16LE_DECODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-enc-adpcm-ms-bitrate +fate-wav-enc-adpcm-ms-bitrate: tests/data/asynth-44100-2.wav +fate-wav-enc-adpcm-ms-bitrate: CMD = run_with_temp \ + "$(FFMPEG) -nostdin -hide_banner -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a adpcm_ms -y" \ + "ffprobe$(PROGSSUF)$(EXESUF) -v 0 -bitexact \ + -show_entries stream=codec_name,bit_rate:format=duration -print_format default=nk=1" \ + wav + +FATE_WAV_BITRATE-$(call ALLYES, ADPCM_IMA_WAV_ENCODER PCM_S16LE_DECODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-enc-adpcm-ima-wav-bitrate +fate-wav-enc-adpcm-ima-wav-bitrate: tests/data/asynth-44100-2.wav +fate-wav-enc-adpcm-ima-wav-bitrate: CMD = run_with_temp \ + "$(FFMPEG) -nostdin -hide_banner -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a adpcm_ima_wav -y" \ + "ffprobe$(PROGSSUF)$(EXESUF) -v 0 -bitexact \ + -show_entries stream=codec_name,bit_rate:format=duration -print_format default=nk=1" \ + wav + +WAV_BITRATE_PROBE = ffprobe$(PROGSSUF)$(EXESUF) -v 0 -bitexact \ + -show_entries stream=codec_name,bit_rate -print_format default=nk=1 + +# nAvgBytesPerSec wrong (too low), block_align correct: bit_rate must be corrected. +# nAvgBytesPerSec correct, block_align too small: bit_rate must be preserved. +# nAvgBytesPerSec correct, block_align too large: bit_rate must be preserved. + +FATE_WAV_BITRATE-$(call ALLYES, WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-s16le-wrong-avg-byterate +fate-wav-pcm-s16le-wrong-avg-byterate: tests/data/asynth-44100-2.wav +fate-wav-pcm-s16le-wrong-avg-byterate: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a copy -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 28 "\0210\0130\0001\0000" + +FATE_WAV_BITRATE-$(call ALLYES, WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-s16le-large-blockalign +fate-wav-pcm-s16le-large-blockalign: tests/data/asynth-44100-2.wav +fate-wav-pcm-s16le-large-blockalign: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a copy -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 32 "\0006\0000" + +FATE_WAV_BITRATE-$(call ALLYES, WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-s16le-bad-blockalign +fate-wav-pcm-s16le-bad-blockalign: tests/data/asynth-44100-2.wav +fate-wav-pcm-s16le-bad-blockalign: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a copy -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 32 "\0002\0000" + +FATE_WAV_BITRATE-$(call ALLYES, PCM_S16LE_DECODER PCM_U8_ENCODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-u8-wrong-avg-byterate +fate-wav-pcm-u8-wrong-avg-byterate: tests/data/asynth-44100-2.wav +fate-wav-pcm-u8-wrong-avg-byterate: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a pcm_u8 -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 28 "\0104\0254\0000\0000" + +FATE_WAV_BITRATE-$(call ALLYES, PCM_S16LE_DECODER PCM_U8_ENCODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-u8-bad-blockalign +fate-wav-pcm-u8-bad-blockalign: tests/data/asynth-44100-2.wav +fate-wav-pcm-u8-bad-blockalign: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a pcm_u8 -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 32 "\0001\0000" + +FATE_WAV_BITRATE-$(call ALLYES, PCM_S16LE_DECODER PCM_S24LE_ENCODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-s24le-wrong-avg-byterate +fate-wav-pcm-s24le-wrong-avg-byterate: tests/data/asynth-44100-2.wav +fate-wav-pcm-s24le-wrong-avg-byterate: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a pcm_s24le -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 28 "\0020\0261\0002\0000" + +FATE_WAV_BITRATE-$(call ALLYES, PCM_S16LE_DECODER PCM_S24LE_ENCODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-s24le-bad-blockalign +fate-wav-pcm-s24le-bad-blockalign: tests/data/asynth-44100-2.wav +fate-wav-pcm-s24le-bad-blockalign: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a pcm_s24le -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 32 "\0002\0000" + +FATE_WAV_BITRATE-$(call ALLYES, PCM_S16LE_DECODER PCM_ALAW_ENCODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-alaw-wrong-avg-byterate +fate-wav-pcm-alaw-wrong-avg-byterate: tests/data/asynth-44100-2.wav +fate-wav-pcm-alaw-wrong-avg-byterate: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a pcm_alaw -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 28 "\0104\0254\0000\0000" + +FATE_WAV_BITRATE-$(call ALLYES, PCM_S16LE_DECODER PCM_ALAW_ENCODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-alaw-bad-blockalign +fate-wav-pcm-alaw-bad-blockalign: tests/data/asynth-44100-2.wav +fate-wav-pcm-alaw-bad-blockalign: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a pcm_alaw -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 32 "\0001\0000" + +FATE_WAV_BITRATE-$(call ALLYES, PCM_S16LE_DECODER PCM_MULAW_ENCODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-mulaw-wrong-avg-byterate +fate-wav-pcm-mulaw-wrong-avg-byterate: tests/data/asynth-44100-2.wav +fate-wav-pcm-mulaw-wrong-avg-byterate: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a pcm_mulaw -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 28 "\0104\0254\0000\0000" + +FATE_WAV_BITRATE-$(call ALLYES, PCM_S16LE_DECODER PCM_MULAW_ENCODER WAV_MUXER WAV_DEMUXER FILE_PROTOCOL) += fate-wav-pcm-mulaw-bad-blockalign +fate-wav-pcm-mulaw-bad-blockalign: tests/data/asynth-44100-2.wav +fate-wav-pcm-mulaw-bad-blockalign: CMD = run_with_patched_temp \ + "$(FFMPEG) -nostdin -loglevel quiet \ + -i $(TARGET_PATH)/tests/data/asynth-44100-2.wav -c:a pcm_mulaw -fflags +bitexact -y" \ + "$(WAV_BITRATE_PROBE)" wav 32 "\0001\0000" + +FATE_EXTERN += $(FATE_WAV_SAMPLES-yes) +FATE-yes += $(FATE_WAV_ENCINFO-yes) +FATE_FFMPEG_FFPROBE += $(FATE_WAV_BITRATE-yes) + +fate-wav: $(FATE_WAV_SAMPLES-yes) $(FATE_WAV_ENCINFO-yes) $(FATE_WAV_BITRATE-yes) diff --git a/tests/ref/fate/wav-bad-avg-byterate b/tests/ref/fate/wav-bad-avg-byterate new file mode 100644 index 0000000000..3d23bbaa8b --- /dev/null +++ b/tests/ref/fate/wav-bad-avg-byterate @@ -0,0 +1,53 @@ +ret:-EOF +ret: 0 st:-1 flags:0 ts:-1.000000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 78 size: 1024 +ret: 0 st:-1 flags:1 ts: 1.894167 +ret:-EOF +ret: 0 st: 0 flags:0 ts: 0.788375 +ret:-EOF +ret: 0 st: 0 flags:1 ts:-0.317500 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 78 size: 1024 +ret: 0 st:-1 flags:0 ts: 2.576668 +ret:-EOF +ret: 0 st:-1 flags:1 ts: 1.470835 +ret:-EOF +ret: 0 st: 0 flags:0 ts: 0.365000 +ret:-EOF +ret: 0 st: 0 flags:1 ts:-0.740875 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 78 size: 1024 +ret: 0 st:-1 flags:0 ts: 2.153336 +ret:-EOF +ret: 0 st:-1 flags:1 ts: 1.047503 +ret:-EOF +ret: 0 st: 0 flags:0 ts:-0.058375 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 78 size: 1024 +ret: 0 st: 0 flags:1 ts: 2.835875 +ret:-EOF +ret: 0 st:-1 flags:0 ts: 1.730004 +ret:-EOF +ret: 0 st:-1 flags:1 ts: 0.624171 +ret:-EOF +ret: 0 st: 0 flags:0 ts:-0.481625 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 78 size: 1024 +ret: 0 st: 0 flags:1 ts: 2.412500 +ret:-EOF +ret: 0 st:-1 flags:0 ts: 1.306672 +ret:-EOF +ret: 0 st:-1 flags:1 ts: 0.200839 +ret:-EOF +ret: 0 st: 0 flags:0 ts:-0.905000 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 78 size: 1024 +ret: 0 st: 0 flags:1 ts: 1.989125 +ret:-EOF +ret: 0 st:-1 flags:0 ts: 0.883340 +ret:-EOF +ret: 0 st:-1 flags:1 ts:-0.222493 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 78 size: 1024 +ret: 0 st: 0 flags:0 ts: 2.671625 +ret:-EOF +ret: 0 st: 0 flags:1 ts: 1.565875 +ret:-EOF +ret: 0 st:-1 flags:0 ts: 0.460008 +ret:-EOF +ret: 0 st:-1 flags:1 ts:-0.645825 +ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 78 size: 1024 diff --git a/tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate b/tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate new file mode 100644 index 0000000000..f0fefe44f0 --- /dev/null +++ b/tests/ref/fate/wav-enc-adpcm-ima-wav-bitrate @@ -0,0 +1,7 @@ +[STREAM] +adpcm_ima_wav +128000 +[/STREAM] +[FORMAT] +6.000000 +[/FORMAT] diff --git a/tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo b/tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo new file mode 100644 index 0000000000..906f1179bf --- /dev/null +++ b/tests/ref/fate/wav-enc-adpcm-ima-wav-encinfo @@ -0,0 +1 @@ +adpcm_ima_wav bit_rate=128000 block_align=1024 bits_per_coded_sample=4 frame_size=1017 diff --git a/tests/ref/fate/wav-enc-adpcm-ms-bitrate b/tests/ref/fate/wav-enc-adpcm-ms-bitrate new file mode 100644 index 0000000000..ee789d49b0 --- /dev/null +++ b/tests/ref/fate/wav-enc-adpcm-ms-bitrate @@ -0,0 +1,7 @@ +[STREAM] +adpcm_ms +128000 +[/STREAM] +[FORMAT] +6.000000 +[/FORMAT] diff --git a/tests/ref/fate/wav-enc-adpcm-ms-encinfo b/tests/ref/fate/wav-enc-adpcm-ms-encinfo new file mode 100644 index 0000000000..e6ffaac231 --- /dev/null +++ b/tests/ref/fate/wav-enc-adpcm-ms-encinfo @@ -0,0 +1 @@ +adpcm_ms bit_rate=128000 block_align=1024 bits_per_coded_sample=4 frame_size=1012 diff --git a/tests/ref/fate/wav-pcm-alaw-bad-blockalign b/tests/ref/fate/wav-pcm-alaw-bad-blockalign new file mode 100644 index 0000000000..211b06b6ca --- /dev/null +++ b/tests/ref/fate/wav-pcm-alaw-bad-blockalign @@ -0,0 +1,4 @@ +[STREAM] +pcm_alaw +705600 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-alaw-wrong-avg-byterate b/tests/ref/fate/wav-pcm-alaw-wrong-avg-byterate new file mode 100644 index 0000000000..c4fafb276e --- /dev/null +++ b/tests/ref/fate/wav-pcm-alaw-wrong-avg-byterate @@ -0,0 +1,4 @@ +[STREAM] +pcm_alaw +352800 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-mulaw-bad-blockalign b/tests/ref/fate/wav-pcm-mulaw-bad-blockalign new file mode 100644 index 0000000000..716bd5718b --- /dev/null +++ b/tests/ref/fate/wav-pcm-mulaw-bad-blockalign @@ -0,0 +1,4 @@ +[STREAM] +pcm_mulaw +705600 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-mulaw-wrong-avg-byterate b/tests/ref/fate/wav-pcm-mulaw-wrong-avg-byterate new file mode 100644 index 0000000000..1029e46452 --- /dev/null +++ b/tests/ref/fate/wav-pcm-mulaw-wrong-avg-byterate @@ -0,0 +1,4 @@ +[STREAM] +pcm_mulaw +352800 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-s16le-bad-blockalign b/tests/ref/fate/wav-pcm-s16le-bad-blockalign new file mode 100644 index 0000000000..76fc8eb220 --- /dev/null +++ b/tests/ref/fate/wav-pcm-s16le-bad-blockalign @@ -0,0 +1,4 @@ +[STREAM] +pcm_s16le +1411200 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-s16le-large-blockalign b/tests/ref/fate/wav-pcm-s16le-large-blockalign new file mode 100644 index 0000000000..76fc8eb220 --- /dev/null +++ b/tests/ref/fate/wav-pcm-s16le-large-blockalign @@ -0,0 +1,4 @@ +[STREAM] +pcm_s16le +1411200 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-s16le-wrong-avg-byterate b/tests/ref/fate/wav-pcm-s16le-wrong-avg-byterate new file mode 100644 index 0000000000..12068f4cf9 --- /dev/null +++ b/tests/ref/fate/wav-pcm-s16le-wrong-avg-byterate @@ -0,0 +1,4 @@ +[STREAM] +pcm_s16le +705600 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-s24le-bad-blockalign b/tests/ref/fate/wav-pcm-s24le-bad-blockalign new file mode 100644 index 0000000000..8638430e5e --- /dev/null +++ b/tests/ref/fate/wav-pcm-s24le-bad-blockalign @@ -0,0 +1,4 @@ +[STREAM] +pcm_s24le +2116800 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-s24le-wrong-avg-byterate b/tests/ref/fate/wav-pcm-s24le-wrong-avg-byterate new file mode 100644 index 0000000000..66ed2affd1 --- /dev/null +++ b/tests/ref/fate/wav-pcm-s24le-wrong-avg-byterate @@ -0,0 +1,4 @@ +[STREAM] +pcm_s24le +1411200 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-u8-bad-blockalign b/tests/ref/fate/wav-pcm-u8-bad-blockalign new file mode 100644 index 0000000000..6ade567c50 --- /dev/null +++ b/tests/ref/fate/wav-pcm-u8-bad-blockalign @@ -0,0 +1,4 @@ +[STREAM] +pcm_u8 +705600 +[/STREAM] diff --git a/tests/ref/fate/wav-pcm-u8-wrong-avg-byterate b/tests/ref/fate/wav-pcm-u8-wrong-avg-byterate new file mode 100644 index 0000000000..a5b2d2a41d --- /dev/null +++ b/tests/ref/fate/wav-pcm-u8-wrong-avg-byterate @@ -0,0 +1,4 @@ +[STREAM] +pcm_u8 +352800 +[/STREAM] _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
