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 IAMF stream. It has a parameter block not aligned with the audio " 17 "frames, ending one frame earlier. This is invalid because parameter " 18 "blocks should cover the whole duration of the audio frames that use the " 19 "parameter." 20 file_name_prefix: "test_000016" 21 is_valid: false 22 is_valid_to_decode: false 23 validate_user_loudness: true 24 mp4_fixed_timestamp: "2024-12-17 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.5/num_samples_per_frame", 31 "3.6.1/param_definition_mode", 32 "3.8/duration", 33 "3.8/constant_subblock_duration", 34 "3.9/Audio Frame OBU Syntax and Semantics" 35 ] 36 base_test: "test_000005" 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: 4 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: 127 103 parameter_rate: 48000 104 param_definition_mode: 0 105 reserved: 0 106 duration: 4 107 constant_subblock_duration: 4 108 } 109 default_mix_gain: 0 110 } 111 } 112 output_mix_gain { 113 param_definition { 114 parameter_id: 100 115 parameter_rate: 48000 116 param_definition_mode: 1 117 reserved: 0 118 } 119 default_mix_gain: 0 120 } 121 num_layouts: 1 122 layouts { 123 loudness_layout { 124 layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION 125 ss_layout { 126 sound_system: SOUND_SYSTEM_A_0_2_0 127 reserved: 0 128 } 129 } 130 loudness { 131 info_type_bit_masks: [] 132 integrated_loudness: -32768 133 digital_peak: -32768 134 } 135 } 136 } 137} 138 139audio_frame_metadata { 140 wav_filename: "stereo_8_samples_48khz_s16le.wav" 141 samples_to_trim_at_end: 0 142 samples_to_trim_at_start: 0 143 audio_element_id: 300 144 channel_metadatas: [ 145 { channel_id: 0 channel_label: CHANNEL_LABEL_L_2 }, 146 { channel_id: 1 channel_label: CHANNEL_LABEL_R_2 } 147 ] 148} 149 150arbitrary_obu_metadata { 151 # There are two frames of audio, but only one parameter block. Normally, 152 # a given `parameter_id` cover the whole duration of the audio frames or be 153 # entirely absent. 154 invalidates_bitstream: true 155 insertion_hook: INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK 156 insertion_tick: 0 157 obu_type: OBU_IA_PARAMETER_BLOCK 158 obu_header { 159 obu_redundant_copy: false 160 obu_trimming_status_flag: false 161 obu_extension_flag: false 162 } 163 164 payload: 165 # `parameter_id` (127)`. 166 "\x7f" 167 # `animation_type` = `ANIMATE_STEP`. 168 "\x00" 169 # `start_point_value` 170 "\xbb\xcc" 171} 172 173temporal_delimiter_metadata { 174 enable_temporal_delimiters: false 175} 176