1# Copyright (c) 2024, Alliance for Open Media. All rights reserved 2# 3# This source code is subject to the terms of the BSD 3-Clause Clear License 4# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear 5# License was not distributed with this source code in the LICENSE file, you 6# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the 7# Alliance for Open Media Patent License 1.0 was not distributed with this 8# source code in the PATENTS file, you can obtain it at 9# www.aomedia.org/license/patent. 10 11# proto-file: iamf/cli/proto/user_metadata.proto 12# proto-message: UserMetadata 13 14test_vector_metadata { 15 human_readable_description: 16 "A simple example of a third-order mono ambisonics + Top-6ch " 17 "Base-Enhanced profile IAMF stream and a 9.1.6 output layout." 18 file_name_prefix: "test_000633" 19 is_valid: true 20 is_valid_to_decode: true 21 validate_user_loudness: true 22 mp4_fixed_timestamp: "2024-08-08 00:00:00" 23 test_repository_tags: ["github/aomediacodec/libiamf/main"] 24 primary_tested_spec_sections: [ 25 "3.6.2/loudspeaker_layout == Expanded", 26 "3.6.2/expanded_loudspeaker_layout == Top-6ch", 27 "3.6.3/ambisonics_mono_config", 28 "3.7.3/sound_system == 9.1.6", 29 "3.7.4/default_mix_gain", 30 "4.2/Base-Enhanced Profile", 31 "8.5.1/Loudness Information" 32 ] 33 base_test: "test_000600" 34} 35 36encoder_control_metadata { 37 add_build_information_tag: false 38} 39 40ia_sequence_header_metadata { 41 primary_profile: PROFILE_VERSION_BASE_ENHANCED 42 additional_profile: PROFILE_VERSION_BASE_ENHANCED 43} 44 45codec_config_metadata { 46 codec_config_id: 200 47 codec_config { 48 codec_id: CODEC_ID_LPCM 49 num_samples_per_frame: 1024 50 audio_roll_distance: 0 51 decoder_config_lpcm { 52 sample_format_flags: LPCM_LITTLE_ENDIAN 53 sample_size: 16 54 sample_rate: 48000 55 } 56 } 57} 58 59audio_element_metadata: [ 60 { 61 audio_element_id: 300 62 audio_element_type: AUDIO_ELEMENT_SCENE_BASED 63 reserved: 0 64 codec_config_id: 200 65 num_substreams: 16 66 audio_substream_ids: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 67 num_parameters: 0 68 ambisonics_config { 69 ambisonics_mode: AMBISONICS_MODE_MONO 70 ambisonics_mono_config { 71 output_channel_count: 16 72 substream_count: 16 73 channel_mapping: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 74 } 75 } 76 }, 77 { 78 audio_element_id: 301 79 audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED 80 reserved: 0 81 codec_config_id: 200 82 num_substreams: 3 83 audio_substream_ids: [16, 17, 18] 84 num_parameters: 0 85 scalable_channel_layout_config { 86 num_layers: 1 87 reserved: 0 88 channel_audio_layer_configs: [ 89 { 90 loudspeaker_layout: LOUDSPEAKER_LAYOUT_EXPANDED 91 output_gain_is_present_flag: 0 92 recon_gain_is_present_flag: 0 93 reserved_a: 0 94 substream_count: 3 95 coupled_substream_count: 3 96 expanded_loudspeaker_layout: EXPANDED_LOUDSPEAKER_LAYOUT_TOP_6_CH 97 } 98 ] 99 } 100 } 101] 102 103mix_presentation_metadata { 104 mix_presentation_id: 42 105 count_label: 1 106 annotations_language: ["en-us"] 107 localized_presentation_annotations: ["test_mix_pres"] 108 num_sub_mixes: 1 109 sub_mixes { 110 num_audio_elements: 2 111 audio_elements: [ 112 { 113 audio_element_id: 300 114 localized_element_annotations: ["test_sub_mix_0_audio_element_0"] 115 rendering_config { 116 headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO 117 } 118 element_mix_gain { 119 param_definition { 120 parameter_id: 999 # Non-existent; default will be used 121 parameter_rate: 48000 122 param_definition_mode: 1 123 reserved: 0 124 } 125 default_mix_gain: -768 126 } 127 }, 128 { 129 audio_element_id: 301 130 localized_element_annotations: ["test_sub_mix_0_audio_element_1"] 131 rendering_config { 132 headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO 133 } 134 element_mix_gain { 135 param_definition { 136 parameter_id: 998 # Non-existent; default will be used 137 parameter_rate: 48000 138 param_definition_mode: 1 139 reserved: 0 140 } 141 default_mix_gain: -768 142 } 143 } 144 ] 145 output_mix_gain { 146 param_definition { 147 parameter_id: 997 # Non-existent; default will be used 148 parameter_rate: 48000 149 param_definition_mode: 1 150 reserved: 0 151 } 152 default_mix_gain: 0 153 } 154 num_layouts: 2 155 layouts { 156 loudness_layout { 157 layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION 158 ss_layout { 159 sound_system: SOUND_SYSTEM_A_0_2_0 160 reserved: 0 161 } 162 } 163 loudness { 164 info_type_bit_masks: [] 165 integrated_loudness: -4390 166 digital_peak: -445 167 } 168 } 169 layouts { 170 loudness_layout { 171 layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION 172 ss_layout { 173 sound_system: SOUND_SYSTEM_13_6_9_0 174 reserved: 0 175 } 176 } 177 loudness { 178 info_type_bit_masks: [] 179 integrated_loudness: -4196 180 digital_peak: -1267 181 } 182 } 183 } 184} 185 186audio_frame_metadata: [ 187 { 188 wav_filename: "sine_1000_4oa_48khz.wav" 189 samples_to_trim_at_end: 640 190 samples_to_trim_at_start: 0 191 audio_element_id: 300 192 channel_metadatas: [ 193 { channel_id: 0 channel_label: CHANNEL_LABEL_A_0 }, 194 { channel_id: 1 channel_label: CHANNEL_LABEL_A_1 }, 195 { channel_id: 2 channel_label: CHANNEL_LABEL_A_2 }, 196 { channel_id: 3 channel_label: CHANNEL_LABEL_A_3 }, 197 { channel_id: 4 channel_label: CHANNEL_LABEL_A_4 }, 198 { channel_id: 5 channel_label: CHANNEL_LABEL_A_5 }, 199 { channel_id: 6 channel_label: CHANNEL_LABEL_A_6 }, 200 { channel_id: 7 channel_label: CHANNEL_LABEL_A_7 }, 201 { channel_id: 8 channel_label: CHANNEL_LABEL_A_8 }, 202 { channel_id: 9 channel_label: CHANNEL_LABEL_A_9 }, 203 { channel_id: 10 channel_label: CHANNEL_LABEL_A_10 }, 204 { channel_id: 11 channel_label: CHANNEL_LABEL_A_11 }, 205 { channel_id: 12 channel_label: CHANNEL_LABEL_A_12 }, 206 { channel_id: 13 channel_label: CHANNEL_LABEL_A_13 }, 207 { channel_id: 14 channel_label: CHANNEL_LABEL_A_14 }, 208 { channel_id: 15 channel_label: CHANNEL_LABEL_A_15 } 209 ] 210 }, 211 { 212 wav_filename: "Mechanism_5s.wav" 213 samples_to_trim_at_end: 640 214 samples_to_trim_at_start: 0 215 audio_element_id: 301 216 # Original wav file is really based on 7.1.4, but we can treat the labels as 217 # 9.1.6 to work with Top-6ch. 218 channel_metadatas: [ 219 { channel_id: 4 channel_label: CHANNEL_LABEL_TP_SI_L }, # Lss7 in the original file. 220 { channel_id: 5 channel_label: CHANNEL_LABEL_TP_SI_R }, # Rss7 in the original file. 221 { channel_id: 8 channel_label: CHANNEL_LABEL_TP_FL }, # Ltf4 in the original file. 222 { channel_id: 9 channel_label: CHANNEL_LABEL_TP_FR }, # Rtf4 in the original file. 223 { channel_id: 10 channel_label: CHANNEL_LABEL_TP_BL }, # Ltb4 in the original file. 224 { channel_id: 11 channel_label: CHANNEL_LABEL_TP_BR } # Rtb4 in the original file. 225 ] 226 } 227] 228 229temporal_delimiter_metadata { 230 enable_temporal_delimiters: false 231} 232