This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 6223b7fa0b780aa90671240e109cfd94ba6d16ef
Author:     James Almer <[email protected]>
AuthorDate: Sat Dec 27 17:13:56 2025 -0300
Commit:     James Almer <[email protected]>
CommitDate: Mon Dec 29 12:02:53 2025 -0300

    tests/fate/iamf: add tests for Projection mode ambisonic Audio Elements
    
    Signed-off-by: James Almer <[email protected]>
---
 tests/fate/iamf.mak                                | 20 ++++++
 ...amf-ambisonic_1 => iamf-ambisonic_1-projection} |  7 +-
 ...f-5_1-copy => iamf-ambisonic_1-projection-copy} | 74 ++++++----------------
 ...-5_1-copy => iamf-ambisonic_1-projection-demux} | 74 ++++++----------------
 .../audio_element-ambisonic_1-projection           |  2 +
 5 files changed, 62 insertions(+), 115 deletions(-)

diff --git a/tests/fate/iamf.mak b/tests/fate/iamf.mak
index eddea66ba1..a686be7952 100644
--- a/tests/fate/iamf.mak
+++ b/tests/fate/iamf.mak
@@ -48,6 +48,16 @@ fate-iamf-ambisonic_1: CMD = transcode wav $(SRC) iamf 
"-auto_conversion_filters
   -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -map [MONO0] -map 
[MONO1] -map [MONO2] -map [MONO3] -c:a flac -t 1" "-c:a copy -map 0" \
   "-show_entries 
stream_group=index,id,nb_streams,type:stream_group_components:stream_group_stream=index,id:stream_group_stream_disposition"
 
+FATE_IAMF-$(call TRANSCODE, FLAC, IAMF, WAV_DEMUXER PCM_S16LE_DECODER 
ARESAMPLE_FILTER) += fate-iamf-ambisonic_1-projection
+fate-iamf-ambisonic_1-projection: tests/data/asynth-44100-4.wav 
tests/data/filtergraphs/iamf_ambisonic_1 
tests/data/streamgroups/audio_element-ambisonic_1-projection 
tests/data/streamgroups/mix_presentation-ambisonic_1
+fate-iamf-ambisonic_1-projection: SRC = 
$(TARGET_PATH)/tests/data/asynth-44100-4.wav
+fate-iamf-ambisonic_1-projection: CMD = transcode wav $(SRC) iamf 
"-auto_conversion_filters \
+  -/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/iamf_ambisonic_1 \
+  -/stream_group 
$(TARGET_PATH)/tests/data/streamgroups/audio_element-ambisonic_1-projection \
+  -/stream_group 
$(TARGET_PATH)/tests/data/streamgroups/mix_presentation-ambisonic_1 \
+  -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -map [MONO0] -map 
[MONO1] -map [MONO2] -map [MONO3] -c:a flac -t 1" "-c:a copy -map 0" \
+  "-show_entries 
stream_group=index,id,nb_streams,type:stream_group_components:stream_group_stream=index,id:stream_group_stream_disposition"
+
 FATE_IAMF_SAMPLES-$(call FRAMECRC, IAMF, OPUS) += fate-iamf-stereo-demux
 fate-iamf-stereo-demux: CMD = stream_demux iamf 
$(TARGET_SAMPLES)/iamf/test_000076.iamf "" \
   "-c:a copy -frames:a 0 -map 0:g:\#42" \
@@ -63,6 +73,16 @@ fate-iamf-5_1-copy: CMD = stream_remux iamf 
$(TARGET_SAMPLES)/iamf/test_000059.i
   "-map 0 -stream_group map=0=0:st=0:st=1:st=2:st=3 -stream_group 
map=0=1:stg=0 -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3" "" "-c:a 
copy -frames:a 0 -map 0:g:i:42" \
   "-show_entries 
stream_group=index,id,nb_streams,type:stream_group_components:stream_group_stream=index,id:stream_group_stream_disposition"
 
+FATE_IAMF_SAMPLES-$(call FRAMECRC, IAMF, OPUS) += 
fate-iamf-ambisonic_1-projection-demux
+fate-iamf-ambisonic_1-projection-demux: CMD = stream_demux iamf 
$(TARGET_SAMPLES)/iamf/test_000113.iamf "" \
+  "-c:a copy -frames:a 0 -map 0:g:\#300" \
+  "-show_entries 
stream_group=index,id,nb_streams,type:stream_group_components:stream_group_stream=index,id:stream_group_stream_disposition"
+
+FATE_IAMF_SAMPLES-$(call REMUX, IAMF, OPUS_DECODER) += 
fate-iamf-ambisonic_1-projection-copy
+fate-iamf-ambisonic_1-projection-copy: CMD = stream_remux iamf 
$(TARGET_SAMPLES)/iamf/test_000113.iamf "" iamf \
+  "-map 0 -stream_group map=0=0:st=0:st=1:st=2:st=3 -stream_group 
map=0=1:stg=0 -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3" "" "-c:a 
copy -frames:a 0 -map 0:g:i:300" \
+  "-show_entries 
stream_group=index,id,nb_streams,type:stream_group_components:stream_group_stream=index,id:stream_group_stream_disposition"
+
 FATE_IAMF += $(FATE_IAMF-yes)
 FATE_IAMF_SAMPLES += $(FATE_IAMF_SAMPLES-yes)
 
