• 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 IAMF stream. It has a parameter block not aligned with the audio "
17    "frames, ending one frame earlier. This is invalid because parameter "
18    "blocks should cover the whole duration of the audio frames that use the "
19    "parameter."
20  file_name_prefix: "test_000016"
21  is_valid: false
22  is_valid_to_decode: false
23  validate_user_loudness: true
24  mp4_fixed_timestamp: "2024-12-17 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.5/num_samples_per_frame",
31    "3.6.1/param_definition_mode",
32    "3.8/duration",
33    "3.8/constant_subblock_duration",
34    "3.9/Audio Frame OBU Syntax and Semantics"
35  ]
36  base_test: "test_000005"
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: 4
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: 127
103          parameter_rate: 48000
104          param_definition_mode: 0
105          reserved: 0
106          duration: 4
107          constant_subblock_duration: 4
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: 0
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  # There are two frames of audio, but only one parameter block. Normally,
152  # a given `parameter_id` cover the whole duration of the audio frames or be
153  # entirely absent.
154  invalidates_bitstream: true
155  insertion_hook: INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK
156  insertion_tick: 0
157  obu_type: OBU_IA_PARAMETER_BLOCK
158  obu_header {
159    obu_redundant_copy: false
160    obu_trimming_status_flag: false
161    obu_extension_flag: false
162  }
163
164  payload:
165    # `parameter_id` (127)`.
166    "\x7f"
167    # `animation_type` = `ANIMATE_STEP`.
168    "\x00"
169    # `start_point_value`
170    "\xbb\xcc"
171}
172
173temporal_delimiter_metadata {
174  enable_temporal_delimiters: false
175}
176