Skip to content

Commit

Permalink
Add a variety of new tests including additional edge cases.
Browse files Browse the repository at this point in the history
  - As always some of these have `is_valid = false`.
  - `test_000013`: Uses non-required trimmed samples.
  - `test_000097`: Uses a mono audio element and 32 bit=depth LPCM.
  - `test_000098`: Uses two layers and 32 bit-depth LPCM
  - `test_000116`: Places reserved OBUs at various spots within the bitstream.
  - `test_000117`: Uses `obu_exension_header`.
  - `test_000118`: Has a mix presentation which is valid in the "additional" profile, but not the "primary" profile.
  - `test_000124`: Has two sub-mixes.
  - `test_000125`: Uses a reserved `headphones_rendering_mode`.
  - `test_000126`: Has a reserved loudness layout.
  - `test_000127`: Has a mix presentation with too many audio elements for simple profile.
  - `test_000128`: Has a mix presentation with too many audio elements for base profile.
  - `test_000131`: Contains a loudness layout reserved in simple profile, but not in base-enhanced profile.
  - `test_000500`: Mixed-first order ambisonics using FLAC.
  - `test_000501`: Uses a single reserved OBU.
  - `test_000502`: Has 0 sub-mixes
  - `test_000503`: Uses the reserved fields in `info_type`.
  • Loading branch information
jwcullen authored and tdaede committed Jul 29, 2024
1 parent c34ba7f commit 8476892
Show file tree
Hide file tree
Showing 85 changed files with 3,213 additions and 0 deletions.
Binary file added tests/test_000013.iamf
Binary file not shown.
163 changes: 163 additions & 0 deletions tests/test_000013.textproto
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Copyright (c) 2023, Alliance for Open Media. All rights reserved
#
# This source code is subject to the terms of the BSD 3-Clause Clear License
# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear
# License was not distributed with this source code in the LICENSE file, you
# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the
# Alliance for Open Media Patent License 1.0 was not distributed with this
# source code in the PATENTS file, you can obtain it at
# www.aomedia.org/license/patent.

# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto
# proto-message: UserMetadata

test_vector_metadata {
human_readable_description:
"A stereo IAMF stream. Additional samples are trimmed from the start of "
"input wav file to make it shorter."
file_name_prefix: "test_000013"
is_valid: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
primary_tested_spec_sections: ["3.2/num_samples_to_trim_at_end"]
base_test: "test_000005"
}

ia_sequence_header_metadata {
primary_profile: PROFILE_VERSION_SIMPLE
additional_profile: PROFILE_VERSION_SIMPLE
}

codec_config_metadata {
codec_config_id: 200
codec_config {
codec_id: CODEC_ID_LPCM
num_samples_per_frame: 64
audio_roll_distance: 0
decoder_config_lpcm {
sample_format_flags: LPCM_LITTLE_ENDIAN
sample_size: 16
sample_rate: 16000
}
}
}

audio_element_metadata {
audio_element_id: 300
audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED
reserved: 0
codec_config_id: 200
num_substreams: 1
audio_substream_ids: [0]
num_parameters: 0
scalable_channel_layout_config {
num_layers: 1
reserved: 0
channel_audio_layer_configs: [
{
loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO
output_gain_is_present_flag: 0
recon_gain_is_present_flag: 0
reserved_a: 0
substream_count: 1
coupled_substream_count: 1
}
]
}
}

mix_presentation_metadata {
mix_presentation_id: 42
count_label: 1
language_labels: ["en-us"]
mix_presentation_annotations_array: [
{
mix_presentation_friendly_label: "test_mix_pres"
}
]
num_sub_mixes: 1
sub_mixes {
num_audio_elements: 1
audio_elements {
audio_element_id: 300
mix_presentation_element_annotations_array: [
{
audio_element_friendly_label: "test_sub_mix_0_audio_element_0"
}
]
rendering_config {
headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO
}
element_mix_config {
mix_gain {
param_definition {
parameter_id: 100
parameter_rate: 16000
param_definition_mode: 1
reserved: 0
}
default_mix_gain: 0
}
}
}
output_mix_config {
output_mix_gain {
param_definition {
parameter_id: 100
parameter_rate: 16000
param_definition_mode: 1
reserved: 0
}
default_mix_gain: 0
}
}
num_layouts: 1
layouts {
loudness_layout {
layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION
ss_layout {
sound_system: SOUND_SYSTEM_A_0_2_0
reserved: 0
}
}
loudness {
info_type_bit_masks: []
integrated_loudness: -13734
digital_peak: -12879
}
}
}
}

audio_frame_metadata {
wav_filename: "sawtooth_100_stereo.wav"
samples_to_trim_at_end: 0
samples_to_trim_at_start: 3
audio_element_id: 300
channel_ids: [0, 1]
channel_labels: ["L2", "R2"]
}