diff --git a/tests/ref/fate/iamf-ambisonic_1 
b/tests/ref/fate/iamf-ambisonic_1-projection
similarity index 96%
copy from tests/ref/fate/iamf-ambisonic_1
copy to tests/ref/fate/iamf-ambisonic_1-projection
index e43f891597..78b5a743b6 100644
--- a/tests/ref/fate/iamf-ambisonic_1
+++ b/tests/ref/fate/iamf-ambisonic_1-projection
@@ -1,5 +1,5 @@
-c3751e6a2d85bd6a8318fe93b5754309 *tests/data/fate/iamf-ambisonic_1.iamf
-57006 tests/data/fate/iamf-ambisonic_1.iamf
+b87b28ca89da92d540047e8ad30bd470 
*tests/data/fate/iamf-ambisonic_1-projection.iamf
+57035 tests/data/fate/iamf-ambisonic_1-projection.iamf
 #extradata 0:       34, 0xad120cfe
 #extradata 1:       34, 0xad120cfe
 #extradata 2:       34, 0xad120cfe
@@ -75,7 +75,8 @@ audio_element_type=1
 default_w=0
 [SUBCOMPONENT]
 channel_layout=ambisonic 1
-ambisonics_mode=0
+ambisonics_mode=1
+demixing_matrix=32767/32768 0/32768 0/32768 0/32768 0/32768 32767/32768 
0/32768 0/32768 0/32768 0/32768 32767/32768 0/32768 0/32768 0/32768 0/32768 
32767/32768
 [/SUBCOMPONENT]
 [/COMPONENT]
 [STREAM]
diff --git a/tests/ref/fate/iamf-5_1-copy 
b/tests/ref/fate/iamf-ambisonic_1-projection-copy
similarity index 83%
copy from tests/ref/fate/iamf-5_1-copy
copy to tests/ref/fate/iamf-ambisonic_1-projection-copy
index fe912d4ee7..f38d0f7117 100644
--- a/tests/ref/fate/iamf-5_1-copy
+++ b/tests/ref/fate/iamf-ambisonic_1-projection-copy
@@ -1,17 +1,17 @@
-#extradata 0:       19, 0x3a0e0490
-#extradata 1:       19, 0x3a0e0490
+#extradata 0:       19, 0x3a04048f
+#extradata 1:       19, 0x3a04048f
 #extradata 2:       19, 0x3a04048f
 #extradata 3:       19, 0x3a04048f
 #tb 0: 1/48000
 #media_type 0: audio
 #codec_id 0: opus
 #sample_rate 0: 48000
-#channel_layout_name 0: stereo
+#channel_layout_name 0: mono
 #tb 1: 1/48000
 #media_type 1: audio
 #codec_id 1: opus
 #sample_rate 1: 48000
-#channel_layout_name 1: stereo
+#channel_layout_name 1: mono
 #tb 2: 1/48000
 #media_type 2: audio
 #codec_id 2: opus
@@ -28,49 +28,19 @@ id=0x12c
 nb_streams=4
 type=IAMF Audio Element
 [COMPONENT]
-nb_layers=2
-audio_element_type=0
+nb_layers=1
+audio_element_type=1
 default_w=0
 [SUBCOMPONENT]
-channel_layout=stereo
-output_gain_flags=0
-output_gain=0/1
-[/SUBCOMPONENT]
-[SUBCOMPONENT]
-channel_layout=6 channels (FL+FR+SL+SR+FC+LFE)
-output_gain_flags=0
-output_gain=0/1
-[/SUBCOMPONENT]
-[SUBCOMPONENT]
-name=demixing_info
-nb_subblocks=1
-type=1
-parameter_id=998
-parameter_rate=48000
-duration=960
-constant_subblock_duration=960
-[PIECE]
-subblock_duration=960
-dmixp_mode=1
-[/PIECE]
-[/SUBCOMPONENT]
-[SUBCOMPONENT]
-name=recon_gain_info
-nb_subblocks=1
-type=2
-parameter_id=101
-parameter_rate=48000
-duration=960
-constant_subblock_duration=960
-[PIECE]
-subblock_duration=960
-[/PIECE]
+channel_layout=ambisonic 1
+ambisonics_mode=1
+demixing_matrix=32767/32768 0/32768 0/32768 0/32768 0/32768 32767/32768 
0/32768 0/32768 0/32768 0/32768 32767/32768 0/32768 0/32768 0/32768 0/32768 
32767/32768
 [/SUBCOMPONENT]
 [/COMPONENT]
 [STREAM]
 index=0
 id=0x0
