PR #22324 opened by James Almer (jamrial) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22324 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22324.patch
Testing the fixed behavior from 16ee3d8d99a2 >From 6a79c8303c07b0c73a2c5c8c0b75f5a9384fe420 Mon Sep 17 00:00:00 2001 From: James Almer <[email protected]> Date: Fri, 27 Feb 2026 22:53:22 -0300 Subject: [PATCH] tests/fate/mov: add tests to demux specific streams within a IAMF Track Signed-off-by: James Almer <[email protected]> --- tests/fate/mov.mak | 35 ++++++++++++++----- tests/ref/fate/mov-mp4-iamf-7_1_4-video-first | 2 -- .../ref/fate/mov-mp4-iamf-7_1_4-video-first-2 | 16 +++++++++ .../ref/fate/mov-mp4-iamf-7_1_4-video-first-3 | 16 +++++++++ 4 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 tests/ref/fate/mov-mp4-iamf-7_1_4-video-first-2 create mode 100644 tests/ref/fate/mov-mp4-iamf-7_1_4-video-first-3 diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak index c227a46d78..457e25a810 100644 --- a/tests/fate/mov.mak +++ b/tests/fate/mov.mak @@ -293,17 +293,36 @@ fate-mov-mp4-iamf-5_1_4: CMD = transcode wav $(SRC) mp4 "-auto_conversion_filter "-show_entries stream_group=index,id,nb_streams,type:stream_group_components:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition" # Test muxing an IAMF track alongside a video one, with video as the first track. -FATE_MOV_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG4, MP4 MOV, WAV_DEMUXER FLAC_DECODER RAWVIDEO_DEMUXER PCM_S16LE_DECODER ARESAMPLE_FILTER) += fate-mov-mp4-iamf-7_1_4-video-first -fate-mov-mp4-iamf-7_1_4-video-first: tests/data/asynth-44100-12.wav tests/data/vsynth1.yuv tests/data/filtergraphs/iamf_7_1_4 tests/data/streamgroups/audio_element-7_1_4-2 tests/data/streamgroups/mix_presentation-7_1_4 -fate-mov-mp4-iamf-7_1_4-video-first: SRC = $(TARGET_PATH)/tests/data/asynth-44100-12.wav -fate-mov-mp4-iamf-7_1_4-video-first: SRC2 = $(TARGET_PATH)/tests/data/vsynth1.yuv -fate-mov-mp4-iamf-7_1_4-video-first: CMD = transcode wav $(SRC) mp4 "-auto_conversion_filters \ +tests/data/mov-mp4-iamf-7_1_4-video-first.mp4: TAG = GEN +tests/data/mov-mp4-iamf-7_1_4-video-first.mp4: tests/data/asynth-44100-12.wav tests/data/vsynth1.yuv tests/data/filtergraphs/iamf_7_1_4 tests/data/streamgroups/audio_element-7_1_4-2 tests/data/streamgroups/mix_presentation-7_1_4 +tests/data/mov-mp4-iamf-7_1_4-video-first.mp4: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data + $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \ + -f wav -i $(TARGET_PATH)/tests/data/asynth-44100-12.wav \ + -f rawvideo -s 352x288 -pix_fmt yuv420p -flags +bitexact -sws_flags +accurate_rnd+bitexact -i $(TARGET_PATH)/tests/data/vsynth1.yuv \ -/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/iamf_7_1_4 \ -/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-7_1_4-2 \ -/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-7_1_4 \ - -streamid 0:1 -streamid 1:2 -streamid 2:3 -streamid 3:4 -streamid 4:5 -streamid 5:6 -streamid 6:7 -streamid 7:8 -map 1:v:0 -map [FRONT] -map [TOP_FRONT] -map [CENTER] -map [LFE] -map [SIDE] -map [BACK] -map [TOP_BACK] -c:a flac -c:v mpeg4 -t 1" "-c:a copy -c:v copy -map 0" \ - "-show_entries stream_group=index,id,nb_streams,type:stream_group_components:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition:stream=index,id" \ - "-f rawvideo -s 352x288 -pix_fmt yuv420p -i $(SRC2)" + -streamid 0:1 -streamid 1:2 -streamid 2:3 -streamid 3:4 -streamid 4:5 -streamid 5:6 -streamid 6:7 -streamid 7:8 -map 1:v:0 -map [FRONT] -map [TOP_FRONT] -map [CENTER] -map [LFE] -map [SIDE] -map [BACK] -map [TOP_BACK] \ + -flags +bitexact -c:a flac -idct simple -dct fastint -sws_flags +accurate_rnd+bitexact -flags +bitexact -threads 1 -c:v mpeg4 -t 1 -fflags +bitexact -f mp4 $(TARGET_PATH)/tests/data/mov-mp4-iamf-7_1_4-video-first.mp4 -y 2>/dev/null + +# Demux everything +FATE_MOV_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG4, MP4 MOV, WAV_DEMUXER FLAC_DECODER RAWVIDEO_DEMUXER PCM_S16LE_DECODER ARESAMPLE_FILTER) += fate-mov-mp4-iamf-7_1_4-video-first +fate-mov-mp4-iamf-7_1_4-video-first: tests/data/mov-mp4-iamf-7_1_4-video-first.mp4 +fate-mov-mp4-iamf-7_1_4-video-first: CMD = stream_demux mp4 $(TARGET_PATH)/tests/data/mov-mp4-iamf-7_1_4-video-first.mp4 \ + "" "-c:a copy -c:v copy -map 0" \ + "-show_entries stream_group=index,id,nb_streams,type:stream_group_components:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition:stream=index,id" + +# Demux the first stream in the IAMF struct +FATE_MOV_FFMPEG-$(call TRANSCODE, MPEG4, MP4 MOV, WAV_DEMUXER FLAC_DECODER RAWVIDEO_DEMUXER PCM_S16LE_DECODER ARESAMPLE_FILTER) += fate-mov-mp4-iamf-7_1_4-video-first-2 +fate-mov-mp4-iamf-7_1_4-video-first-2: tests/data/mov-mp4-iamf-7_1_4-video-first.mp4 +fate-mov-mp4-iamf-7_1_4-video-first-2: CMD = stream_demux mp4 $(TARGET_PATH)/tests/data/mov-mp4-iamf-7_1_4-video-first.mp4 \ + "" "-c:a copy -map 0:g:0:0" \ + +# Demux the fourth stream in the IAMF struct. See 16ee3d8d99a2 +FATE_MOV_FFMPEG-$(call TRANSCODE, MPEG4, MP4 MOV, WAV_DEMUXER FLAC_DECODER RAWVIDEO_DEMUXER PCM_S16LE_DECODER ARESAMPLE_FILTER) += fate-mov-mp4-iamf-7_1_4-video-first-3 +fate-mov-mp4-iamf-7_1_4-video-first-3: tests/data/mov-mp4-iamf-7_1_4-video-first.mp4 +fate-mov-mp4-iamf-7_1_4-video-first-3: CMD = stream_demux mp4 $(TARGET_PATH)/tests/data/mov-mp4-iamf-7_1_4-video-first.mp4 \ + "" "-c:a copy -map 0:g:0:3" \ # Test muxing an IAMF track alongside a video one, with video as the last track. Also, use stream ids as track ids. FATE_MOV_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG4, MP4 MOV, WAV_DEMUXER FLAC_DECODER RAWVIDEO_DEMUXER PCM_S16LE_DECODER ARESAMPLE_FILTER) += fate-mov-mp4-iamf-7_1_4-video-last diff --git a/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first b/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first index 55cadb3d02..50867b4f2b 100644 --- a/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first +++ b/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first @@ -1,5 +1,3 @@ -f92a589b00c2ba98b78ae77e6edffa23 *tests/data/fate/mov-mp4-iamf-7_1_4-video-first.mp4 -416657 tests/data/fate/mov-mp4-iamf-7_1_4-video-first.mp4 #extradata 0: 30, 0x47ab0576 #extradata 1: 34, 0xafa70d5e #extradata 2: 34, 0xafa70d5e diff --git a/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first-2 b/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first-2 new file mode 100644 index 0000000000..1f86432730 --- /dev/null +++ b/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first-2 @@ -0,0 +1,16 @@ +#extradata 0: 34, 0xafa70d5e +#tb 0: 1/44100 +#media_type 0: audio +#codec_id 0: flac +#sample_rate 0: 44100 +#channel_layout_name 0: stereo +0, 0, 0, 4608, 1399, 0x6e89566e +0, 4608, 4608, 4608, 1442, 0x6c3c5b13 +0, 9216, 9216, 4608, 1380, 0xc497571b +0, 13824, 13824, 4608, 1383, 0x48e9510f +0, 18432, 18432, 4608, 1572, 0x9a514719 +0, 23040, 23040, 4608, 1391, 0x74ac5014 +0, 27648, 27648, 4608, 1422, 0x2f9d47c5 +0, 32256, 32256, 4608, 1768, 0x2a044b99 +0, 36864, 36864, 4608, 1534, 0xb0b35a3f +0, 41472, 41472, 2628, 926, 0xc26a5eae diff --git a/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first-3 b/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first-3 new file mode 100644 index 0000000000..88e4d18e4e --- /dev/null +++ b/tests/ref/fate/mov-mp4-iamf-7_1_4-video-first-3 @@ -0,0 +1,16 @@ +#extradata 0: 34, 0xaf7b0d5c +#tb 0: 1/44100 +#media_type 0: audio +#codec_id 0: flac +#sample_rate 0: 44100 +#channel_layout_name 0: mono +0, 0, 0, 4608, 1396, 0x0dcb5677 +0, 4608, 4608, 4608, 1439, 0xc46b5ac5 +0, 9216, 9216, 4608, 1377, 0x5b2a55fe +0, 13824, 13824, 4608, 1380, 0x045550d3 +0, 18432, 18432, 4608, 1568, 0xa2bc45f4 +0, 23040, 23040, 4608, 1388, 0x96c85007 +0, 27648, 27648, 4608, 1419, 0x4d4d466a +0, 32256, 32256, 4608, 1765, 0xacb84b24 +0, 36864, 36864, 4608, 1531, 0x996458aa +0, 41472, 41472, 2628, 923, 0xa7225edf -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
