| # Copyright (c) 2024, 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: iamf/cli/proto/user_metadata.proto |
| # proto-message: UserMetadata |
| |
| test_vector_metadata { |
| human_readable_description: |
| "An invalid stereo stream. The first mix uses a single stereo audio " |
| "element encoded with LPCM. The second mix uses a single stereo audio " |
| "element encoded with an imaginary `codec_id`. For convenience, the " |
| "imaginary `codec_id` uses the same syntax as LPCM." |
| file_name_prefix: "test_000119" |
| # The encoder cannot accurately encode a `coded_id` which is not yet defined. |
| is_valid: false |
| # A compliant decoder can decode the mix with `mix_presentation_id` 42. |
| is_valid_to_decode: true |
| partition_mix_gain_parameter_blocks: false |
| validate_user_loudness: true |
| mp4_fixed_timestamp: "2024-07-17 00:00:00" |
| test_repository_tags: [ |
| "github/aomediacodec/libiamf/main", |
| "github/aomediacodec/libiamf/v1.0.0-errata" |
| ] |
| primary_tested_spec_sections: [ |
| "3.5/codec_id", |
| "4.1/Simple Profile" |
| ] |
| base_test: "test_000002" |
| } |
| |
| encoder_control_metadata { |
| add_build_information_tag: false |
| } |
| |
| 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: 8 |
| audio_roll_distance: 0 |
| decoder_config_lpcm { |
| sample_format_flags: LPCM_LITTLE_ENDIAN |
| sample_size: 16 |
| sample_rate: 48000 |
| } |
| } |
| } |
| |
| 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 |
| annotations_language: ["en-us"] |
| localized_presentation_annotations: ["test_mix_pres"] |
| num_sub_mixes: 1 |
| sub_mixes { |
| num_audio_elements: 1 |
| audio_elements { |
| audio_element_id: 300 |
| localized_element_annotations: ["test_sub_mix_0_audio_element_0"] |
| rendering_config { |
| headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO |
| } |
| element_mix_gain { |
| param_definition { |
| parameter_id: 100 |
| parameter_rate: 48000 |
| param_definition_mode: 1 |
| reserved: 0 |
| } |
| default_mix_gain: 0 |
| } |
| } |
| output_mix_gain { |
| param_definition { |
| parameter_id: 100 |
| parameter_rate: 48000 |
| 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: -32768 |
| digital_peak: -32768 |
| } |
| } |
| } |
| } |
| |
| audio_frame_metadata { |
| wav_filename: "stereo_8_samples_48khz_s16le.wav" |
| samples_to_trim_at_end: 6 |
| samples_to_trim_at_start: 0 |
| audio_element_id: 300 |
| channel_metadatas: [ |
| { channel_id: 0 channel_label: CHANNEL_LABEL_L_2 }, |
| { channel_id: 1 channel_label: CHANNEL_LABEL_R_2 } |
| ] |
| } |
| |
| arbitrary_obu_metadata: [ |
| { |
| # Simple profile does not support `codec_id == fake`. |
| invalidates_bitstream: true |
| insertion_hook: INSERTION_HOOK_AFTER_CODEC_CONFIGS |
| obu_type: OBU_IA_CODEC_CONFIG |
| payload: |
| "\x22" # codec_config_id. |
| "fake" # codec_id. |
| "\x08" # num_samples_per_frame. |
| "\x00\x00" # audio_roll_distance. |
| # Begin an imaginary `decoder_config`. For convenience it has the same |
| # syntax as LPCM. |
| "\x01" # sample_format_flags. |
| "\x10" # sample_size. |
| "\x00\x00\xbb\x80" # sample_rate. |
| }, |
| { |
| insertion_hook: INSERTION_HOOK_AFTER_AUDIO_ELEMENTS |
| obu_type: OBU_IA_AUDIO_ELEMENT |
| payload: |
| "\x33" # audio_element_id. |
| "\x00" # audio_element_type (3), reserved (5). |
| "\x22" # codec_config_id. |
| "\x01" # num_substreams. |
| "\x01" # substream_id. |
| "\x00" # num_parameters. |
| "\x20" # num_layers (3), reserved (5) |
| "\x10" # loudspeaker_layout (4), output_gain_is_present_flag (1), recon_gain_is_present_flag (1), reserved (2). |
| "\x01" # substream_count. |
| "\x01" # coupled_substream_count. |
| }, |
| { |
| insertion_hook: INSERTION_HOOK_AFTER_MIX_PRESENTATIONS |
| obu_type: OBU_IA_MIX_PRESENTATION |
| payload: |
| "\x44" # mix_presentation_id. |
| "\x00" # count_label. |
| "\x01" # num_sub_mixes. |
| "\x01" # num_audio_elements. |
| "\x33" # audio_element_id. |
| "\x00" # headphones_rendering_mode (2), reserved (6). |
| "\x00" # rendering_config_size. |
| # Begin ElementMixGain. |
| "\x66" # parameter_id. |
| "\x80\xf7\x02" # parameter_rate (leb128). |
| "\x80" # param_definition_mode (1), reserved (7). |
| "\x00\00" # default_mix_gain. |
| # Begin OutputMixGain. |
| "\x66" # parameter_id. |
| "\x80\xf7\x02" # parameter_rate (leb128). |
| "\x80" # param_definition_mode (1), reserved (7). |
| "\x00\00" # default_mix_gain. |
| "\x01" # num_layouts. |
| "\x80" # layout_type (2), sound_system (4), reserved (2). |
| "\x00" # info_type. |
| "\x00\x00" # integrated_loudness. |
| "\x00\x00" # digital_peak. |
| }, |
| { |
| insertion_hook: INSERTION_HOOK_AFTER_AUDIO_FRAMES_AT_TICK |
| insertion_tick: 0 |
| obu_type: OBU_IA_AUDIO_FRAME_ID_1 |
| obu_header: { |
| num_samples_to_trim_at_end: 6 |
| } |
| # A short payload which which represents an audio frame encoding using an |
| # imaginary codec associated with the imaginary `codec_id`. |
| payload: "fakedata" |
| } |
| ] |
| |
| temporal_delimiter_metadata { |
| enable_temporal_delimiters: false |
| } |