-DISPOSITION:default=1
+DISPOSITION:default=0
 DISPOSITION:dub=0
 DISPOSITION:original=0
 DISPOSITION:comment=0
@@ -86,7 +56,7 @@ DISPOSITION:non_diegetic=0
 DISPOSITION:captions=0
 DISPOSITION:descriptions=0
 DISPOSITION:metadata=0
-DISPOSITION:dependent=0
+DISPOSITION:dependent=1
 DISPOSITION:still_image=0
 DISPOSITION:multilayer=0
 [/STREAM]
@@ -172,7 +142,7 @@ en-us=test_mix_pres
 [/SUBCOMPONENT]
 [SUBCOMPONENT]
 nb_elements=1
-nb_layouts=2
+nb_layouts=1
 default_mix_gain=0/256
 [PIECE]
 stream_id=300
@@ -185,7 +155,7 @@ en-us=test_sub_mix_0_audio_element_0
 name=element_mix_config
 nb_subblocks=0
 type=0
-parameter_id=100
+parameter_id=999
 parameter_rate=48000
 duration=0
 constant_subblock_duration=0
@@ -195,23 +165,15 @@ constant_subblock_duration=0
 name=output_mix_config
 nb_subblocks=0
 type=0
-parameter_id=100
+parameter_id=998
 parameter_rate=48000
 duration=0
 constant_subblock_duration=0
 [/PIECE]
 [PIECE]
 sound_system=stereo
-integrated_loudness=-5273/256
-digital_peak=-2197/256
-true_peak=0/1
-dialogue_anchored_loudness=0/1
-album_anchored_loudness=0/1
-[/PIECE]
-[PIECE]
-sound_system=5.1(side)
-integrated_loudness=-5886/256
-digital_peak=-2845/256
+integrated_loudness=-2631/256
+digital_peak=0/256
 true_peak=0/1
 dialogue_anchored_loudness=0/1
 album_anchored_loudness=0/1
@@ -221,7 +183,7 @@ album_anchored_loudness=0/1
 [STREAM]
 index=0
 id=0x0
-DISPOSITION:default=1
+DISPOSITION:default=0
 DISPOSITION:dub=0
 DISPOSITION:original=0
 DISPOSITION:comment=0
@@ -237,7 +199,7 @@ DISPOSITION:non_diegetic=0
 DISPOSITION:captions=0
 DISPOSITION:descriptions=0
 DISPOSITION:metadata=0
-DISPOSITION:dependent=0
+DISPOSITION:dependent=1
 DISPOSITION:still_image=0
 DISPOSITION:multilayer=0
 [/STREAM]
diff --git a/tests/ref/fate/iamf-5_1-copy 
b/tests/ref/fate/iamf-ambisonic_1-projection-demux
similarity index 83%
copy from tests/ref/fate/iamf-5_1-copy
copy to tests/ref/fate/iamf-ambisonic_1-projection-demux
index fe912d4ee7..f38d0f7117 100644
--- a/tests/ref/fate/iamf-5_1-copy
+++ b/tests/ref/fate/iamf-ambisonic_1-projection-demux
@@ -1,17 +1,17 @@
-#extradata 0:       19, 0x3a0e0490
-#extradata 1:       19, 0x3a0e0490
+#extradata 0:       19, 0x3a04048f
+#extradata 1:       19, 0x3a04048f
 #extradata 2:       19, 0x3a04048f
 #extradata 3:       19, 0x3a04048f
 #tb 0: 1/48000
 #media_type 0: audio
 #codec_id 0: opus
 #sample_rate 0: 48000
-#channel_layout_name 0: stereo
+#channel_layout_name 0: mono
 #tb 1: 1/48000
 #media_type 1: audio
 #codec_id 1: opus
 #sample_rate 1: 48000
-#channel_layout_name 1: stereo
+#channel_layout_name 1: mono
 #tb 2: 1/48000
 #media_type 2: audio
 #codec_id 2: opus
@@ -28,49 +28,19 @@ id=0x12c
 nb_streams=4
 type=IAMF Audio Element
 [COMPONENT]
-nb_layers=2
-audio_element_type=0
+nb_layers=1
+audio_element_type=1
 default_w=0
 [SUBCOMPONENT]
