# 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: iamf/cli/proto/user_metadata.proto # proto-message: UserMetadata test_vector_metadata { human_readable_description: "A 2-layer IAMF stream encoded using Opus, with Parameter Block OBUs " "defining non-default recon gains and `default_w == 0`." file_name_prefix: "test_000059" is_valid: true is_valid_to_decode: true validate_user_loudness: true mp4_fixed_timestamp: "2023-06-20 00:00:00" test_repository_tags: [ "github/aomediacodec/libiamf/main", "github/aomediacodec/libiamf/v1.0.0-errata" ] primary_tested_spec_sections: [ "3.6/default_w", "3.6.2/Scalable Channel Layout Config Syntax and Semantics", "3.8.3/Recon Gain Info Parameter Data Syntax and Semantics", "7/IAMF Processing", "7.2/recon_gain", "7.2.3/Recon Gain", "7.3.2/Rendering an Audio Element", "7.3.2.1/Rendering a Channel-Based Audio Element to Loudspeakers" ] base_test: "test_000056" output_wav_file_bit_depth_override: 16 } 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_OPUS num_samples_per_frame: 960 audio_roll_distance: -4 decoder_config_opus { version: 1 pre_skip: 312 input_sample_rate: 48000 opus_encoder_metadata { target_bitrate_per_channel: 48000 application: APPLICATION_AUDIO use_float_api: false } } } } audio_element_metadata { audio_element_id: 300 audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED reserved: 0 codec_config_id: 200 num_substreams: 4 audio_substream_ids: [0, 1, 2, 3] num_parameters: 2 audio_element_params { param_definition_type: PARAM_DEFINITION_TYPE_DEMIXING demixing_param: { param_definition { parameter_id: 998 # Non-existent; default will be used parameter_rate: 48000 param_definition_mode: 0 reserved: 0 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 } default_demixing_info_parameter_data: { dmixp_mode: DMIXP_MODE_2 } default_w: 0 } } audio_element_params { param_definition_type: PARAM_DEFINITION_TYPE_RECON_GAIN recon_gain_param { param_definition { parameter_id: 101 parameter_rate: 48000 param_definition_mode: 0 reserved: 0 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 } } } scalable_channel_layout_config { num_layers: 2 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 }, { loudspeaker_layout: LOUDSPEAKER_LAYOUT_5_1_CH output_gain_is_present_flag: 0 recon_gain_is_present_flag: 1 reserved_a: 0 substream_count: 3 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: 2 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: -5273 digital_peak: -2197 } } layouts { loudness_layout { layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION ss_layout { sound_system: SOUND_SYSTEM_B_0_5_0 reserved: 0 } } loudness { info_type_bit_masks: [] integrated_loudness: -5886 digital_peak: -2845 } } } } audio_frame_metadata { # Not using every channel in the input wav file. wav_filename: "audiolab-acoustic-guitar_2OA_470_ALLRAD_0.5s.wav" samples_to_trim_at_end: 648 samples_to_trim_at_start: 312 audio_element_id: 300 channel_metadatas: [ { channel_id: 0 channel_label: CHANNEL_LABEL_L_5 }, { channel_id: 1 channel_label: CHANNEL_LABEL_R_5 }, { channel_id: 2 channel_label: CHANNEL_LABEL_CENTRE }, { channel_id: 3 channel_label: CHANNEL_LABEL_LFE }, { channel_id: 4 channel_label: CHANNEL_LABEL_LS_5 }, { channel_id: 5 channel_label: CHANNEL_LABEL_RS_5 } ] } parameter_block_metadata { parameter_id: 100 start_timestamp: 0 duration: 24960 num_subblocks: 1 constant_subblock_duration: 24960 subblocks: [ { mix_gain_parameter_data { animation_type: ANIMATE_STEP param_data { step { start_point_value: 0 } } } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 0 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 960 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 1920 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 2880 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 3840 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 4800 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 5760 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 6720 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 7680 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 8640 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 9600 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 10560 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 11520 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 12480 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 13440 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 14400 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 15360 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 16320 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 17280 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 18240 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 19200 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 20160 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 21120 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 22080 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 23040 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } parameter_block_metadata { parameter_id: 101 start_timestamp: 24000 duration: 960 num_subblocks: 1 constant_subblock_duration: 960 subblocks: [ { recon_gain_info_parameter_data { recon_gains_for_layer {} # layer 1 recon_gains_for_layer { recon_gain { key: 0 value: 255 } recon_gain { key: 2 value: 255 } recon_gain { key: 3 value: 255 } recon_gain { key: 4 value: 255 } } # layer 2 } } ] } temporal_delimiter_metadata { enable_temporal_delimiters: false }