parameter_block_metadata {
parameter_id: 100
start_timestamp: 0
duration: 8000
num_subblocks: 1
constant_subblock_duration: 8000
subblocks: [
{
mix_gain_parameter_data {
animation_type: ANIMATE_STEP
param_data {
step {
start_point_value: 0
}
}
}
}
]
}

temporal_delimiter_metadata {
enable_temporal_delimiters: false
}
Binary file added tests/test_000013_f.mp4
Binary file not shown.
Binary file not shown.
Binary file added tests/test_000013_s.mp4
Binary file not shown.
Binary file added tests/test_000097.iamf
Binary file not shown.
159 changes: 159 additions & 0 deletions tests/test_000097.textproto
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# Copyright (c) 2023, Alliance for Open Media. All rights reserved
#
# This source code is subject to the terms of the BSD 3-Clause Clear License
# and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear
# License was not distributed with this source code in the LICENSE file, you
# can obtain it at www.aomedia.org/license/software-license/bsd-3-c-c. If the
# Alliance for Open Media Patent License 1.0 was not distributed with this
# source code in the PATENTS file, you can obtain it at
# www.aomedia.org/license/patent.

# proto-file: third_party/iamf_tools/iamf/cli/proto/user_metadata.proto
# proto-message: UserMetadata

test_vector_metadata {
human_readable_description: "A mono IAMF stream with a bit-depth of 32."
file_name_prefix: "test_000097"
is_valid: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
primary_tested_spec_sections: [
"3.6.2/loudspeaker_layout == Mono",
"3.9/Audio Frame OBU Syntax and Semantics",
"3.11.4/sample_size"
]
base_test: "test_000031"
}

ia_sequence_header_metadata {
primary_profile: PROFILE_VERSION_SIMPLE
additional_profile: PROFILE_VERSION_SIMPLE
}

codec_config_metadata {
codec_config_id: 200
codec_config {
codec_id: CODEC_ID_LPCM
num_samples_per_frame: 64
audio_roll_distance: 0
decoder_config_lpcm {
sample_format_flags: LPCM_LITTLE_ENDIAN
sample_size: 32
sample_rate: 16000
}
}
}

audio_element_metadata {
audio_element_id: 300
audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED
reserved: 0
codec_config_id: 200
num_substreams: 1
audio_substream_ids: [0]
num_parameters: 0
scalable_channel_layout_config {
num_layers: 1
reserved: 0
channel_audio_layer_configs: [
{
loudspeaker_layout: LOUDSPEAKER_LAYOUT_MONO
output_gain_is_present_flag: 0
recon_gain_is_present_flag: 0
reserved_a: 0
substream_count: 1
coupled_substream_count: 0
}
]
}
}

mix_presentation_metadata {
mix_presentation_id: 42
count_label: 1
language_labels: ["en-us"]
mix_presentation_annotations_array: [
{
mix_presentation_friendly_label: "test_mix_pres"
}
]
num_sub_mixes: 1
sub_mixes {
num_audio_elements: 1
audio_elements {
audio_element_id: 300
mix_presentation_element_annotations_array: [
{
audio_element_friendly_label: "test_sub_mix_0_audio_element_0"
}
]
rendering_config {
headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO
}
element_mix_config {
mix_gain {
param_definition {
parameter_id: 998 # Non-existent; default will be used
parameter_rate: 16000
param_definition_mode: 1
reserved: 0
}
default_mix_gain: 0
}
}
}
output_mix_config {
output_mix_gain {
param_definition {
parameter_id: 998 # Non-existent; default will be used
parameter_rate: 16000
param_definition_mode: 1
reserved: 0
}
default_mix_gain: 0
}
}
num_layouts: 2
layouts {
loudness_layout {
layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION
ss_layout {
sound_system: SOUND_SYSTEM_12_0_1_0 # Mono
reserved: 0
}
}
loudness {
info_type_bit_masks: []
integrated_loudness: -5892
digital_peak: -5120
}
}
layouts {
loudness_layout {
layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION
ss_layout {
sound_system: SOUND_SYSTEM_A_0_2_0
reserved: 0
}
}
loudness {
info_type_bit_masks: []
integrated_loudness: -5892
digital_peak: -5890
}
}
}
}

audio_frame_metadata {
wav_filename: "sine_1000_16khz_512ms_s32le.wav"
samples_to_trim_at_end: 0
samples_to_trim_at_start: 0
audio_element_id: 300
channel_ids: [0]
channel_labels: ["M"]
}

temporal_delimiter_metadata {
enable_temporal_delimiters: false
}
Binary file added tests/test_000097_f.mp4
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added tests/test_000097_s.mp4
Binary file not shown.
Binary file added tests/test_000098.iamf
Binary file not shown.
Loading

0 comments on commit 8476892

Please sign in to comment.