-channel_layout=stereo
-output_gain_flags=0
-output_gain=0/1
-[/SUBCOMPONENT]
-[SUBCOMPONENT]
-channel_layout=6 channels (FL+FR+SL+SR+FC+LFE)
-output_gain_flags=0
-output_gain=0/1
-[/SUBCOMPONENT]
-[SUBCOMPONENT]
-name=demixing_info
-nb_subblocks=1
-type=1
-parameter_id=998
-parameter_rate=48000
-duration=960
-constant_subblock_duration=960
-[PIECE]
-subblock_duration=960
-dmixp_mode=1
-[/PIECE]
-[/SUBCOMPONENT]
-[SUBCOMPONENT]
-name=recon_gain_info
-nb_subblocks=1
-type=2
-parameter_id=101
-parameter_rate=48000
-duration=960
-constant_subblock_duration=960
-[PIECE]
-subblock_duration=960
-[/PIECE]
+channel_layout=ambisonic 1
+ambisonics_mode=1
+demixing_matrix=32767/32768 0/32768 0/32768 0/32768 0/32768 32767/32768 
0/32768 0/32768 0/32768 0/32768 32767/32768 0/32768 0/32768 0/32768 0/32768 
32767/32768
 [/SUBCOMPONENT]
 [/COMPONENT]
 [STREAM]
 index=0
 id=0x0
-DISPOSITION:default=1
+DISPOSITION:default=0
 DISPOSITION:dub=0
 DISPOSITION:original=0
 DISPOSITION:comment=0
@@ -86,7 +56,7 @@ DISPOSITION:non_diegetic=0
 DISPOSITION:captions=0
 DISPOSITION:descriptions=0
 DISPOSITION:metadata=0
-DISPOSITION:dependent=0
+DISPOSITION:dependent=1
 DISPOSITION:still_image=0
 DISPOSITION:multilayer=0
 [/STREAM]
@@ -172,7 +142,7 @@ en-us=test_mix_pres
 [/SUBCOMPONENT]
 [SUBCOMPONENT]
 nb_elements=1
-nb_layouts=2
+nb_layouts=1
 default_mix_gain=0/256
 [PIECE]
 stream_id=300
@@ -185,7 +155,7 @@ en-us=test_sub_mix_0_audio_element_0
 name=element_mix_config
 nb_subblocks=0
 type=0
-parameter_id=100
+parameter_id=999
 parameter_rate=48000
 duration=0
 constant_subblock_duration=0
@@ -195,23 +165,15 @@ constant_subblock_duration=0
 name=output_mix_config
 nb_subblocks=0
 type=0
-parameter_id=100
+parameter_id=998
 parameter_rate=48000
 duration=0
 constant_subblock_duration=0
 [/PIECE]
 [PIECE]
 sound_system=stereo
-integrated_loudness=-5273/256
-digital_peak=-2197/256
-true_peak=0/1
-dialogue_anchored_loudness=0/1
-album_anchored_loudness=0/1
-[/PIECE]
-[PIECE]
-sound_system=5.1(side)
-integrated_loudness=-5886/256
-digital_peak=-2845/256
+integrated_loudness=-2631/256
+digital_peak=0/256
 true_peak=0/1
 dialogue_anchored_loudness=0/1
 album_anchored_loudness=0/1
@@ -221,7 +183,7 @@ album_anchored_loudness=0/1
 [STREAM]
 index=0
 id=0x0
-DISPOSITION:default=1
+DISPOSITION:default=0
 DISPOSITION:dub=0
 DISPOSITION:original=0
 DISPOSITION:comment=0
@@ -237,7 +199,7 @@ DISPOSITION:non_diegetic=0
 DISPOSITION:captions=0
 DISPOSITION:descriptions=0
 DISPOSITION:metadata=0
-DISPOSITION:dependent=0
+DISPOSITION:dependent=1
 DISPOSITION:still_image=0
 DISPOSITION:multilayer=0
 [/STREAM]
diff --git a/tests/streamgroups/audio_element-ambisonic_1-projection 
b/tests/streamgroups/audio_element-ambisonic_1-projection
new file mode 100644
index 0000000000..18a75babd6
--- /dev/null
+++ b/tests/streamgroups/audio_element-ambisonic_1-projection
@@ -0,0 +1,2 @@
+type=iamf_audio_element:id=1:st=0:st=1:st=2:st=3:audio_element_type=scene,
+layer=ch_layout=ambisonic 
1:ambisonics_mode=projection:demixing_matrix=32767/32768|0/32768|0/32768|0/32768|0/32768|32767/32768|0/32768|0/32768|0/32768|0/32768|32767/32768|0/32768|0/32768|0/32768|0/32768|32767/32768,

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to