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 stereo Opus IAMF stream which additionally contains several reserved " 17 "OBUs interlaced between the descriptor OBUs and in the first temporal " 18 "unit. The spec does not predetermine which reserved OBUs will be " 19 "descriptor OBUs and which will be temporal unit OBUs." 20 file_name_prefix: "test_000116" 21 is_valid: true 22 is_valid_to_decode: true 23 validate_user_loudness: true 24 mp4_fixed_timestamp: "2023-05-05 00:00:00" 25 test_repository_tags: [ 26 "github/aomediacodec/libiamf/main", 27 "github/aomediacodec/libiamf/v1.0.0-errata" 28 ] 29 primary_tested_spec_sections: [ 30 "3.2/obu_type", 31 "3.5/audio_roll_distance", 32 "3.9/Audio Frame OBU Syntax and Semantics", 33 "3.11.1/OPUS Specific", 34 "3.11.1/num_samples_per_frame", 35 "4/Reserved Descriptor OBU", 36 "4/Reserved Temporal Unit OBU", 37 "6.2.2/roll" 38 ] 39 base_test: "test_000020" 40 output_wav_file_bit_depth_override: 16 41} 42 43encoder_control_metadata { 44 add_build_information_tag: false 45} 46 47ia_sequence_header_metadata { 48 primary_profile: PROFILE_VERSION_SIMPLE 49 additional_profile: PROFILE_VERSION_SIMPLE 50} 51 52codec_config_metadata { 53 codec_config_id: 200 54 codec_config { 55 codec_id: CODEC_ID_OPUS 56 num_samples_per_frame: 960 57 audio_roll_distance: -4 58 decoder_config_opus { 59 version: 1 60 pre_skip: 312 61 input_sample_rate: 48000 62 opus_encoder_metadata { 63 target_bitrate_per_channel: 48000 64 application: APPLICATION_AUDIO 65 use_float_api: false 66 } 67 } 68 } 69} 70 71audio_element_metadata { 72 audio_element_id: 300 73 audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED 74 reserved: 0 75 codec_config_id: 200 76 num_substreams: 1 77 audio_substream_ids: [0] 78 num_parameters: 0 79 scalable_channel_layout_config { 80 num_layers: 1 81 reserved: 0 82 channel_audio_layer_configs: [ 83 { 84 loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO 85 output_gain_is_present_flag: 0 86 recon_gain_is_present_flag: 0 87 reserved_a: 0 88 substream_count: 1 89 coupled_substream_count: 1 90 } 91 ] 92 } 93} 94 95mix_presentation_metadata { 96 mix_presentation_id: 42 97 count_label: 1 98 annotations_language: ["en-us"] 99 localized_presentation_annotations: ["test_mix_pres"] 100 num_sub_mixes: 1 101 sub_mixes { 102 num_audio_elements: 1 103 audio_elements { 104 audio_element_id: 300 105 localized_element_annotations: ["test_sub_mix_0_audio_element_0"] 106 rendering_config { 107 headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO 108 } 109 element_mix_gain { 110 param_definition { 111 parameter_id: 100 112 parameter_rate: 48000 113 param_definition_mode: 1 114 reserved: 0 115 } 116 default_mix_gain: 0 117 } 118 } 119 output_mix_gain { 120 param_definition { 121 parameter_id: 100 122 parameter_rate: 48000 123 param_definition_mode: 1 124 reserved: 0 125 } 126 default_mix_gain: 0 127 } 128 num_layouts: 1 129 layouts { 130 loudness_layout { 131 layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION 132 ss_layout { 133 sound_system: SOUND_SYSTEM_A_0_2_0 134 reserved: 0 135 } 136 } 137 loudness { 138 info_type_bit_masks: [] 139 integrated_loudness: -5393 140 digital_peak: -5394 141 } 142 } 143 } 144} 145 146audio_frame_metadata { 147 wav_filename: "sine_1000_48khz.wav" 148 samples_to_trim_at_end: 648 149 samples_to_trim_at_start: 312 150 audio_element_id: 300 151 channel_metadatas: [ 152 { channel_id: 0 channel_label: CHANNEL_LABEL_L_2 }, 153 { channel_id: 1 channel_label: CHANNEL_LABEL_R_2 } 154 ] 155} 156 157parameter_block_metadata { 158 parameter_id: 100 159 start_timestamp: 0 160 duration: 24960 161 num_subblocks: 1 162 constant_subblock_duration: 24960 163 subblocks: [ 164 { 165 mix_gain_parameter_data { 166 animation_type: ANIMATE_STEP 167 param_data { 168 step { 169 start_point_value: 0 170 } 171 } 172 } 173 } 174 ] 175} 176 177temporal_delimiter_metadata { 178 enable_temporal_delimiters: true 179} 180 181arbitrary_obu_metadata { 182 insertion_hook: INSERTION_HOOK_AFTER_IA_SEQUENCE_HEADER 183 obu_type: OBU_IA_RESERVED_24 184 payload: "Imaginary descriptor OBU between the IA sequence header and codec config." 185} 186 187arbitrary_obu_metadata { 188 insertion_hook: INSERTION_HOOK_AFTER_CODEC_CONFIGS 189 obu_type: OBU_IA_RESERVED_25 190 payload: "Imaginary descriptor OBU between the codec config and audio element." 191} 192 193arbitrary_obu_metadata { 194 insertion_hook: INSERTION_HOOK_AFTER_AUDIO_ELEMENTS 195 obu_type: OBU_IA_RESERVED_26 196 payload: "Imaginary descriptor OBU between the audio element and mix presentation." 197} 198 199arbitrary_obu_metadata { 200 insertion_hook: INSERTION_HOOK_BEFORE_PARAMETER_BLOCKS_AT_TICK 201 insertion_tick: 0 202 obu_type: OBU_IA_RESERVED_27 203 payload: "Imaginary temporal unit OBU between the first temporal delimiter and the first parameter block." 204} 205 206arbitrary_obu_metadata { 207 insertion_hook: INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK 208 insertion_tick: 0 209 obu_type: OBU_IA_RESERVED_28 210 payload: "Imaginary temporal unit OBU between the first parameter block and the first audio frame." 211} 212 213arbitrary_obu_metadata { 214 insertion_hook: INSERTION_HOOK_AFTER_AUDIO_FRAMES_AT_TICK 215 insertion_tick: 0 216 obu_type: OBU_IA_RESERVED_29 217 payload: "Imaginary temporal unit OBU between the first audio frame and the second temporal delimiter." 218} 219 220arbitrary_obu_metadata { 221 insertion_hook: INSERTION_HOOK_AFTER_AUDIO_FRAMES_AT_TICK 222 insertion_tick: 960 223 obu_type: OBU_IA_RESERVED_30 224 payload: "Imaginary temporal unit OBU between the second audio frame the third temporal delimiter." 225} 226