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