diff --git a/proto/ia_sequence_header.proto b/proto/ia_sequence_header.proto index fb55d358..e26d2ec8 100644 --- a/proto/ia_sequence_header.proto +++ b/proto/ia_sequence_header.proto @@ -19,6 +19,7 @@ enum ProfileVersion { PROFILE_VERSION_SIMPLE = 1; PROFILE_VERSION_BASE = 2; PROFILE_VERSION_BASE_ENHANCED = 3; + PROFILE_VERSION_RESERVED_255 = 256; } message IASequenceHeaderObuMetadata { diff --git a/proto/mix_presentation.proto b/proto/mix_presentation.proto index b025bb88..a3973948 100644 --- a/proto/mix_presentation.proto +++ b/proto/mix_presentation.proto @@ -170,6 +170,16 @@ message MixPresentationSubMix { repeated MixPresentationLayout layouts = 5; } +message MixPresentationTag { + optional string tag_name = 1; + optional string tag_value = 2; +} + +message MixPresentationTags { + optional uint32 num_tags = 1; + repeated MixPresentationTag tags = 2; +} + message MixPresentationObuMetadata { reserved 2; optional uint32 mix_presentation_id = 1; @@ -188,5 +198,10 @@ message MixPresentationObuMetadata { optional uint32 num_sub_mixes = 3; repeated MixPresentationSubMix sub_mixes = 4; + + // When true, `mix_presentation_tags` will be examined. + optional bool include_mix_presentation_tags = 11; + optional MixPresentationTags mix_presentation_tags = 12; + optional ObuHeaderMetadata obu_header = 8; } diff --git a/tests/README.md b/tests/README.md index 33de1906..efe175d5 100644 --- a/tests/README.md +++ b/tests/README.md @@ -63,6 +63,7 @@ Title | Summary `sine_1000_48kHz_512ms.wav` | Sine wave. | 2 | 48kHz | pcm_s16le | 512ms `sine_1000_48kHz.wav` | Sine wave. | 2 | 48kHz | pcm_s16le | 500ms `sine_1000_4oa_48kHz.wav` | Sine wave using fourth-order ambisonics. | 25 | 48kHz | pcm_s16le | 5000ms +`sine_1500_stereo_48khz_-15dBFS.wav` | Sine wave using at -15dBFS. | 2 | 48kHz | pcm_s16le | 5000ms `stereo_8_samples_48khz_s16le.wav` | Tiny test file. The first channel encodes 1, 2, ... 8. The second channel encodes 65535, 65534, ... 65528. | 2 | 48kHz | pcm_s16le | 8 samples `stereo_8_samples_48khz_s24le.wav` | Tiny test file. The first channel encodes 1, 2, ... 8. The second channel encodes 16777216, 16777215, ... 16777209. | 2 | 48kHz | pcm_s24le | 8 samples `Transport_TOA_5s.wav` | Short clip of vehicles driving by using third-order ambisonics. | 16 | 48kHz | pcm_s16le | 5s diff --git a/tests/coverage.csv b/tests/coverage.csv index 6eab7616..fb56a02e 100644 --- a/tests/coverage.csv +++ b/tests/coverage.csv @@ -7,7 +7,9 @@ "3.2","obu_type","test_000116" "3.3","Reserved OBU Syntax and Semantics","test_000077, test_000501" "3.4","IA Sequence Header OBU Syntax and Semantics","test_000000_3, test_000006" +"3.4","additional_profile == 255","test_000709, test_000710, test_000711" "3.4","ia_code","test_000007" +"3.4","primary_profile == 255","test_000709" "3.5","Codec Config OBU Syntax and Semantics","test_000072, test_000076, test_000090" "3.5","audio_roll_distance","test_000020, test_000021, test_000022, test_000024, test_000116, test_000117" "3.5","audio_roll_distance != -1","test_000091" @@ -38,37 +40,39 @@ "3.6.2","coupled_substream_count","test_000123, test_000132" "3.6.2","expanded_loudspeaker_layout == 3.0ch","test_000600, test_000614, test_000624" "3.6.2","expanded_loudspeaker_layout == 9.1.6","test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609" -"3.6.2","expanded_loudspeaker_layout == LFE","test_000603, test_000617, test_000626, test_000632" +"3.6.2","expanded_loudspeaker_layout == LFE","test_000603, test_000617, test_000626, test_000632, test_000700, test_000701, test_000702, test_000703" "3.6.2","expanded_loudspeaker_layout == Stereo-F","test_000609, test_000611, test_000623" -"3.6.2","expanded_loudspeaker_layout == Stereo-RS","test_000606, test_000620, test_000628" +"3.6.2","expanded_loudspeaker_layout == Stereo-RS","test_000606, test_000620, test_000628, test_000702, test_000703" "3.6.2","expanded_loudspeaker_layout == Stereo-S","test_000604, test_000618, test_000631" -"3.6.2","expanded_loudspeaker_layout == Stereo-SS","test_000605, test_000619, test_000627" -"3.6.2","expanded_loudspeaker_layout == Stereo-Si","test_000612" -"3.6.2","expanded_loudspeaker_layout == Stereo-TB","test_000608, test_000622, test_000630" -"3.6.2","expanded_loudspeaker_layout == Stereo-TF","test_000607, test_000621, test_000629" -"3.6.2","expanded_loudspeaker_layout == Stereo-TpSi","test_000613" +"3.6.2","expanded_loudspeaker_layout == Stereo-SS","test_000605, test_000619, test_000627, test_000702" +"3.6.2","expanded_loudspeaker_layout == Stereo-Si","test_000612, test_000703" +"3.6.2","expanded_loudspeaker_layout == Stereo-TB","test_000608, test_000622, test_000630, test_000702, test_000703" +"3.6.2","expanded_loudspeaker_layout == Stereo-TF","test_000607, test_000621, test_000629, test_000702, test_000703" +"3.6.2","expanded_loudspeaker_layout == Stereo-TpSi","test_000613, test_000703" "3.6.2","expanded_loudspeaker_layout == Top-4ch","test_000601, test_000615, test_000625" -"3.6.2","expanded_loudspeaker_layout == Top-6ch","test_000602, test_000610, test_000616, test_000633" +"3.6.2","expanded_loudspeaker_layout == Top-6Ch","test_000711" +"3.6.2","expanded_loudspeaker_layout == Top-6ch","test_000602, test_000610, test_000616, test_000633, test_000701" "3.6.2","loudspeaker_layout","test_000122, test_000129" "3.6.2","loudspeaker_layout == 3.1.2","test_000050, test_000051, test_000089, test_000095, test_000202, test_000214, test_000224, test_000225, test_000227, test_000228, test_000401, test_000404" "3.6.2","loudspeaker_layout == 5.1","test_000036, test_000049, test_000054, test_000073, test_000080, test_000081, test_000087, test_000092, test_000098, test_000118, test_000203, test_000215, test_000230, test_000402, test_000405" -"3.6.2","loudspeaker_layout == 5.1.2","test_000054, test_000069, test_000080, test_000081, test_000086, test_000204, test_000216, test_000224, test_000225, test_000226, test_000227, test_000228, test_000229" +"3.6.2","loudspeaker_layout == 5.1.2","test_000054, test_000069, test_000080, test_000081, test_000086, test_000204, test_000216, test_000224, test_000225, test_000226, test_000227, test_000228, test_000229, test_000705" "3.6.2","loudspeaker_layout == 5.1.4","test_000054, test_000080, test_000081, test_000205, test_000217, test_000631" "3.6.2","loudspeaker_layout == 7.1","test_000053, test_000206, test_000218" "3.6.2","loudspeaker_layout == 7.1.2","test_000050, test_000051, test_000089, test_000095, test_000207, test_000219" -"3.6.2","loudspeaker_layout == 7.1.4","test_000050, test_000070, test_000089, test_000095, test_000208, test_000220, test_000221, test_000222, test_000223, test_000225, test_000226, test_000228, test_000229, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630" -"3.6.2","loudspeaker_layout == Expanded","test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609, test_000610, test_000611, test_000612, test_000613, test_000614, test_000615, test_000616, test_000617, test_000618, test_000619, test_000620, test_000621, test_000622, test_000623, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000631, test_000632, test_000633" -"3.6.2","loudspeaker_layout == Mono","test_000097, test_000200, test_000212, test_000230" -"3.6.2","loudspeaker_layout == Stereo","test_000003, test_000036, test_000049, test_000050, test_000051, test_000053, test_000054, test_000073, test_000080, test_000081, test_000087, test_000089, test_000092, test_000095, test_000098, test_000118, test_000127, test_000128, test_000201, test_000213, test_000230, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000400, test_000401, test_000402, test_000403, test_000404, test_000405" +"3.6.2","loudspeaker_layout == 7.1.4","test_000050, test_000070, test_000089, test_000095, test_000208, test_000220, test_000221, test_000222, test_000223, test_000225, test_000226, test_000228, test_000229, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000704, test_000708" +"3.6.2","loudspeaker_layout == Expanded","test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609, test_000610, test_000611, test_000612, test_000613, test_000614, test_000615, test_000616, test_000617, test_000618, test_000619, test_000620, test_000621, test_000622, test_000623, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000631, test_000632, test_000633, test_000700, test_000701, test_000702, test_000703, test_000711" +"3.6.2","loudspeaker_layout == Mono","test_000097, test_000200, test_000212, test_000230, test_000702, test_000703, test_000707, test_000710" +"3.6.2","loudspeaker_layout == Stereo","test_000003, test_000036, test_000049, test_000050, test_000051, test_000053, test_000054, test_000073, test_000080, test_000081, test_000087, test_000089, test_000092, test_000095, test_000098, test_000118, test_000127, test_000128, test_000201, test_000213, test_000230, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000400, test_000401, test_000402, test_000403, test_000404, test_000405, test_000700, test_000702, test_000703, test_000704, test_000705, test_000706" "3.6.2","num_layers","test_000003, test_000036, test_000049, test_000050, test_000051, test_000053, test_000054, test_000073, test_000080, test_000081, test_000089, test_000092, test_000095, test_000098" "3.6.2","output_gain","test_000224, test_000225, test_000226, test_000227, test_000228, test_000229, test_000230" "3.6.2","output_gain_flags","test_000224, test_000225, test_000226, test_000227, test_000228, test_000229, test_000230" "3.6.2","output_gain_is_present_flag","test_000224, test_000225, test_000226, test_000227, test_000228, test_000229, test_000230" "3.6.2","subtream_count","test_000123, test_000132" "3.6.2.1","Channel Layout Generation Rule","test_000224, test_000225, test_000226, test_000227, test_000228, test_000229, test_000230" -"3.6.3","ambisonics_mono_config","test_000038, test_000039, test_000040, test_000045, test_000046, test_000065, test_000066, test_000068, test_000074, test_000075, test_000083, test_000086, test_000093, test_000094, test_000096, test_000100, test_000101, test_000102, test_000103, test_000108, test_000109, test_000110, test_000111, test_000127, test_000128, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000500, test_000610, test_000611, test_000614, test_000615, test_000616, test_000617, test_000618, test_000632, test_000633" +"3.6.3","ambisonics_mono_config","test_000038, test_000039, test_000040, test_000045, test_000046, test_000065, test_000066, test_000068, test_000074, test_000075, test_000083, test_000086, test_000093, test_000094, test_000096, test_000100, test_000101, test_000102, test_000103, test_000108, test_000109, test_000110, test_000111, test_000127, test_000128, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000500, test_000610, test_000611, test_000614, test_000615, test_000616, test_000617, test_000618, test_000632, test_000633, test_000700, test_000701, test_000708, test_000711" "3.6.3","ambisonics_projection_config","test_000042, test_000043, test_000044, test_000048, test_000104, test_000105, test_000106, test_000107, test_000112, test_000113, test_000114, test_000115, test_000131, test_000612, test_000613, test_000619, test_000620, test_000621, test_000622, test_000623" "3.6.4","ambisonics_mode","test_000130" +"3.6.4","ambisonics_mono_config","test_000706" "3.6.4","coupled_substream_count","test_000123, test_000132" "3.6.4","subtream_count","test_000123, test_000132" "3.7","count_label","test_000060" @@ -81,7 +85,8 @@ "3.7","loudness_layout == 7.1.4","test_000070" "3.7","loudness_layout == Stereo","test_000069, test_000070" "3.7","mix_presentation_annotations","test_000060" -"3.7","num_audio_elements","test_000058, test_000118" +"3.7","mix_presentation_tags","test_000704" +"3.7","num_audio_elements","test_000058, test_000118, test_000707, test_000710, test_000711" "3.7","num_sub_mixes","test_000124, test_000502" "3.7.1","Mix Presentation Annotations Syntax and Semantics","test_000060" "3.7.2","Mix Presentation Element Annotations Syntax and Semantics","test_000060" @@ -95,12 +100,12 @@ "3.7.3","sound_system == 5.1.4","test_000605, test_000619, test_000631" "3.7.3","sound_system == 7.1","test_000606, test_000620" "3.7.3","sound_system == 7.1.2","test_000607, test_000621" -"3.7.3","sound_system == 7.1.4","test_000608, test_000622, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000632" -"3.7.3","sound_system == 9.1.6","test_000609, test_000610, test_000611, test_000612, test_000613, test_000623, test_000633" -"3.7.3","sound_system == Mono","test_000600, test_000614, test_000615" -"3.7.3","sound_system == Stereo","test_000601" +"3.7.3","sound_system == 7.1.4","test_000608, test_000622, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000632, test_000700" +"3.7.3","sound_system == 9.1.6","test_000609, test_000610, test_000611, test_000612, test_000613, test_000623, test_000633, test_000701" +"3.7.3","sound_system == Mono","test_000600, test_000614, test_000615, test_000703" +"3.7.3","sound_system == Stereo","test_000601, test_000702, test_000704, test_000705, test_000706, test_000707, test_000708, test_000710, test_000711" "3.7.4","Element Mix Config Syntax and Semantics","test_000071, test_000088" -"3.7.4","default_mix_gain","test_000003, test_000064, test_000086, test_000087, test_000118, test_000127, test_000128, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000400, test_000401, test_000402, test_000403, test_000404, test_000405, test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609, test_000610, test_000611, test_000612, test_000613, test_000614, test_000615, test_000616, test_000617, test_000618, test_000619, test_000620, test_000621, test_000622, test_000623, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000631, test_000632, test_000633" +"3.7.4","default_mix_gain","test_000003, test_000064, test_000086, test_000087, test_000118, test_000127, test_000128, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000400, test_000401, test_000402, test_000403, test_000404, test_000405, test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609, test_000610, test_000611, test_000612, test_000613, test_000614, test_000615, test_000616, test_000617, test_000618, test_000619, test_000620, test_000621, test_000622, test_000623, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000631, test_000632, test_000633, test_000700, test_000701, test_000702, test_000703, test_000704, test_000705, test_000706, test_000707, test_000708, test_000710, test_000711" "3.7.5","Output Mix Config Syntax and Semantics","test_000071, test_000088" "3.7.6","Layout Syntax and Semantics","test_000069, test_000070" "3.7.6","layout_type","test_000126" @@ -147,7 +152,7 @@ "4","Reserved Temporal Unit OBU","test_000116" "4.1","Simple Profile","test_000003, test_000100, test_000119, test_000120, test_000122, test_000129, test_000130" "4.2","Base Profile","test_000058, test_000086, test_000087, test_000118, test_000128, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000400, test_000401, test_000402, test_000403, test_000404, test_000405" -"4.2","Base-Enhanced Profile","test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609, test_000610, test_000611, test_000612, test_000613, test_000614, test_000615, test_000616, test_000617, test_000618, test_000619, test_000620, test_000621, test_000622, test_000623, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000631, test_000632, test_000633" +"4.2","Base-Enhanced Profile","test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609, test_000610, test_000611, test_000612, test_000613, test_000614, test_000615, test_000616, test_000617, test_000618, test_000619, test_000620, test_000621, test_000622, test_000623, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000631, test_000632, test_000633, test_000700, test_000701, test_000702, test_000703, test_000704, test_000705, test_000706, test_000707, test_000708, test_000710, test_000711" "4.2","Base-Enhannced Profile","test_000123, test_000132" "4.2","Simple Profile","test_000118, test_000123, test_000127, test_000132" "4.2","temporal_delimiter_obu","test_000006" @@ -195,7 +200,7 @@ "7.5.2","Limiter","test_000070, test_000088, test_000096, test_000101, test_000102, test_000103, test_000105, test_000106, test_000107, test_000109, test_000110, test_000111, test_000113, test_000114, test_000115, test_000205, test_000208, test_000209, test_000210, test_000211, test_000217, test_000220, test_000221, test_000222, test_000223" "7.6.1","Dynamic Down-mix Matrix","test_000224, test_000225, test_000226, test_000227, test_000228, test_000229, test_000230" "7.6.2","Static Down-mix Matrix","test_000211, test_000226" -"8.5.1","Loudness Information","test_000086, test_000087, test_000118, test_000127, test_000128, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000400, test_000401, test_000402, test_000403, test_000404, test_000405, test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609, test_000610, test_000611, test_000612, test_000613, test_000614, test_000615, test_000616, test_000617, test_000618, test_000619, test_000620, test_000621, test_000622, test_000623, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000631, test_000632, test_000633" +"8.5.1","Loudness Information","test_000086, test_000087, test_000118, test_000127, test_000128, test_000300, test_000301, test_000302, test_000303, test_000304, test_000305, test_000400, test_000401, test_000402, test_000403, test_000404, test_000405, test_000600, test_000601, test_000602, test_000603, test_000604, test_000605, test_000606, test_000607, test_000608, test_000609, test_000610, test_000611, test_000612, test_000613, test_000614, test_000615, test_000616, test_000617, test_000618, test_000619, test_000620, test_000621, test_000622, test_000623, test_000624, test_000625, test_000626, test_000627, test_000628, test_000629, test_000630, test_000631, test_000632, test_000633, test_000700, test_000701, test_000702, test_000703, test_000704, test_000705, test_000706, test_000707, test_000708, test_000710, test_000711" "9.1.2.1","Annex A2.1: Down-mix parameter and Loudness","test_000209, test_000210, test_000221, test_000222, test_000223, test_000225" "9.1.2.2","Annex A2.2: Down-mix Mechanism","test_000224, test_000225, test_000226, test_000227, test_000228, test_000229, test_000230" "9.1.2.3","Annex A2.3: Recon Gain Generation","test_000227, test_000228, test_000229, test_000230" diff --git a/tests/sine_1500_stereo_48khz_-15dBFS.wav b/tests/sine_1500_stereo_48khz_-15dBFS.wav new file mode 100644 index 00000000..6c20a981 Binary files /dev/null and b/tests/sine_1500_stereo_48khz_-15dBFS.wav differ diff --git a/tests/test_000618_rendered_id_43_sub_mix_0_layout_0.wav b/tests/test_000618_rendered_id_43_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..45f8d0f5 Binary files /dev/null and b/tests/test_000618_rendered_id_43_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000618_rendered_id_43_sub_mix_0_layout_1.wav b/tests/test_000618_rendered_id_43_sub_mix_0_layout_1.wav new file mode 100644 index 00000000..0fde0380 Binary files /dev/null and b/tests/test_000618_rendered_id_43_sub_mix_0_layout_1.wav differ diff --git a/tests/test_000700.iamf b/tests/test_000700.iamf new file mode 100644 index 00000000..e6a624ee Binary files /dev/null and b/tests/test_000700.iamf differ diff --git a/tests/test_000700.textproto b/tests/test_000700.textproto new file mode 100644 index 00000000..250ed2f6 --- /dev/null +++ b/tests/test_000700.textproto @@ -0,0 +1,260 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example using the maximum number of channels for Base-Enhanced " + "profile. It has three audio elements {fourth-order mono ambisonics, LFE, " + "Stereo} and a 7.1.4 output layout." + file_name_prefix: "test_000700" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == Expanded", + "3.6.2/loudspeaker_layout == Stereo", + "3.6.2/expanded_loudspeaker_layout == LFE", + "3.6.3/ambisonics_mono_config", + "3.7.3/sound_system == 7.1.4", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000617" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_SCENE_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 25 + audio_substream_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] + num_parameters: 0 + ambisonics_config { + ambisonics_mode: AMBISONICS_MODE_MONO + ambisonics_mono_config { + output_channel_count: 25 + substream_count: 25 + channel_mapping: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] + } + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [25] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_LFE + } + ] + } + }, + { + audio_element_id: 302 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [26] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + } +] + +mix_presentation_metadata { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 3 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 302 + localized_element_annotations: ["test_sub_mix_0_audio_element_2"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 2 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -4273 + digital_peak: -1765 + } + } + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_J_4_7_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -5997 + digital_peak: -2459 + } + } + } +} + +audio_frame_metadata: [ + { + wav_filename: "sine_1000_4oa_48khz.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] + channel_labels: ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "A16", "A17", "A18", "A19", "A20", "A21", "A22", "A23", "A24"] + }, + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [3] + channel_labels: ["LFE"] + }, + { + wav_filename: "dialog_clip_stereo.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 302 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000700_f.mp4 b/tests/test_000700_f.mp4 new file mode 100644 index 00000000..edb1f979 Binary files /dev/null and b/tests/test_000700_f.mp4 differ diff --git a/tests/test_000700_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000700_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..fb40b4e7 Binary files /dev/null and b/tests/test_000700_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000700_rendered_id_42_sub_mix_0_layout_1.wav b/tests/test_000700_rendered_id_42_sub_mix_0_layout_1.wav new file mode 100644 index 00000000..8ad8cbf6 Binary files /dev/null and b/tests/test_000700_rendered_id_42_sub_mix_0_layout_1.wav differ diff --git a/tests/test_000700_s.mp4 b/tests/test_000700_s.mp4 new file mode 100644 index 00000000..aa5a1608 Binary files /dev/null and b/tests/test_000700_s.mp4 differ diff --git a/tests/test_000701.iamf b/tests/test_000701.iamf new file mode 100644 index 00000000..13aba87d Binary files /dev/null and b/tests/test_000701.iamf differ diff --git a/tests/test_000701.textproto b/tests/test_000701.textproto new file mode 100644 index 00000000..0ebcb2c8 --- /dev/null +++ b/tests/test_000701.textproto @@ -0,0 +1,261 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example using the maximum number of channels for Base-Enhanced " + "profile. It has three audio elements {third-order mono ambisonics, Top-6Ch, " + "LFE} and a 9.1.6 output layout." + file_name_prefix: "test_000701" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == Expanded", + "3.6.2/expanded_loudspeaker_layout == Top-6ch", + "3.6.2/expanded_loudspeaker_layout == LFE", + "3.6.3/ambisonics_mono_config", + "3.7.3/sound_system == 9.1.6", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000616" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_SCENE_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 16 + audio_substream_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + num_parameters: 0 + ambisonics_config { + ambisonics_mode: AMBISONICS_MODE_MONO + ambisonics_mono_config { + output_channel_count: 16 + substream_count: 16 + channel_mapping: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + } + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 3 + audio_substream_ids: [16, 17, 18] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 3 + coupled_substream_count: 3 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_TOP_6_CH + } + ] + } + }, + { + audio_element_id: 302 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [19] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_LFE + } + ] + } + } +] + +mix_presentation_metadata { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 3 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 302 + localized_element_annotations: ["test_sub_mix_0_audio_element_2"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 2 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -3871 + digital_peak: -283 + } + } + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_11_2_3_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -3262 + digital_peak: -349 + } + } + } +} + +audio_frame_metadata: [ + { + wav_filename: "sine_1000_4oa_48khz.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + channel_labels: ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15"] + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [10, 11, 12, 13, 14, 15] + channel_labels: ["TpFL", "TpFR", "TpBL", "TpBR", "TpSiL", "TpSiR"] + }, + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 302 + channel_ids: [4] + channel_labels: ["LFE"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000701_f.mp4 b/tests/test_000701_f.mp4 new file mode 100644 index 00000000..b933e15a Binary files /dev/null and b/tests/test_000701_f.mp4 differ diff --git a/tests/test_000701_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000701_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..dcc8872a Binary files /dev/null and b/tests/test_000701_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000701_rendered_id_42_sub_mix_0_layout_1.wav b/tests/test_000701_rendered_id_42_sub_mix_0_layout_1.wav new file mode 100644 index 00000000..99f3022b Binary files /dev/null and b/tests/test_000701_rendered_id_42_sub_mix_0_layout_1.wav differ diff --git a/tests/test_000701_s.mp4 b/tests/test_000701_s.mp4 new file mode 100644 index 00000000..c4a5833a Binary files /dev/null and b/tests/test_000701_s.mp4 differ diff --git a/tests/test_000702.iamf b/tests/test_000702.iamf new file mode 100644 index 00000000..6d473e7b Binary files /dev/null and b/tests/test_000702.iamf differ diff --git a/tests/test_000702.textproto b/tests/test_000702.textproto new file mode 100644 index 00000000..5b00f1c9 --- /dev/null +++ b/tests/test_000702.textproto @@ -0,0 +1,457 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example using several expanded layouts to approximate 7.1.4 using " + "Base-Enhanced profile. It has seven audio elements {Mono, Stereo, " + "LFE, Stereo-SS, Stereo-RS, Stereo-TF, Stereo-TB} and a stereo output " + "layout." + file_name_prefix: "test_000702" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == Expanded", + "3.6.2/loudspeaker_layout == Mono", + "3.6.2/loudspeaker_layout == Stereo", + "3.6.2/expanded_loudspeaker_layout == LFE", + "3.6.2/expanded_loudspeaker_layout == Stereo-SS", + "3.6.2/expanded_loudspeaker_layout == Stereo-RS", + "3.6.2/expanded_loudspeaker_layout == Stereo-TF", + "3.6.2/expanded_loudspeaker_layout == Stereo-TB", + "3.7.3/sound_system == Stereo", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000600" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [0] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [1] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + }, + { + audio_element_id: 302 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [2] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_LFE + } + ] + } + }, + { + audio_element_id: 303 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [3] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_SS + } + ] + } + }, + { + audio_element_id: 304 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [4] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_RS + } + ] + } + }, + { + audio_element_id: 305 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [5] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_TF + } + ] + } + }, + { + audio_element_id: 306 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [6] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_TB + } + ] + } + } +] + +mix_presentation_metadata { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 7 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_mono"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 302 + localized_element_annotations: ["test_sub_mix_0_audio_element_LFE"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 303 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_ss"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 304 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_rs"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 305 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_tf"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 306 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_tb"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -4013 + digital_peak: 0 + } + } + } +} + +audio_frame_metadata: [ + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [2] + channel_labels: ["M"] + }, + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + }, + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 302 + channel_ids: [3] + channel_labels: ["LFE"] + }, + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 303 + channel_ids: [4, 5] + channel_labels: ["Lss7", "Rss7"] + }, + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 304 + channel_ids: [6, 7] + channel_labels: ["Lrs7", "Rrs7"] + }, + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 305 + channel_ids: [8, 9] + channel_labels: ["Ltf4", "Rtf4"] + }, + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 306 + channel_ids: [10, 11] + channel_labels: ["Ltb4", "Rtb4"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000702_f.mp4 b/tests/test_000702_f.mp4 new file mode 100644 index 00000000..36c613a2 Binary files /dev/null and b/tests/test_000702_f.mp4 differ diff --git a/tests/test_000702_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000702_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..9dc9eab2 Binary files /dev/null and b/tests/test_000702_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000702_s.mp4 b/tests/test_000702_s.mp4 new file mode 100644 index 00000000..a6d7d476 Binary files /dev/null and b/tests/test_000702_s.mp4 differ diff --git a/tests/test_000703.iamf b/tests/test_000703.iamf new file mode 100644 index 00000000..7e403d25 Binary files /dev/null and b/tests/test_000703.iamf differ diff --git a/tests/test_000703.textproto b/tests/test_000703.textproto new file mode 100644 index 00000000..780cdd7e --- /dev/null +++ b/tests/test_000703.textproto @@ -0,0 +1,558 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example using several expanded layouts to approximate 9.1.6 using " + "Base-Enhanced profile. It has nine audio elements {Mono, Stereo, " + "LFE, Stereo-S, Stereo-TF, Stereo-TB, Stereo-F, Stereo-Si, Stereo-TpSi} " + " and a stereo output layout." + file_name_prefix: "test_000703" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == Expanded", + "3.6.2/loudspeaker_layout == Mono", + "3.6.2/loudspeaker_layout == Stereo", + "3.6.2/expanded_loudspeaker_layout == LFE", + "3.6.2/expanded_loudspeaker_layout == Stereo-RS", + "3.6.2/expanded_loudspeaker_layout == Stereo-TF", + "3.6.2/expanded_loudspeaker_layout == Stereo-TB", + "3.6.2/expanded_loudspeaker_layout == Stereo-Si", + "3.6.2/expanded_loudspeaker_layout == Stereo-TpSi", + "3.7.3/sound_system == Mono", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000600" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [0] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [1] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + }, + { + audio_element_id: 302 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [2] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_LFE + } + ] + } + }, + { + audio_element_id: 303 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [3] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_RS + } + ] + } + }, + { + audio_element_id: 304 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [4] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_TF + } + ] + } + }, + { + audio_element_id: 305 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [5] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_TB + } + ] + } + }, + { + audio_element_id: 306 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [6] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_F + } + ] + } + }, + { + audio_element_id: 307 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [7] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_SI + } + ] + } + }, + { + audio_element_id: 308 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [8] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_STEREO_TP_SI + } + ] + } + } +] + +mix_presentation_metadata { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 9 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_mono"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 302 + localized_element_annotations: ["test_sub_mix_0_audio_element_LFE"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 303 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_rs"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 304 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_tf"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 305 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_tb"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 306 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_f"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 307 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_si"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 308 + localized_element_annotations: ["test_sub_mix_0_audio_element_stereo_tp_si"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -2247 + digital_peak: 0 + } + } + } +} + +audio_frame_metadata: [ + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [2] + channel_labels: ["M"] # "FC" in the origial file. + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [6, 7] + channel_labels: ["L2", "R2"] #"FLc" and "FRc" in the original file. + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 302 + channel_ids: [3] + channel_labels: ["LFE"] + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 303 + channel_ids: [4, 5] + channel_labels: ["Lrs7", "Rrs7"] # "BL" and "BR" in the original file. + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 304 + channel_ids: [10, 11] + channel_labels: ["Ltf4", "Rtf4"] # "TpFL" and "TpFR" in the original file. + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 305 + channel_ids: [12, 13] + channel_labels: ["Ltb4", "Rtb4"] # "TpBL" and "TpBR" in the original file. + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 306 + channel_ids: [0, 1] + channel_labels: ["FL", "FR"] + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 307 + channel_ids: [8, 9] + channel_labels: ["SiL", "SiR"] + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 308 + channel_ids: [14, 15] + channel_labels: ["TpSiL", "TpSiR"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000703_f.mp4 b/tests/test_000703_f.mp4 new file mode 100644 index 00000000..191ae27c Binary files /dev/null and b/tests/test_000703_f.mp4 differ diff --git a/tests/test_000703_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000703_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..d1dc75a4 Binary files /dev/null and b/tests/test_000703_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000703_s.mp4 b/tests/test_000703_s.mp4 new file mode 100644 index 00000000..fd635588 Binary files /dev/null and b/tests/test_000703_s.mp4 differ diff --git a/tests/test_000704.iamf b/tests/test_000704.iamf new file mode 100644 index 00000000..8b24bd87 Binary files /dev/null and b/tests/test_000704.iamf differ diff --git a/tests/test_000704.textproto b/tests/test_000704.textproto new file mode 100644 index 00000000..82eb4cc0 --- /dev/null +++ b/tests/test_000704.textproto @@ -0,0 +1,208 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "A simple example of a 7.1.4 + stereo Base-Enhanced profile IAMF " + "stream and mix presentation tags which include `content_language`." + file_name_prefix: "test_000704" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == 7.1.4", + "3.6.2/loudspeaker_layout == Stereo", + "3.7.3/sound_system == Stereo", + "3.7/mix_presentation_tags", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000624" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 7 + audio_substream_ids: [0, 1, 2, 3, 4, 5, 6] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_7_1_4_CH + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 7 + coupled_substream_count: 5 + } + ] + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [7] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + } +] + +mix_presentation_metadata { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -4574 + digital_peak: -690 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-us" + } + } +} + +audio_frame_metadata: [ + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + channel_labels: ["L7", "R7", "C", "LFE", "Lss7", "Rss7", "Lrs7", "Rrs7", "Ltf4", "Rtf4", "Ltb4", "Rtb4"] + }, + { + wav_filename: "dialog_clip_stereo.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000704_f.mp4 b/tests/test_000704_f.mp4 new file mode 100644 index 00000000..5af60d27 Binary files /dev/null and b/tests/test_000704_f.mp4 differ diff --git a/tests/test_000704_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000704_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..38a7f10a Binary files /dev/null and b/tests/test_000704_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000704_rendered_id_42_sub_mix_0_layout_1.wav b/tests/test_000704_rendered_id_42_sub_mix_0_layout_1.wav new file mode 100644 index 00000000..74ee2fff Binary files /dev/null and b/tests/test_000704_rendered_id_42_sub_mix_0_layout_1.wav differ diff --git a/tests/test_000704_s.mp4 b/tests/test_000704_s.mp4 new file mode 100644 index 00000000..f7f0e26c Binary files /dev/null and b/tests/test_000704_s.mp4 differ diff --git a/tests/test_000705.iamf b/tests/test_000705.iamf new file mode 100644 index 00000000..a9fd48ca Binary files /dev/null and b/tests/test_000705.iamf differ diff --git a/tests/test_000705.textproto b/tests/test_000705.textproto new file mode 100644 index 00000000..f008a9f9 --- /dev/null +++ b/tests/test_000705.textproto @@ -0,0 +1,437 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example of a 5.1.2 with three mixes that represent different dialogue " + "languages. Note that a real sample would typically have the audio input " + "recorded in different languages. This sample simulates different " + "languages by applying a different mix gain to make them audibly different." + file_name_prefix: "test_000705" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == 5.1.2", + "3.6.2/loudspeaker_layout == Stereo", + "3.7.3/sound_system == Stereo", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000631" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 5 + audio_substream_ids: [0, 1, 2, 3, 4] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_5_1_2_CH + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 5 + coupled_substream_count: 3 + } + ] + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [5] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + }, + { + audio_element_id: 302 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [6] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + }, + { + audio_element_id: 303 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [7] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + } +] + +mix_presentation_metadata [ + { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["Simulated US English Dialog (-0dB)."] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -4721 + digital_peak: -1087 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-us" + } + } + }, + { + mix_presentation_id: 43 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["Simulated UK English Dialog (-5dB)."] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 302 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 996 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -1280 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -5074 + digital_peak: -1421 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-uk" + } + } + }, + { + mix_presentation_id: 44 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["Simulated AU English Dialog (-10dB)."] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 303 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 995 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -2560 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -5212 + digital_peak: -1418 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-au" + } + } + } +] + +audio_frame_metadata: [ + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0, 1, 2, 3, 4, 5, 8, 9] + channel_labels: ["L5", "R5", "C", "LFE", "Ls5", "Rs5", "Ltf2", "Rtf2"] + }, + { + wav_filename: "dialog_clip_stereo.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + }, + { + wav_filename: "dialog_clip_stereo.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 302 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + }, + { + wav_filename: "dialog_clip_stereo.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 303 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000705_f.mp4 b/tests/test_000705_f.mp4 new file mode 100644 index 00000000..5477e71d Binary files /dev/null and b/tests/test_000705_f.mp4 differ diff --git a/tests/test_000705_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000705_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..3ebc71e1 Binary files /dev/null and b/tests/test_000705_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000705_rendered_id_43_sub_mix_0_layout_0.wav b/tests/test_000705_rendered_id_43_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..ec8b19f6 Binary files /dev/null and b/tests/test_000705_rendered_id_43_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000705_rendered_id_44_sub_mix_0_layout_0.wav b/tests/test_000705_rendered_id_44_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..efe0dc3d Binary files /dev/null and b/tests/test_000705_rendered_id_44_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000705_s.mp4 b/tests/test_000705_s.mp4 new file mode 100644 index 00000000..a2348222 Binary files /dev/null and b/tests/test_000705_s.mp4 differ diff --git a/tests/test_000706.iamf b/tests/test_000706.iamf new file mode 100644 index 00000000..9d59e0d9 Binary files /dev/null and b/tests/test_000706.iamf differ diff --git a/tests/test_000706.textproto b/tests/test_000706.textproto new file mode 100644 index 00000000..3fd70a19 --- /dev/null +++ b/tests/test_000706.textproto @@ -0,0 +1,432 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example of a third-order ambisonics with three mixes that represent " + "different dialogue languages. Note that a real sample would typically " + "have the audio input recored in different languages. This sample " + "simulates different languages by applying a different mix gain to make " + "them audibly different." + file_name_prefix: "test_000706" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == Stereo", + "3.6.4/ambisonics_mono_config", + "3.7.3/sound_system == Stereo", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000705" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_SCENE_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 16 + audio_substream_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + num_parameters: 0 + ambisonics_config { + ambisonics_mode: AMBISONICS_MODE_MONO + ambisonics_mono_config { + output_channel_count: 16 + substream_count: 16 + channel_mapping: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + } + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [16] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + }, + { + audio_element_id: 302 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [17] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + }, + { + audio_element_id: 303 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [18] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 1 + } + ] + } + } +] + +mix_presentation_metadata [ + { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["Simulated US English Dialog (-0dB)."] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -3673 + digital_peak: -702 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-us" + } + } + }, + { + mix_presentation_id: 43 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["Simulated UK English Dialog (-5dB)."] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 302 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 996 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -1280 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -3655 + digital_peak: -764 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-uk" + } + } + }, + { + mix_presentation_id: 44 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["Simulated AU English Dialog (-10dB)."] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 303 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 995 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -2560 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -3613 + digital_peak: -766 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-au" + } + } + } +] + +audio_frame_metadata: [ + { + wav_filename: "Transport_TOA_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + channel_labels: ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15"] + }, + { + wav_filename: "dialog_clip_stereo.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + }, + { + wav_filename: "dialog_clip_stereo.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 302 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + }, + { + wav_filename: "dialog_clip_stereo.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 303 + channel_ids: [0, 1] + channel_labels: ["L2", "R2"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000706_f.mp4 b/tests/test_000706_f.mp4 new file mode 100644 index 00000000..2c48fd0d Binary files /dev/null and b/tests/test_000706_f.mp4 differ diff --git a/tests/test_000706_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000706_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..3900c023 Binary files /dev/null and b/tests/test_000706_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000706_rendered_id_43_sub_mix_0_layout_0.wav b/tests/test_000706_rendered_id_43_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..10fa7f3e Binary files /dev/null and b/tests/test_000706_rendered_id_43_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000706_rendered_id_44_sub_mix_0_layout_0.wav b/tests/test_000706_rendered_id_44_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..5778f622 Binary files /dev/null and b/tests/test_000706_rendered_id_44_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000706_s.mp4 b/tests/test_000706_s.mp4 new file mode 100644 index 00000000..b9eeb83e Binary files /dev/null and b/tests/test_000706_s.mp4 differ diff --git a/tests/test_000707.iamf b/tests/test_000707.iamf new file mode 100644 index 00000000..f2a0a91e Binary files /dev/null and b/tests/test_000707.iamf differ diff --git a/tests/test_000707.textproto b/tests/test_000707.textproto new file mode 100644 index 00000000..db4a744f --- /dev/null +++ b/tests/test_000707.textproto @@ -0,0 +1,1483 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example using the maximum number of audio elements for Base-Enhanced " + "profile. It has twenty-eight mono audio elements and a stereo output " + "layout." + file_name_prefix: "test_000707" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == Mono", + "3.7/num_audio_elements", + "3.7.3/sound_system == Stereo", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000705" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [0] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [1] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 302 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [2] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 303 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [3] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 304 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [4] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 305 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [5] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 306 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [6] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 307 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [7] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 308 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [8] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 309 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [9] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 310 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [10] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 311 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [11] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 312 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [12] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 313 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [13] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 314 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [14] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 315 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [15] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 316 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [16] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 317 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [17] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 318 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [318] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 319 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [319] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 320 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [20] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 321 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [21] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 322 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [22] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 323 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [23] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 324 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [24] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 325 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [25] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 326 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [26] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 327 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [27] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + } +] + +mix_presentation_metadata { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 28 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 302 + localized_element_annotations: ["test_sub_mix_0_audio_element_2"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 303 + localized_element_annotations: ["test_sub_mix_0_audio_element_3"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 304 + localized_element_annotations: ["test_sub_mix_0_audio_element_4"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 305 + localized_element_annotations: ["test_sub_mix_0_audio_element_5"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 306 + localized_element_annotations: ["test_sub_mix_0_audio_element_6"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 307 + localized_element_annotations: ["test_sub_mix_0_audio_element_7"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 308 + localized_element_annotations: ["test_sub_mix_0_audio_element_8"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 309 + localized_element_annotations: ["test_sub_mix_0_audio_element_9"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 310 + localized_element_annotations: ["test_sub_mix_0_audio_element_10"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 311 + localized_element_annotations: ["test_sub_mix_0_audio_element_11"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 312 + localized_element_annotations: ["test_sub_mix_0_audio_element_12"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 313 + localized_element_annotations: ["test_sub_mix_0_audio_element_13"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 314 + localized_element_annotations: ["test_sub_mix_0_audio_element_14"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 315 + localized_element_annotations: ["test_sub_mix_0_audio_element_15"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 316 + localized_element_annotations: ["test_sub_mix_0_audio_element_16"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 317 + localized_element_annotations: ["test_sub_mix_0_audio_element_17"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 318 + localized_element_annotations: ["test_sub_mix_0_audio_element_18"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 319 + localized_element_annotations: ["test_sub_mix_0_audio_element_19"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 320 + localized_element_annotations: ["test_sub_mix_0_audio_element_20"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 321 + localized_element_annotations: ["test_sub_mix_0_audio_element_21"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 322 + localized_element_annotations: ["test_sub_mix_0_audio_element_22"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 323 + localized_element_annotations: ["test_sub_mix_0_audio_element_23"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 324 + localized_element_annotations: ["test_sub_mix_0_audio_element_24"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 325 + localized_element_annotations: ["test_sub_mix_0_audio_element_25"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 326 + localized_element_annotations: ["test_sub_mix_0_audio_element_26"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 327 + localized_element_annotations: ["test_sub_mix_0_audio_element_27"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + } + + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -1480 + digital_peak: -1826 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-us" + } + } +} + +audio_frame_metadata: [ + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 302 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 303 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 304 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 305 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 306 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 307 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 308 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 309 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 310 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 311 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 312 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 313 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 314 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 315 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 316 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 317 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 318 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 319 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 320 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 321 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 322 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 323 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 324 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 325 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 326 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 327 + channel_ids: [0] + channel_labels: ["M"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000707_f.mp4 b/tests/test_000707_f.mp4 new file mode 100644 index 00000000..08d3cfd0 Binary files /dev/null and b/tests/test_000707_f.mp4 differ diff --git a/tests/test_000707_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000707_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..d0189e2a Binary files /dev/null and b/tests/test_000707_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000707_s.mp4 b/tests/test_000707_s.mp4 new file mode 100644 index 00000000..ddd8b6e1 Binary files /dev/null and b/tests/test_000707_s.mp4 differ diff --git a/tests/test_000708.iamf b/tests/test_000708.iamf new file mode 100644 index 00000000..fada6e5d Binary files /dev/null and b/tests/test_000708.iamf differ diff --git a/tests/test_000708.textproto b/tests/test_000708.textproto new file mode 100644 index 00000000..8d2c57cf --- /dev/null +++ b/tests/test_000708.textproto @@ -0,0 +1,208 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example using the maximum number of audio elements for Base-Enhanced " + "profile. It has two audio elements {third-order mono ambisonics, 7.1.4} " + "and a stereo output layout." + file_name_prefix: "test_000708" + is_valid: true + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.6.2/loudspeaker_layout == 7.1.4", + "3.6.3/ambisonics_mono_config", + "3.7.3/sound_system == Stereo", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000624" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_BASE_ENHANCED +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 7 + audio_substream_ids: [0, 1, 2, 3, 4, 5, 6] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_7_1_4_CH + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 7 + coupled_substream_count: 5 + } + ] + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_SCENE_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 16 + audio_substream_ids: [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] + num_parameters: 0 + ambisonics_config { + ambisonics_mode: AMBISONICS_MODE_MONO + ambisonics_mono_config { + output_channel_count: 16 + substream_count: 16 + channel_mapping: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + } + } + } +] + +mix_presentation_metadata { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 2 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -3519 + digital_peak: 0 + } + } + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_J_4_7_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -4936 + digital_peak: -1771 + } + } + } +} + +audio_frame_metadata: [ + { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + channel_labels: ["L7", "R7", "C", "LFE", "Lss7", "Rss7", "Lrs7", "Rrs7", "Ltf4", "Rtf4", "Ltb4", "Rtb4"] + }, + { + wav_filename: "Transport_TOA_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + channel_labels: ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000708_f.mp4 b/tests/test_000708_f.mp4 new file mode 100644 index 00000000..637ba31e Binary files /dev/null and b/tests/test_000708_f.mp4 differ diff --git a/tests/test_000708_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000708_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..8ecaf1c2 Binary files /dev/null and b/tests/test_000708_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000708_rendered_id_42_sub_mix_0_layout_1.wav b/tests/test_000708_rendered_id_42_sub_mix_0_layout_1.wav new file mode 100644 index 00000000..801b76a6 Binary files /dev/null and b/tests/test_000708_rendered_id_42_sub_mix_0_layout_1.wav differ diff --git a/tests/test_000708_s.mp4 b/tests/test_000708_s.mp4 new file mode 100644 index 00000000..94b68ba9 Binary files /dev/null and b/tests/test_000708_s.mp4 differ diff --git a/tests/test_000709.iamf b/tests/test_000709.iamf new file mode 100644 index 00000000..33191372 Binary files /dev/null and b/tests/test_000709.iamf differ diff --git a/tests/test_000709.textproto b/tests/test_000709.textproto new file mode 100644 index 00000000..37853208 --- /dev/null +++ b/tests/test_000709.textproto @@ -0,0 +1,159 @@ +# Copyright (c) 2023, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example of an imaginary IAMF stream using a profile reserved for " + "future. An IAMF v1.1 decoder should ignore it because neither the " + "primary profile nor additional profile are defined in IAMF v1.1." + file_name_prefix: "test_000709" + # The encoder typically would not produce files with reserved profile values. + is_valid: false + # As of V1.1, profile 255 is not defined. + is_valid_to_decode: false + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: [ + "github/aomediacodec/libiamf/main" + ] + primary_tested_spec_sections: [ + "3.4/primary_profile == 255", + "3.4/additional_profile == 255" + ] + base_test: "test_000208" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_RESERVED_255 + additional_profile: PROFILE_VERSION_RESERVED_255 +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 7 + audio_substream_ids: [0, 1, 2, 3, 4, 5, 6] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_7_1_4_CH + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 7 + coupled_substream_count: 5 + } + ] + } +} + +mix_presentation_metadata { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 1 + audio_elements { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + } + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 2 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -4013 + digital_peak: 0 + } + } + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_J_4_7_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -4636 + digital_peak: -1009 + } + } + } +} + +audio_frame_metadata { + wav_filename: "Mechanism_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + channel_labels: ["L7", "R7", "C", "LFE", "Lss7", "Rss7", "Lrs7", "Rrs7", "Ltf4", "Rtf4", "Ltb4", "Rtb4"] +} + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000709_f.mp4 b/tests/test_000709_f.mp4 new file mode 100644 index 00000000..a0babc0d Binary files /dev/null and b/tests/test_000709_f.mp4 differ diff --git a/tests/test_000709_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000709_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..781114ed Binary files /dev/null and b/tests/test_000709_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000709_rendered_id_42_sub_mix_0_layout_1.wav b/tests/test_000709_rendered_id_42_sub_mix_0_layout_1.wav new file mode 100644 index 00000000..86ac4e8e Binary files /dev/null and b/tests/test_000709_rendered_id_42_sub_mix_0_layout_1.wav differ diff --git a/tests/test_000709_s.mp4 b/tests/test_000709_s.mp4 new file mode 100644 index 00000000..41ec51bc Binary files /dev/null and b/tests/test_000709_s.mp4 differ diff --git a/tests/test_000710.iamf b/tests/test_000710.iamf new file mode 100644 index 00000000..1d1042f5 Binary files /dev/null and b/tests/test_000710.iamf differ diff --git a/tests/test_000710.textproto b/tests/test_000710.textproto new file mode 100644 index 00000000..992b439c --- /dev/null +++ b/tests/test_000710.textproto @@ -0,0 +1,1620 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example using which contains one Mix Presentation which uses greater " + "than the maximum number of audio elements for Base-Enhanced profile and " + "should be ignored. It has a second audio element which encodes " + "two audio elements which can be decoded under Base-Enhanced profile." + file_name_prefix: "test_000710" + # The encoder typically would not produce files with reserved profile values. + is_valid: false + # The decoder can decode the Mix Presentation with ID = 43. + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.4/additional_profile == 255", + "3.6.2/loudspeaker_layout == Mono", + "3.7/num_audio_elements", + "3.7.3/sound_system == Stereo", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000705" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_RESERVED_255 +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [0] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [1] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 302 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [2] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 303 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [3] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 304 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [4] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 305 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [5] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 306 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [6] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 307 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [7] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 308 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [8] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 309 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [9] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 310 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [10] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 311 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [11] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 312 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [12] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 313 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [13] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 314 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [14] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 315 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [15] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 316 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [16] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 317 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [17] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 318 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [318] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 319 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [319] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 320 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [20] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 321 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [21] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 322 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [22] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 323 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [23] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 324 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [24] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 325 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [25] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 326 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [26] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 327 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [27] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + }, + { + audio_element_id: 328 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 1 + audio_substream_ids: [28] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 1 + coupled_substream_count: 0 + } + ] + } + } +] + +mix_presentation_metadata [ + { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 29 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 302 + localized_element_annotations: ["test_sub_mix_0_audio_element_2"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 303 + localized_element_annotations: ["test_sub_mix_0_audio_element_3"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 304 + localized_element_annotations: ["test_sub_mix_0_audio_element_4"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 305 + localized_element_annotations: ["test_sub_mix_0_audio_element_5"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 306 + localized_element_annotations: ["test_sub_mix_0_audio_element_6"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 307 + localized_element_annotations: ["test_sub_mix_0_audio_element_7"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 308 + localized_element_annotations: ["test_sub_mix_0_audio_element_8"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 309 + localized_element_annotations: ["test_sub_mix_0_audio_element_9"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 310 + localized_element_annotations: ["test_sub_mix_0_audio_element_10"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 311 + localized_element_annotations: ["test_sub_mix_0_audio_element_11"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 312 + localized_element_annotations: ["test_sub_mix_0_audio_element_12"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 313 + localized_element_annotations: ["test_sub_mix_0_audio_element_13"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 314 + localized_element_annotations: ["test_sub_mix_0_audio_element_14"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 315 + localized_element_annotations: ["test_sub_mix_0_audio_element_15"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 316 + localized_element_annotations: ["test_sub_mix_0_audio_element_16"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 317 + localized_element_annotations: ["test_sub_mix_0_audio_element_17"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 318 + localized_element_annotations: ["test_sub_mix_0_audio_element_18"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 319 + localized_element_annotations: ["test_sub_mix_0_audio_element_19"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 320 + localized_element_annotations: ["test_sub_mix_0_audio_element_20"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 321 + localized_element_annotations: ["test_sub_mix_0_audio_element_21"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 322 + localized_element_annotations: ["test_sub_mix_0_audio_element_22"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 323 + localized_element_annotations: ["test_sub_mix_0_audio_element_23"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 324 + localized_element_annotations: ["test_sub_mix_0_audio_element_24"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 325 + localized_element_annotations: ["test_sub_mix_0_audio_element_25"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 326 + localized_element_annotations: ["test_sub_mix_0_audio_element_26"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 327 + localized_element_annotations: ["test_sub_mix_0_audio_element_27"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 328 + localized_element_annotations: ["test_sub_mix_0_audio_element_28"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + } + + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -1402 + digital_peak: -1747 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-us" + } + } + }, + { + mix_presentation_id: 43 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -7349 + digital_peak: -7693 + } + } + } + include_mix_presentation_tags: true + mix_presentation_tags: { + num_tags: 1 + tags: { + tag_name: "content_language" + tag_value: "en-us" + } + } + } +] + +audio_frame_metadata: [ + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 302 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 303 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 304 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 305 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 306 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 307 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 308 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 309 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 310 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 311 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 312 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 313 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 314 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 315 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 316 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 317 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 318 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 319 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 320 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 321 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 322 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 323 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 324 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 325 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 326 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 327 + channel_ids: [0] + channel_labels: ["M"] + }, + { + wav_filename: "sine_1500_stereo_48khz_-15dBFS.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 328 + channel_ids: [0] + channel_labels: ["M"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000710_f.mp4 b/tests/test_000710_f.mp4 new file mode 100644 index 00000000..dca27534 Binary files /dev/null and b/tests/test_000710_f.mp4 differ diff --git a/tests/test_000710_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000710_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..20ccd020 Binary files /dev/null and b/tests/test_000710_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000710_rendered_id_43_sub_mix_0_layout_0.wav b/tests/test_000710_rendered_id_43_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..dfd270ef Binary files /dev/null and b/tests/test_000710_rendered_id_43_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000710_s.mp4 b/tests/test_000710_s.mp4 new file mode 100644 index 00000000..2f2b67f1 Binary files /dev/null and b/tests/test_000710_s.mp4 differ diff --git a/tests/test_000711.iamf b/tests/test_000711.iamf new file mode 100644 index 00000000..c8f26d39 Binary files /dev/null and b/tests/test_000711.iamf differ diff --git a/tests/test_000711.textproto b/tests/test_000711.textproto new file mode 100644 index 00000000..6be1c239 --- /dev/null +++ b/tests/test_000711.textproto @@ -0,0 +1,259 @@ +# Copyright (c) 2024, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 3-Clause Clear License +# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear +# License was not distributed with this source code in the LICENSE file, you +# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the +# Alliance for Open Media Patent License 1.0 was not distributed with this +# source code in the PATENTS file, you can obtain it at +# www.aomedia.org/license/patent. + +# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto +# proto-message: UserMetadata + +test_vector_metadata { + human_readable_description: + "An example using which contains one Mix Presentation which uses greater " + "than the maximum number of audio elements for Base-Enhanced profile and " + "should be ignored. It has a second audio element which encodes " + "fourth-order ambisonics which can be decoded under Base-Enhanced profile." + file_name_prefix: "test_000711" + # The encoder typically would not produce files with reserved profile values. + is_valid: false + # The decoder can decode the Mix Presentation with ID = 43. + is_valid_to_decode: true + validate_user_loudness: true + mp4_fixed_timestamp: "2024-08-14 00:00:00" + test_repository_tags: ["github/aomediacodec/libiamf/main"] + primary_tested_spec_sections: [ + "3.4/additional_profile == 255", + "3.6.2/loudspeaker_layout == Expanded", + "3.6.2/expanded_loudspeaker_layout == Top-6Ch", + "3.6.3/ambisonics_mono_config", + "3.7/num_audio_elements", + "3.7.3/sound_system == Stereo", + "3.7.4/default_mix_gain", + "4.2/Base-Enhanced Profile", + "8.5.1/Loudness Information" + ] + base_test: "test_000400" +} + +ia_sequence_header_metadata { + primary_profile: PROFILE_VERSION_BASE_ENHANCED + additional_profile: PROFILE_VERSION_RESERVED_255 +} + +codec_config_metadata { + codec_config_id: 200 + codec_config { + codec_id: CODEC_ID_LPCM + num_samples_per_frame: 1024 + audio_roll_distance: 0 + decoder_config_lpcm { + sample_format_flags: LPCM_LITTLE_ENDIAN + sample_size: 16 + sample_rate: 48000 + } + } +} + +audio_element_metadata: [ + { + audio_element_id: 300 + audio_element_type: AUDIO_ELEMENT_SCENE_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 25 + audio_substream_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] + num_parameters: 0 + ambisonics_config { + ambisonics_mode: AMBISONICS_MODE_MONO + ambisonics_mono_config { + output_channel_count: 25 + substream_count: 25 + channel_mapping: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] + } + } + }, + { + audio_element_id: 301 + audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED + reserved: 0 + codec_config_id: 200 + num_substreams: 3 + audio_substream_ids: [25, 26, 27] + num_parameters: 0 + scalable_channel_layout_config { + num_layers: 1 + reserved: 0 + channel_audio_layer_configs: [ + { + loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED + output_gain_is_present_flag: 0 + recon_gain_is_present_flag: 0 + reserved_a: 0 + substream_count: 3 + coupled_substream_count: 3 + expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_TOP_6_CH + } + ] + } + } +] + +mix_presentation_metadata [ + { + mix_presentation_id: 42 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 2 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + }, + { + audio_element_id: 301 + localized_element_annotations: ["test_sub_mix_0_audio_element_1"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 998 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -3747 + digital_peak: -233 + } + } + } + }, + { + mix_presentation_id: 43 + count_label: 1 + annotations_language: ["en-us"] + localized_presentation_annotations: ["test_mix_pres"] + num_sub_mixes: 1 + sub_mixes { + num_audio_elements: 1 + audio_elements: [ + { + audio_element_id: 300 + localized_element_annotations: ["test_sub_mix_0_audio_element_0"] + rendering_config { + headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO + } + element_mix_config { + mix_gain { + param_definition { + parameter_id: 999 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: -768 + } + } + } + ] + output_mix_config { + output_mix_gain { + param_definition { + parameter_id: 997 # Non-existent; default will be used + parameter_rate: 48000 + param_definition_mode: 1 + reserved: 0 + } + default_mix_gain: 0 + } + } + num_layouts: 1 + layouts { + loudness_layout { + layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION + ss_layout { + sound_system: SOUND_SYSTEM_A_0_2_0 + reserved: 0 + } + } + loudness { + info_type_bit_masks: [] + integrated_loudness: -4433 + digital_peak: -3663 + } + } + } + } +] + +audio_frame_metadata: [ + { + wav_filename: "sine_1000_4oa_48khz.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 300 + channel_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] + channel_labels: ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "A16", "A17", "A18", "A19", "A20", "A21", "A22", "A23", "A24"] + }, + { + wav_filename: "Transport_9.1.6_5s.wav" + samples_to_trim_at_end: 640 + samples_to_trim_at_start: 0 + audio_element_id: 301 + channel_ids: [10, 11, 12, 13, 14, 15] + channel_labels: ["TpFL", "TpFR", "TpBL", "TpBR", "TpSiL", "TpSiR"] + } +] + +temporal_delimiter_metadata { + enable_temporal_delimiters: false +} diff --git a/tests/test_000711_f.mp4 b/tests/test_000711_f.mp4 new file mode 100644 index 00000000..b918021f Binary files /dev/null and b/tests/test_000711_f.mp4 differ diff --git a/tests/test_000711_rendered_id_42_sub_mix_0_layout_0.wav b/tests/test_000711_rendered_id_42_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..d1f33405 Binary files /dev/null and b/tests/test_000711_rendered_id_42_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000711_rendered_id_42_sub_mix_0_layout_1.wav b/tests/test_000711_rendered_id_42_sub_mix_0_layout_1.wav new file mode 100644 index 00000000..05e777a7 Binary files /dev/null and b/tests/test_000711_rendered_id_42_sub_mix_0_layout_1.wav differ diff --git a/tests/test_000711_rendered_id_43_sub_mix_0_layout_0.wav b/tests/test_000711_rendered_id_43_sub_mix_0_layout_0.wav new file mode 100644 index 00000000..45f8d0f5 Binary files /dev/null and b/tests/test_000711_rendered_id_43_sub_mix_0_layout_0.wav differ diff --git a/tests/test_000711_rendered_id_43_sub_mix_0_layout_1.wav b/tests/test_000711_rendered_id_43_sub_mix_0_layout_1.wav new file mode 100644 index 00000000..0fde0380 Binary files /dev/null and b/tests/test_000711_rendered_id_43_sub_mix_0_layout_1.wav differ diff --git a/tests/test_000711_s.mp4 b/tests/test_000711_s.mp4 new file mode 100644 index 00000000..b56d76fe Binary files /dev/null and b/tests/test_000711_s.mp4 differ diff --git a/tests/test_summary.csv b/tests/test_summary.csv index cd78603c..852f5783 100644 --- a/tests/test_summary.csv +++ b/tests/test_summary.csv @@ -208,3 +208,15 @@ "test_000631","test_000400","3.6.2/loudspeaker_layout == 5.1.4, 3.6.2/loudspeaker_layout == Expanded, 3.6.2/expanded_loudspeaker_layout == Stereo-S, 3.7.3/sound_system == 5.1.4, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"A simple example of a 5.1.4 + Stereo-S Base-Enhanced profile IAMF stream and a 5.1.4 output layout." "test_000632","test_000600","3.6.2/loudspeaker_layout == Expanded, 3.6.2/expanded_loudspeaker_layout == LFE, 3.6.3/ambisonics_mono_config, 3.7.3/sound_system == 7.1.4, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"A simple example of a third-order mono ambisonics + LFE Base-Enhanced profile IAMF stream and a 7.1.4 output layout." "test_000633","test_000600","3.6.2/loudspeaker_layout == Expanded, 3.6.2/expanded_loudspeaker_layout == Top-6ch, 3.6.3/ambisonics_mono_config, 3.7.3/sound_system == 9.1.6, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"A simple example of a third-order mono ambisonics + Top-6ch Base-Enhanced profile IAMF stream and a 9.1.6 output layout." +"test_000700","test_000617","3.6.2/loudspeaker_layout == Expanded, 3.6.2/loudspeaker_layout == Stereo, 3.6.2/expanded_loudspeaker_layout == LFE, 3.6.3/ambisonics_mono_config, 3.7.3/sound_system == 7.1.4, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"An example using the maximum number of channels for Base-Enhanced profile. It has three audio elements {fourth-order mono ambisonics, LFE, Stereo} and a 7.1.4 output layout." +"test_000701","test_000616","3.6.2/loudspeaker_layout == Expanded, 3.6.2/expanded_loudspeaker_layout == Top-6ch, 3.6.2/expanded_loudspeaker_layout == LFE, 3.6.3/ambisonics_mono_config, 3.7.3/sound_system == 9.1.6, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"An example using the maximum number of channels for Base-Enhanced profile. It has three audio elements {third-order mono ambisonics, Top-6Ch, LFE} and a 9.1.6 output layout." +"test_000702","test_000600","3.6.2/loudspeaker_layout == Expanded, 3.6.2/loudspeaker_layout == Mono, 3.6.2/loudspeaker_layout == Stereo, 3.6.2/expanded_loudspeaker_layout == LFE, 3.6.2/expanded_loudspeaker_layout == Stereo-SS, 3.6.2/expanded_loudspeaker_layout == Stereo-RS, 3.6.2/expanded_loudspeaker_layout == Stereo-TF, 3.6.2/expanded_loudspeaker_layout == Stereo-TB, 3.7.3/sound_system == Stereo, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"An example using several expanded layouts to approximate 7.1.4 using Base-Enhanced profile. It has seven audio elements {Mono, Stereo, LFE, Stereo-SS, Stereo-RS, Stereo-TF, Stereo-TB} and a stereo output layout." +"test_000703","test_000600","3.6.2/loudspeaker_layout == Expanded, 3.6.2/loudspeaker_layout == Mono, 3.6.2/loudspeaker_layout == Stereo, 3.6.2/expanded_loudspeaker_layout == LFE, 3.6.2/expanded_loudspeaker_layout == Stereo-RS, 3.6.2/expanded_loudspeaker_layout == Stereo-TF, 3.6.2/expanded_loudspeaker_layout == Stereo-TB, 3.6.2/expanded_loudspeaker_layout == Stereo-Si, 3.6.2/expanded_loudspeaker_layout == Stereo-TpSi, 3.7.3/sound_system == Mono, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"An example using several expanded layouts to approximate 9.1.6 using Base-Enhanced profile. It has nine audio elements {Mono, Stereo, LFE, Stereo-S, Stereo-TF, Stereo-TB, Stereo-F, Stereo-Si, Stereo-TpSi} and a stereo output layout." +"test_000704","test_000624","3.6.2/loudspeaker_layout == 7.1.4, 3.6.2/loudspeaker_layout == Stereo, 3.7.3/sound_system == Stereo, 3.7/mix_presentation_tags, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"A simple example of a 7.1.4 + stereo Base-Enhanced profile IAMF stream and mix presentation tags which include `content_language`." +"test_000705","test_000631","3.6.2/loudspeaker_layout == 5.1.2, 3.6.2/loudspeaker_layout == Stereo, 3.7.3/sound_system == Stereo, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"An example of a 5.1.2 with three mixes that represent different dialogue languages. Note that a real sample would typically have the audio input recorded in different languages. This sample simulates different languages by applying a different mix gain to make them audibly different." +"test_000706","test_000705","3.6.2/loudspeaker_layout == Stereo, 3.6.4/ambisonics_mono_config, 3.7.3/sound_system == Stereo, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"An example of a third-order ambisonics with three mixes that represent different dialogue languages. Note that a real sample would typically have the audio input recored in different languages. This sample simulates different languages by applying a different mix gain to make them audibly different." +"test_000707","test_000705","3.6.2/loudspeaker_layout == Mono, 3.7/num_audio_elements, 3.7.3/sound_system == Stereo, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"An example using the maximum number of audio elements for Base-Enhanced profile. It has twenty-eight mono audio elements and a stereo output layout." +"test_000708","test_000624","3.6.2/loudspeaker_layout == 7.1.4, 3.6.3/ambisonics_mono_config, 3.7.3/sound_system == Stereo, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",True,True,"An example using the maximum number of audio elements for Base-Enhanced profile. It has two audio elements {third-order mono ambisonics, 7.1.4} and a stereo output layout." +"test_000709","test_000208","3.4/primary_profile == 255, 3.4/additional_profile == 255",False,False,"An example of an imaginary IAMF stream using a profile reserved for future. An IAMF v1.1 decoder should ignore it because neither the primary profile nor additional profile are defined in IAMF v1.1." +"test_000710","test_000705","3.4/additional_profile == 255, 3.6.2/loudspeaker_layout == Mono, 3.7/num_audio_elements, 3.7.3/sound_system == Stereo, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",False,True,"An example using which contains one Mix Presentation which uses greater than the maximum number of audio elements for Base-Enhanced profile and should be ignored. It has a second audio element which encodes two audio elements which can be decoded under Base-Enhanced profile." +"test_000711","test_000400","3.4/additional_profile == 255, 3.6.2/loudspeaker_layout == Expanded, 3.6.2/expanded_loudspeaker_layout == Top-6Ch, 3.6.3/ambisonics_mono_config, 3.7/num_audio_elements, 3.7.3/sound_system == Stereo, 3.7.4/default_mix_gain, 4.2/Base-Enhanced Profile, 8.5.1/Loudness Information",False,True,"An example using which contains one Mix Presentation which uses greater than the maximum number of audio elements for Base-Enhanced profile and should be ignored. It has a second audio element which encodes fourth-order ambisonics which can be decoded under Base-Enhanced profile."