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 IAMF stream where the total duration of the parameter blocks " 17 "is longer than that of the audio frames." 18 file_name_prefix: "test_000133" 19 # Then encoder cannot encode a temporal unit with parameter blocks only. 20 is_valid: false 21 # A compliant decoder should reject a temporal unit with parameter 22 # blocks only. 23 is_valid_to_decode: false 24 mp4_fixed_timestamp: "2024-10-08 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.8/duration", 31 "4/Parameter Substream" 32 ] 33 base_test: "test_000005" 34} 35 36encoder_control_metadata { 37 add_build_information_tag: false 38} 39 40ia_sequence_header_metadata { 41 primary_profile: PROFILE_VERSION_SIMPLE 42 additional_profile: PROFILE_VERSION_SIMPLE 43} 44 45codec_config_metadata { 46 codec_config_id: 200 47 codec_config { 48 codec_id: CODEC_ID_LPCM 49 num_samples_per_frame: 64 50 audio_roll_distance: 0 51 decoder_config_lpcm { 52 sample_format_flags: LPCM_LITTLE_ENDIAN 53 sample_size: 16 54 sample_rate: 16000 55 } 56 } 57} 58 59audio_element_metadata { 60 audio_element_id: 300 61 audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED 62 reserved: 0 63 codec_config_id: 200 64 num_substreams: 1 65 audio_substream_ids: [0] 66 num_parameters: 0 67 scalable_channel_layout_config { 68 num_layers: 1 69 reserved: 0 70 channel_audio_layer_configs: [ 71 { 72 loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO 73 output_gain_is_present_flag: 0 74 recon_gain_is_present_flag: 0 75 reserved_a: 0 76 substream_count: 1 77 coupled_substream_count: 1 78 } 79 ] 80 } 81} 82 83mix_presentation_metadata { 84 mix_presentation_id: 42 85 count_label: 1 86 annotations_language: ["en-us"] 87 localized_presentation_annotations: ["test_mix_pres"] 88 num_sub_mixes: 1 89 sub_mixes { 90 num_audio_elements: 1 91 audio_elements { 92 audio_element_id: 300 93 localized_element_annotations: ["test_sub_mix_0_audio_element_0"] 94 rendering_config { 95 headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO 96 } 97 element_mix_gain { 98 param_definition { 99 parameter_id: 100 100 parameter_rate: 16000 101 param_definition_mode: 1 102 reserved: 0 103 } 104 default_mix_gain: 0 105 } 106 } 107 output_mix_gain { 108 param_definition { 109 parameter_id: 100 110 parameter_rate: 16000 111 param_definition_mode: 1 112 reserved: 0 113 } 114 default_mix_gain: 0 115 } 116 num_layouts: 1 117 layouts { 118 loudness_layout { 119 layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION 120 ss_layout { 121 sound_system: SOUND_SYSTEM_A_0_2_0 122 reserved: 0 123 } 124 } 125 loudness { 126 info_type_bit_masks: [] 127 integrated_loudness: -13733 128 digital_peak: -12879 129 } 130 } 131 } 132} 133 134audio_frame_metadata { 135 wav_filename: "sawtooth_100_stereo.wav" 136 samples_to_trim_at_end: 0 137 samples_to_trim_at_start: 0 138 audio_element_id: 300 139 channel_metadatas: [ 140 { channel_id: 0 channel_label: CHANNEL_LABEL_L_2 }, 141 { channel_id: 1 channel_label: CHANNEL_LABEL_R_2 } 142 ] 143} 144 145parameter_block_metadata { 146 parameter_id: 100 147 start_timestamp: 0 148 duration: 8000 149 num_subblocks: 1 150 constant_subblock_duration: 8000 151 subblocks: [ 152 { 153 mix_gain_parameter_data { 154 animation_type: ANIMATE_STEP 155 param_data { 156 step { 157 start_point_value: 0 158 } 159 } 160 } 161 } 162 ] 163} 164 165temporal_delimiter_metadata { 166 enable_temporal_delimiters: false 167} 168 169arbitrary_obu_metadata { 170 invalidates_bitstream: true 171 insertion_hook: INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK 172 # Audio frames end at tick 8000, so this parameter block starting at tick 173 # 8000 makes the total duration of a parameter longer than the audio. 174 insertion_tick: 8000 175 obu_type: OBU_IA_PARAMETER_BLOCK 176 payload: 177 "\x64" # parameter_id (100). 178 "\x40" # duration (64). 179 "\x40" # constant duration (64). 180 "\x00" # animation_type (0). 181 "\x00\x00" # start_point_value (0). 182} 183