• 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    "A stereo IAMF stream. The second mix presentation has a two parameter "
17    "definitions with the same `parameter_id`, but inconsistent "
18    "`param_definition_mode`s. Typically, all parameters with the same ID must "
19    "have consistent `param_definition_mode`s."
20  file_name_prefix: "test_000136"
21  # The encoder would not normally encode data with inconsistent
22  # `ParamDefinitions`.
23  is_valid: false
24  # The decoder would not normally decode data with inconsistent
25  # `ParamDefinitions`.
26  is_valid_to_decode: false
27  partition_mix_gain_parameter_blocks: false
28  validate_user_loudness: true
29  mp4_fixed_timestamp: "2024-12-20 00:00:00"
30  test_repository_tags: [
31    "github/aomediacodec/libiamf/main",
32    "github/aomediacodec/libiamf/v1.0.0-errata"
33  ]
34  primary_tested_spec_sections: [
35    "3.5/codec_id",
36    "4.1/Simple Profile"
37  ]
38  base_test: "test_000119"
39}
40
41encoder_control_metadata {
42  add_build_information_tag: false
43}
44
45ia_sequence_header_metadata {
46  primary_profile: PROFILE_VERSION_SIMPLE
47  additional_profile: PROFILE_VERSION_SIMPLE
48}
49
50codec_config_metadata {
51  codec_config_id: 200
52  codec_config {
53    codec_id: CODEC_ID_LPCM
54    num_samples_per_frame: 8
55    audio_roll_distance: 0
56    decoder_config_lpcm {
57      sample_format_flags: LPCM_LITTLE_ENDIAN
58      sample_size: 16
59      sample_rate: 48000
60    }
61  }
62}
63
64audio_element_metadata {
65  audio_element_id: 127
66  audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED
67  reserved: 0
68  codec_config_id: 200
69  num_substreams: 1
70  audio_substream_ids: [0]
71  num_parameters: 0
72  scalable_channel_layout_config {
73    num_layers: 1
74    reserved: 0
75    channel_audio_layer_configs: [
76      {
77        loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO
78        output_gain_is_present_flag: 0
79        recon_gain_is_present_flag: 0
80        reserved_a: 0
81        substream_count: 1
82        coupled_substream_count: 1
83      }
84    ]
85  }
86}
87
88mix_presentation_metadata {
89  mix_presentation_id: 42
90  count_label: 1
91  annotations_language: ["en-us"]
92  localized_presentation_annotations: ["test_mix_pres"]
93  num_sub_mixes: 1
94  sub_mixes {
95    num_audio_elements: 1
96    audio_elements {
97      audio_element_id: 300
98      localized_element_annotations: ["test_sub_mix_0_audio_element_0"]
99      rendering_config {
100        headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO
101      }
102      element_mix_gain {
103        param_definition {
104          parameter_id: 100
105          parameter_rate: 48000
106          param_definition_mode: 1
107          reserved: 0
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: 6
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  {
152    # The `ElementMixGain` and `OutputMixGain` share the same `parameter_id`,
153    # but are inconsistent and signal a different subblock schedule.
154    invalidates_bitstream: true
155    insertion_hook: INSERTION_HOOK_AFTER_MIX_PRESENTATIONS
156    obu_type: OBU_IA_MIX_PRESENTATION
157    payload:
158      "\x44"  # mix_presentation_id.
159      "\x00"  # count_label.
160      "\x01"  # num_sub_mixes.
161      "\x01"  # num_audio_elements.
162      "\x7f"  # audio_element_id = 127.
163      "\x00"  # headphones_rendering_mode (2), reserved (6).
164      "\x00"  # rendering_config_size.
165      # Begin `ElementMixGain`.
166      "\x66"  # parameter_id.
167      "\x80\xf7\x02"  # parameter_rate (leb128).
168      "\x80"  # param_definition_mode (1), reserved (7).
169      "\x00\00"  # default_mix_gain.
170      # Begin `OutputMixGain`, which is inconsistent with the `ElementMixGain`.
171      "\x66"  # parameter_id.
172      "\x80\xf7\x02"  # parameter_rate (leb128).
173      "\x00"  # param_definition_mode (1), reserved (7).
174      "\x08"  # duration (leb128).
175      "\x04"  # constant_subblock_duration (leb128).
176      "\x00\00"  # default_mix_gain.
177      "\x01"  # num_layouts.
178      "\x80"  # layout_type (2), sound_system (4), reserved (2).
179      "\x00"  # info_type.
180      "\x00\x00"  # integrated_loudness.
181      "\x00\x00"  # digital_peak.
182  }
183]
184
185temporal_delimiter_metadata {
186  enable_temporal_delimiters: false
187}
188