• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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