1# Copyright (c) 2023, 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 first-order ambisonics + stereo base profile IAMF stream encoded using " 17 "Opus." 18 file_name_prefix: "test_000303" 19 is_valid: true 20 is_valid_to_decode: true 21 validate_user_loudness: true 22 mp4_fixed_timestamp: "2023-04-19 00:00:00" 23 test_repository_tags: [ 24 "github/aomediacodec/libiamf/main", 25 "github/aomediacodec/libiamf/v1.0.0-errata" 26 ] 27 primary_tested_spec_sections: [ 28 "3.6/num_parameters", 29 "3.6.2/loudspeaker_layout == Stereo", 30 "3.6.3/ambisonics_mono_config", 31 "3.7.4/default_mix_gain", 32 "3.11.1/OPUS Specific", 33 "4.2/Base Profile", 34 "8.5.1/Loudness Information" 35 ] 36 base_test: "test_000109" 37 output_wav_file_bit_depth_override: 16 38} 39 40encoder_control_metadata { 41 add_build_information_tag: false 42} 43 44ia_sequence_header_metadata { 45 primary_profile: PROFILE_VERSION_BASE 46 additional_profile: PROFILE_VERSION_BASE 47} 48 49codec_config_metadata { 50 codec_config_id: 200 51 codec_config { 52 codec_id: CODEC_ID_OPUS 53 num_samples_per_frame: 960 54 audio_roll_distance: -4 55 decoder_config_opus { 56 version: 1 57 pre_skip: 312 58 input_sample_rate: 48000 59 opus_encoder_metadata { 60 target_bitrate_per_channel: 48000 61 application: APPLICATION_AUDIO 62 use_float_api: false 63 } 64 } 65 } 66} 67 68audio_element_metadata: [ 69 { 70 audio_element_id: 300 71 audio_element_type: AUDIO_ELEMENT_SCENE_BASED 72 reserved: 0 73 codec_config_id: 200 74 num_substreams: 4 75 audio_substream_ids: [0, 1, 2, 3] 76 num_parameters: 0 77 ambisonics_config { 78 ambisonics_mode: AMBISONICS_MODE_MONO 79 ambisonics_mono_config { 80 output_channel_count: 4 81 substream_count: 4 82 channel_mapping: [0, 1, 2, 3] 83 } 84 } 85 }, 86 { 87 audio_element_id: 301 88 audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED 89 reserved: 0 90 codec_config_id: 200 91 num_substreams: 1 92 audio_substream_ids: [4] 93 num_parameters: 0 94 scalable_channel_layout_config { 95 num_layers: 1 96 reserved: 0 97 channel_audio_layer_configs: [ 98 { 99 loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO 100 output_gain_is_present_flag: 0 101 recon_gain_is_present_flag: 0 102 reserved_a: 0 103 substream_count: 1 104 coupled_substream_count: 1 105 } 106 ] 107 } 108 } 109] 110 111mix_presentation_metadata { 112 mix_presentation_id: 42 113 count_label: 1 114 annotations_language: ["en-us"] 115 localized_presentation_annotations: ["test_mix_pres"] 116 num_sub_mixes: 1 117 sub_mixes { 118 num_audio_elements: 2 119 audio_elements: [ 120 { 121 audio_element_id: 300 122 localized_element_annotations: ["test_sub_mix_0_audio_element_0"] 123 rendering_config { 124 headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO 125 } 126 element_mix_gain { 127 param_definition { 128 parameter_id: 999 # Non-existent; default will be used 129 parameter_rate: 48000 130 param_definition_mode: 1 131 reserved: 0 132 } 133 default_mix_gain: -768 134 } 135 }, 136 { 137 audio_element_id: 301 138 localized_element_annotations: ["test_sub_mix_0_audio_element_1"] 139 rendering_config { 140 headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO 141 } 142 element_mix_gain { 143 param_definition { 144 parameter_id: 998 # Non-existent; default will be used 145 parameter_rate: 48000 146 param_definition_mode: 1 147 reserved: 0 148 } 149 default_mix_gain: -768 150 } 151 } 152 ] 153 output_mix_gain { 154 param_definition { 155 parameter_id: 997 # Non-existent; default will be used 156 parameter_rate: 48000 157 param_definition_mode: 1 158 reserved: 0 159 } 160 default_mix_gain: 0 161 } 162 num_layouts: 1 163 layouts { 164 loudness_layout { 165 layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION 166 ss_layout { 167 sound_system: SOUND_SYSTEM_A_0_2_0 168 reserved: 0 169 } 170 } 171 loudness { 172 info_type_bit_masks: [] 173 integrated_loudness: -3488 174 digital_peak: -565 175 } 176 } 177 } 178} 179 180audio_frame_metadata: [ 181 { 182 wav_filename: "Transport_TOA_5s.wav" 183 samples_to_trim_at_end: 648 184 samples_to_trim_at_start: 312 185 audio_element_id: 300 186 channel_metadatas: [ 187 { channel_id: 0 channel_label: CHANNEL_LABEL_A_0 }, 188 { channel_id: 1 channel_label: CHANNEL_LABEL_A_1 }, 189 { channel_id: 2 channel_label: CHANNEL_LABEL_A_2 }, 190 { channel_id: 3 channel_label: CHANNEL_LABEL_A_3 } 191 ] 192 }, 193 { 194 wav_filename: "dialog_clip_stereo.wav" 195 samples_to_trim_at_end: 648 196 samples_to_trim_at_start: 312 197 audio_element_id: 301 198 channel_metadatas: [ 199 { channel_id: 0 channel_label: CHANNEL_LABEL_L_2 }, 200 { channel_id: 1 channel_label: CHANNEL_LABEL_R_2 } 201 ] 202 } 203] 204 205temporal_delimiter_metadata { 206 enable_temporal_delimiters: false 207} 208