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 "An invalid stereo stream. The first mix uses a single stereo audio " 17 "element encoded with LPCM. The second mix uses a single stereo audio " 18 "element encoded with an imaginary `codec_id`. For convenience, the " 19 "imaginary `codec_id` uses the same syntax as LPCM." 20 file_name_prefix: "test_000119" 21 # The encoder cannot accurately encode a `coded_id` which is not yet defined. 22 is_valid: false 23 # A compliant decoder can decode the mix with `mix_presentation_id` 42. 24 is_valid_to_decode: true 25 partition_mix_gain_parameter_blocks: false 26 validate_user_loudness: true 27 mp4_fixed_timestamp: "2024-07-17 00:00:00" 28 test_repository_tags: [ 29 "github/aomediacodec/libiamf/main", 30 "github/aomediacodec/libiamf/v1.0.0-errata" 31 ] 32 primary_tested_spec_sections: [ 33 "3.5/codec_id", 34 "4.1/Simple Profile" 35 ] 36 base_test: "test_000002" 37} 38 39encoder_control_metadata { 40 add_build_information_tag: false 41} 42 43ia_sequence_header_metadata { 44 primary_profile: PROFILE_VERSION_SIMPLE 45 additional_profile: PROFILE_VERSION_SIMPLE 46} 47 48codec_config_metadata { 49 codec_config_id: 200 50 codec_config { 51 codec_id: CODEC_ID_LPCM 52 num_samples_per_frame: 8 53 audio_roll_distance: 0 54 decoder_config_lpcm { 55 sample_format_flags: LPCM_LITTLE_ENDIAN 56 sample_size: 16 57 sample_rate: 48000 58 } 59 } 60} 61 62audio_element_metadata { 63 audio_element_id: 300 64 audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED 65 reserved: 0 66 codec_config_id: 200 67 num_substreams: 1 68 audio_substream_ids: [0] 69 num_parameters: 0 70 scalable_channel_layout_config { 71 num_layers: 1 72 reserved: 0 73 channel_audio_layer_configs: [ 74 { 75 loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO 76 output_gain_is_present_flag: 0 77 recon_gain_is_present_flag: 0 78 reserved_a: 0 79 substream_count: 1 80 coupled_substream_count: 1 81 } 82 ] 83 } 84} 85 86mix_presentation_metadata { 87 mix_presentation_id: 42 88 count_label: 1 89 annotations_language: ["en-us"] 90 localized_presentation_annotations: ["test_mix_pres"] 91 num_sub_mixes: 1 92 sub_mixes { 93 num_audio_elements: 1 94 audio_elements { 95 audio_element_id: 300 96 localized_element_annotations: ["test_sub_mix_0_audio_element_0"] 97 rendering_config { 98 headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO 99 } 100 element_mix_gain { 101 param_definition { 102 parameter_id: 100 103 parameter_rate: 48000 104 param_definition_mode: 1 105 reserved: 0 106 } 107 default_mix_gain: 0 108 } 109 } 110 output_mix_gain { 111 param_definition { 112 parameter_id: 100 113 parameter_rate: 48000 114 param_definition_mode: 1 115 reserved: 0 116 } 117 default_mix_gain: 0 118 } 119 num_layouts: 1 120 layouts { 121 loudness_layout { 122 layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION 123 ss_layout { 124 sound_system: SOUND_SYSTEM_A_0_2_0 125 reserved: 0 126 } 127 } 128 loudness { 129 info_type_bit_masks: [] 130 integrated_loudness: -32768 131 digital_peak: -32768 132 } 133 } 134 } 135} 136 137audio_frame_metadata { 138 wav_filename: "stereo_8_samples_48khz_s16le.wav" 139 samples_to_trim_at_end: 6 140 samples_to_trim_at_start: 0 141 audio_element_id: 300 142 channel_metadatas: [ 143 { channel_id: 0 channel_label: CHANNEL_LABEL_L_2 }, 144 { channel_id: 1 channel_label: CHANNEL_LABEL_R_2 } 145 ] 146} 147 148arbitrary_obu_metadata: [ 149 { 150 # Simple profile does not support `codec_id == fake`. 151 invalidates_bitstream: true 152 insertion_hook: INSERTION_HOOK_AFTER_CODEC_CONFIGS 153 obu_type: OBU_IA_CODEC_CONFIG 154 payload: 155 "\x22" # codec_config_id. 156 "fake" # codec_id. 157 "\x08" # num_samples_per_frame. 158 "\x00\x00" # audio_roll_distance. 159 # Begin an imaginary `decoder_config`. For convenience it has the same 160 # syntax as LPCM. 161 "\x01" # sample_format_flags. 162 "\x10" # sample_size. 163 "\x00\x00\xbb\x80" # sample_rate. 164 }, 165 { 166 insertion_hook: INSERTION_HOOK_AFTER_AUDIO_ELEMENTS 167 obu_type: OBU_IA_AUDIO_ELEMENT 168 payload: 169 "\x33" # audio_element_id. 170 "\x00" # audio_element_type (3), reserved (5). 171 "\x22" # codec_config_id. 172 "\x01" # num_substreams. 173 "\x01" # substream_id. 174 "\x00" # num_parameters. 175 "\x20" # num_layers (3), reserved (5) 176 "\x10" # loudspeaker_layout (4), output_gain_is_present_flag (1), recon_gain_is_present_flag (1), reserved (2). 177 "\x01" # substream_count. 178 "\x01" # coupled_substream_count. 179 }, 180 { 181 insertion_hook: INSERTION_HOOK_AFTER_MIX_PRESENTATIONS 182 obu_type: OBU_IA_MIX_PRESENTATION 183 payload: 184 "\x44" # mix_presentation_id. 185 "\x00" # count_label. 186 "\x01" # num_sub_mixes. 187 "\x01" # num_audio_elements. 188 "\x33" # audio_element_id. 189 "\x00" # headphones_rendering_mode (2), reserved (6). 190 "\x00" # rendering_config_size. 191 # Begin ElementMixGain. 192 "\x66" # parameter_id. 193 "\x80\xf7\x02" # parameter_rate (leb128). 194 "\x80" # param_definition_mode (1), reserved (7). 195 "\x00\00" # default_mix_gain. 196 # Begin OutputMixGain. 197 "\x66" # parameter_id. 198 "\x80\xf7\x02" # parameter_rate (leb128). 199 "\x80" # param_definition_mode (1), reserved (7). 200 "\x00\00" # default_mix_gain. 201 "\x01" # num_layouts. 202 "\x80" # layout_type (2), sound_system (4), reserved (2). 203 "\x00" # info_type. 204 "\x00\x00" # integrated_loudness. 205 "\x00\x00" # digital_peak. 206 }, 207 { 208 insertion_hook: INSERTION_HOOK_AFTER_AUDIO_FRAMES_AT_TICK 209 insertion_tick: 0 210 obu_type: OBU_IA_AUDIO_FRAME_ID_1 211 obu_header: { 212 num_samples_to_trim_at_end: 6 213 } 214 # A short payload which which represents an audio frame encoding using an 215 # imaginary codec associated with the imaginary `codec_id`. 216 payload: "fakedata" 217 } 218] 219 220temporal_delimiter_metadata { 221 enable_temporal_delimiters: false 222} 223