• 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 IAMF stream. The first mix uses a single stereo audio element. "
17    "The second mix presentation uses an `audio_element_type` which is "
18    "reserved in Simple profile."
19  file_name_prefix: "test_000120"
20  # The encoder cannot accurately encode an `audio_element_type` which is not
21  # 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.6/audio_element_type",
34    "4.1/Simple Profile"
35  ]
36  base_test: "test_000119"
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: 0x22
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: 0x22
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 `audio_element_type == 2`.
151    invalidates_bitstream: true
152    insertion_hook: INSERTION_HOOK_AFTER_AUDIO_ELEMENTS
153    obu_type: OBU_IA_AUDIO_ELEMENT
154    payload:
155      "\x33"  # audio_element_id.
156      "\x40"  # audio_element_type (3), reserved (5).
157      "\x22"  # codec_config_id.
158      "\x01"  # num_substreams.
159      "\x01"  # substream_id.
160      "\x00"  # num_parameters.
161      # Begin `extension_config`.
162      "\x00"  # audio_element_config_size.
163  },
164  {
165    insertion_hook: INSERTION_HOOK_AFTER_MIX_PRESENTATIONS
166    obu_type: OBU_IA_MIX_PRESENTATION
167    payload:
168      "\x44"  # mix_presentation_id.
169      "\x00"  # count_label.
170      "\x01"  # num_sub_mixes.
171      "\x01"  # num_audio_elements.
172      "\x33"  # audio_element_id.
173      "\x00"  # headphones_rendering_mode (2), reserved (6).
174      "\x00"  # rendering_config_size.
175      # Begin ElementMixGain.
176      "\x66"  # parameter_id.
177      "\x80\xf7\x02"  # parameter_rate (leb128).
178      "\x80"  # param_definition_mode (1), reserved (7).
179      "\x00\00"  # default_mix_gain.
180      # Begin OutputMixGain.
181      "\x66"  # parameter_id.
182      "\x80\xf7\x02"  # parameter_rate (leb128).
183      "\x80"  # param_definition_mode (1), reserved (7).
184      "\x00\00"  # default_mix_gain.
185      "\x01"  # num_layouts.
186      "\x80"  # layout_type (2), sound_system (4), reserved (2).
187      "\x00"  # info_type.
188      "\x00\x00"  # integrated_loudness.
189      "\x00\x00"  # digital_peak.
190  },
191  {
192    insertion_hook: INSERTION_HOOK_AFTER_AUDIO_FRAMES_AT_TICK
193    insertion_tick: 0
194    obu_type: OBU_IA_AUDIO_FRAME_ID_1
195    obu_header: {
196      num_samples_to_trim_at_end: 6
197    }
198    payload: "somedata"
199  }
200]
201
202temporal_delimiter_metadata {
203  enable_temporal_delimiters: false
204}
205