Skip to content

Commit d8b5c33

Browse files
committed
Add V2 test vectors: textprotos and standalone .iamf.
- Based on AOMediaCodec/iamf-tools@4b60c2f
1 parent 50ff42d commit d8b5c33

224 files changed

Lines changed: 33370 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

tests/test_000800.iamf

471 KB
Binary file not shown.

tests/test_000800.textproto

Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
# Copyright (c) 2025, 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+
14+
test_vector_metadata {
15+
human_readable_description: "A Base-Advanced Profile Stream with Objects and a PolarParameterDefinition"
16+
file_name_prefix: "test_000800"
17+
is_valid: true
18+
is_valid_to_decode: true
19+
validate_user_loudness: false
20+
mp4_fixed_timestamp: "2025-12-09 00:00:00"
21+
test_repository_tags: [
22+
"github/aomediacodec/libiamf/main"
23+
]
24+
primary_tested_spec_sections: [
25+
"3.6.4/objects_config",
26+
"3.7.1/rendering_config_ with param_definition_polar"
27+
]
28+
base_test: "test_001016"
29+
partition_mix_gain_parameter_blocks: false
30+
}
31+
32+
encoder_control_metadata {
33+
add_build_information_tag: false
34+
output_rendered_file_format: OUTPUT_FORMAT_WAV_BIT_DEPTH_AUTOMATIC
35+
}
36+
37+
ia_sequence_header_metadata {
38+
primary_profile: PROFILE_VERSION_BASE_ADVANCED
39+
additional_profile: PROFILE_VERSION_BASE_ADVANCED
40+
}
41+
42+
codec_config_metadata {
43+
codec_config_id: 200
44+
codec_config {
45+
codec_id: CODEC_ID_LPCM
46+
num_samples_per_frame: 1024
47+
audio_roll_distance: 0
48+
decoder_config_lpcm {
49+
sample_format_flags: LPCM_LITTLE_ENDIAN
50+
sample_size: 16
51+
sample_rate: 48000
52+
}
53+
}
54+
}
55+
56+
audio_element_metadata {
57+
audio_element_id: 300
58+
audio_element_type: AUDIO_ELEMENT_OBJECT_BASED
59+
reserved: 0
60+
codec_config_id: 200
61+
audio_substream_ids: [0]
62+
objects_config {
63+
num_objects: 1
64+
}
65+
}
66+
67+
mix_presentation_metadata {
68+
mix_presentation_id: 42
69+
annotations_language: ["en-us"]
70+
localized_presentation_annotations: ["test_mix_pres"]
71+
sub_mixes {
72+
audio_elements {
73+
audio_element_id: 300
74+
localized_element_annotations: ["test_sub_mix_0_audio_element_0"]
75+
rendering_config {
76+
headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO
77+
rendering_config_param_definitions {
78+
param_definition_type: PARAM_DEFINITION_TYPE_POLAR
79+
polar_param_definition {
80+
param_definition {
81+
parameter_id: 1
82+
parameter_rate: 48000
83+
param_definition_mode: 0
84+
duration: 1024
85+
constant_subblock_duration: 1024
86+
}
87+
default_azimuth: 0
88+
default_elevation: 0
89+
default_distance: 127
90+
}
91+
}
92+
}
93+
element_mix_gain {
94+
param_definition {
95+
parameter_id: 100
96+
parameter_rate: 48000
97+
param_definition_mode: 1
98+
reserved: 0
99+
}
100+
default_mix_gain: -768 # -3 dB.
101+
}
102+
}
103+
output_mix_gain {
104+
param_definition {
105+
parameter_id: 101
106+
parameter_rate: 48000
107+
param_definition_mode: 1
108+
reserved: 0
109+
}
110+
default_mix_gain: 0 # 0 dB.
111+
}
112+
layouts {
113+
loudness_layout {
114+
layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION
115+
ss_layout {
116+
sound_system: SOUND_SYSTEM_A_0_2_0
117+
reserved: 0
118+
}
119+
}
120+
loudness {
121+
info_type_bit_masks: []
122+
}
123+
}
124+
layouts {
125+
loudness_layout {
126+
layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION
127+
ss_layout {
128+
sound_system: SOUND_SYSTEM_12_0_1_0
129+
reserved: 0
130+
}
131+
}
132+
loudness {
133+
info_type_bit_masks: []
134+
}
135+
}
136+
}
137+
138+
}
139+
140+
arbitrary_obu_metadata {
141+
# A step parameter block in front of the listener.
142+
insertion_hook: INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK
143+
insertion_tick: 0
144+
obu_type: OBU_IA_PARAMETER_BLOCK
145+
payload:
146+
# `parameter_id` (1)`.
147+
"\x01"
148+
# `animation_type` = `STEP`.
149+
"\x00"
150+
# Azimuth: 0, Elevation: 0, Distance: 127.
151+
"\x00\x00\x7f"
152+
}
153+
154+
arbitrary_obu_metadata {
155+
# An inter-linear parameter block in to the left of the listener.
156+
insertion_hook: INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK
157+
insertion_tick: 1024
158+
obu_type: OBU_IA_PARAMETER_BLOCK
159+
payload:
160+
# `parameter_id` (1)`.
161+
"\x01"
162+
# `animation_type` = `INTER_LINEAR`.
163+
"\x03"
164+
# Azimuth: +90, Elevation: 0, Distance: 127.
165+
"\x2d\x00\x7f"
166+
}
167+
168+
arbitrary_obu_metadata {
169+
# An inter-linear parameter block in to the rear of the listener.
170+
insertion_hook: INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK
171+
insertion_tick: 2048
172+
obu_type: OBU_IA_PARAMETER_BLOCK
173+
payload:
174+
# `parameter_id` (1)`.
175+
"\x01"
176+
# `animation_type` = `INTER_LINEAR`.
177+
"\x03"
178+
# Azimuth: +180, Elevation: 0, Distance: 127.
179+
"\x5a\x00\x7f"
180+
}
181+
182+
arbitrary_obu_metadata {
183+
# An inter-linear parameter block in to the right of the listener.
184+
insertion_hook: INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK
185+
insertion_tick: 3072
186+
obu_type: OBU_IA_PARAMETER_BLOCK
187+
payload:
188+
# `parameter_id` (1)`.
189+
"\x01"
190+
# `animation_type` = `INTER_LINEAR`.
191+
"\x03"
192+
# Azimuth: -90, Elevation: 0, Distance: 127.
193+
"\xd3\x00\x7f"
194+
}
195+
196+
# Note that remaining frames exercise "parameter block gaps". They default based
197+
# on the parameter definition. In this case, this is to the front of the
198+
# listener.
199+
200+
audio_frame_metadata {
201+
samples_to_trim_at_end_includes_padding: false
202+
samples_to_trim_at_start_includes_codec_delay: false
203+
wav_filename: "dialog_clip_stereo.wav"
204+
audio_element_id: 300
205+
channel_metadatas: [
206+
{ channel_id: 0 channel_label: CHANNEL_LABEL_OBJECT_CHANNEL0 }
207+
]
208+
}
209+
210+
temporal_delimiter_metadata {
211+
enable_temporal_delimiters: false
212+
}

tests/test_000801.iamf

471 KB
Binary file not shown.

0 commit comments

Comments
 (0)