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 with one mix gain parameter using default value. A " 17 "different mix gain parameter uses `param_definition_mode == 0` with " 18 "non-constant subblock duration." 19 file_name_prefix: "test_000088" 20 is_valid: true 21 is_valid_to_decode: true 22 validate_user_loudness: true 23 mp4_fixed_timestamp: "2023-07-13 00:00:00" 24 test_repository_tags: [ 25 "github/aomediacodec/libiamf/main", 26 "github/aomediacodec/libiamf/v1.0.0-errata" 27 ] 28 primary_tested_spec_sections: [ 29 "3.6.1/parameter_id", 30 "3.6.1/parameter_rate", 31 "3.6.1/param_definition_mode", 32 "3.6.1/constant_subblock_duration == 0", 33 "3.6.1/num_subblocks", 34 "3.6.1/subblock_duration", 35 "3.7.4/Element Mix Config Syntax and Semantics", 36 "3.7.5/Output Mix Config Syntax and Semantics", 37 "3.8.1/animation_type == STEP", 38 "3.8.1/animation_type == LINEAR", 39 "3.8.1/animation_type == BEZIER", 40 "5.1/IA Sequence", 41 "5.1.2/IA Data OBUs", 42 "7/IAMF Processing", 43 "7.4/animation_type == STEP", 44 "7.5.1/Loudness Normalization", 45 "7.5.2/Limiter" 46 ] 47 base_test: "test_000071" 48 partition_mix_gain_parameter_blocks: false 49} 50 51encoder_control_metadata { 52 add_build_information_tag: false 53} 54 55ia_sequence_header_metadata { 56 primary_profile: PROFILE_VERSION_SIMPLE 57 additional_profile: PROFILE_VERSION_SIMPLE 58} 59 60codec_config_metadata { 61 codec_config_id: 200 62 codec_config { 63 codec_id: CODEC_ID_LPCM 64 num_samples_per_frame: 1024 65 audio_roll_distance: 0 66 decoder_config_lpcm { 67 sample_format_flags: LPCM_LITTLE_ENDIAN 68 sample_size: 16 69 sample_rate: 16000 70 } 71 } 72} 73 74audio_element_metadata { 75 audio_element_id: 300 76 audio_element_type: AUDIO_ELEMENT_CHANNEL_BASED 77 reserved: 0 78 codec_config_id: 200 79 num_substreams: 1 80 audio_substream_ids: [0] 81 num_parameters: 0 82 scalable_channel_layout_config { 83 num_layers: 1 84 reserved: 0 85 channel_audio_layer_configs: [ 86 { 87 loudspeaker_layout: LOUDSPEAKER_LAYOUT_STEREO 88 output_gain_is_present_flag: 0 89 recon_gain_is_present_flag: 0 90 reserved_a: 0 91 substream_count: 1 92 coupled_substream_count: 1 93 } 94 ] 95 } 96} 97 98mix_presentation_metadata { 99 mix_presentation_id: 42 100 count_label: 1 101 annotations_language: ["en-us"] 102 localized_presentation_annotations: ["test_mix_pres"] 103 num_sub_mixes: 1 104 sub_mixes { 105 num_audio_elements: 1 106 audio_elements { 107 audio_element_id: 300 108 localized_element_annotations: ["test_sub_mix_0_audio_element_0"] 109 rendering_config { 110 headphones_rendering_mode: HEADPHONES_RENDERING_MODE_STEREO 111 } 112 element_mix_gain { 113 param_definition { 114 parameter_id: 999 # Non-existent; default will be used 115 parameter_rate: 16000 116 param_definition_mode: 1 117 reserved: 0 118 } 119 default_mix_gain: 0 120 } 121 } 122 output_mix_gain { 123 param_definition { 124 parameter_id: 101 125 parameter_rate: 16000 126 param_definition_mode: 0 127 reserved: 0 128 duration: 1024 129 constant_subblock_duration: 0 130 num_subblocks: 3 131 subblock_durations: [256, 512, 256] 132 } 133 default_mix_gain: 0 134 } 135 num_layouts: 1 136 layouts { 137 loudness_layout { 138 layout_type: LAYOUT_TYPE_LOUDSPEAKERS_SS_CONVENTION 139 ss_layout { 140 sound_system: SOUND_SYSTEM_A_0_2_0 141 reserved: 0 142 } 143 } 144 loudness { 145 info_type_bit_masks: [] 146 integrated_loudness: -5367 147 digital_peak: -5359 148 } 149 } 150 } 151} 152 153audio_frame_metadata { 154 wav_filename: "sine_1000_16khz_512ms.wav" 155 samples_to_trim_at_end: 0 156 samples_to_trim_at_start: 0 157 audio_element_id: 300 158 channel_metadatas: [ 159 { channel_id: 0 channel_label: CHANNEL_LABEL_L_2 }, 160 { channel_id: 1 channel_label: CHANNEL_LABEL_R_2 } 161 ] 162} 163 164parameter_block_metadata { 165 parameter_id: 101 166 start_timestamp: 0 167 subblocks: [ 168 { 169 # `param_definition_mode` implies a duration of 256. 170 mix_gain_parameter_data { 171 animation_type: ANIMATE_STEP 172 param_data { 173 step { 174 start_point_value: 10 175 } 176 } 177 } 178 }, 179 # `param_definition_mode` implies a duration of 512. 180 { 181 mix_gain_parameter_data { 182 animation_type: ANIMATE_STEP 183 param_data { 184 step { 185 start_point_value: 20 186 } 187 } 188 } 189 }, 190 # `param_definition_mode` implies a duration of 256. 191 { 192 mix_gain_parameter_data { 193 animation_type: ANIMATE_STEP 194 param_data { 195 step { 196 start_point_value: 10 197 } 198 } 199 } 200 } 201 ] 202} 203 204parameter_block_metadata { 205 parameter_id: 101 206 start_timestamp: 1024 207 subblocks: [ 208 { 209 # `param_definition_mode` implies a duration of 256. 210 mix_gain_parameter_data { 211 animation_type: ANIMATE_STEP 212 param_data { 213 step { 214 start_point_value: 25 215 } 216 } 217 } 218 }, 219 # `param_definition_mode` implies a duration of 512. 220 { 221 mix_gain_parameter_data { 222 animation_type: ANIMATE_STEP 223 param_data { 224 step { 225 start_point_value: 30 226 } 227 } 228 } 229 }, 230 # `param_definition_mode` implies a duration of 256. 231 { 232 mix_gain_parameter_data { 233 animation_type: ANIMATE_STEP 234 param_data { 235 step { 236 start_point_value: 35 237 } 238 } 239 } 240 } 241 ] 242} 243 244parameter_block_metadata { 245 parameter_id: 101 246 start_timestamp: 2048 247 subblocks: [ 248 { 249 # `param_definition_mode` implies a duration of 256. 250 mix_gain_parameter_data { 251 animation_type: ANIMATE_STEP 252 param_data { 253 step { 254 start_point_value: 25 255 } 256 } 257 } 258 }, 259 # `param_definition_mode` implies a duration of 512. 260 { 261 mix_gain_parameter_data { 262 animation_type: ANIMATE_STEP 263 param_data { 264 step { 265 start_point_value: 30 266 } 267 } 268 } 269 }, 270 # `param_definition_mode` implies a duration of 256. 271 { 272 mix_gain_parameter_data { 273 animation_type: ANIMATE_STEP 274 param_data { 275 step { 276 start_point_value: 35 277 } 278 } 279 } 280 } 281 ] 282} 283 284parameter_block_metadata { 285 parameter_id: 101 286 start_timestamp: 3072 287 subblocks: [ 288 { 289 # `param_definition_mode` implies a duration of 256. 290 mix_gain_parameter_data { 291 animation_type: ANIMATE_STEP 292 param_data { 293 step { 294 start_point_value: 25 295 } 296 } 297 } 298 }, 299 # `param_definition_mode` implies a duration of 512. 300 { 301 mix_gain_parameter_data { 302 animation_type: ANIMATE_LINEAR 303 param_data { 304 linear: { 305 start_point_value: 30 306 end_point_value: 35 307 } 308 } 309 } 310 }, 311 # `param_definition_mode` implies a duration of 256. 312 { 313 mix_gain_parameter_data { 314 animation_type: ANIMATE_STEP 315 param_data { 316 step { 317 start_point_value: 35 318 } 319 } 320 } 321 } 322 ] 323} 324 325parameter_block_metadata { 326 parameter_id: 101 327 start_timestamp: 4096 328 subblocks: [ 329 { 330 # `param_definition_mode` implies a duration of 256. 331 mix_gain_parameter_data { 332 animation_type: ANIMATE_BEZIER 333 param_data { 334 bezier: { 335 start_point_value: 25 336 end_point_value: 35 337 control_point_relative_time: 20 338 control_point_value: 34 339 } 340 } 341 } 342 }, 343 # `param_definition_mode` implies a duration of 512. 344 { 345 mix_gain_parameter_data { 346 animation_type: ANIMATE_STEP 347 param_data { 348 step { 349 start_point_value: 30 350 } 351 } 352 } 353 }, 354 # `param_definition_mode` implies a duration of 256. 355 { 356 mix_gain_parameter_data { 357 animation_type: ANIMATE_STEP 358 param_data { 359 step { 360 start_point_value: 35 361 } 362 } 363 } 364 } 365 ] 366} 367 368parameter_block_metadata { 369 parameter_id: 101 370 start_timestamp: 5120 371 subblocks: [ 372 { 373 # `param_definition_mode` implies a duration of 256. 374 mix_gain_parameter_data { 375 animation_type: ANIMATE_STEP 376 param_data { 377 step { 378 start_point_value: 25 379 } 380 } 381 } 382 }, 383 # `param_definition_mode` implies a duration of 512. 384 { 385 mix_gain_parameter_data { 386 animation_type: ANIMATE_STEP 387 param_data { 388 step { 389 start_point_value: 30 390 } 391 } 392 } 393 }, 394 # `param_definition_mode` implies a duration of 256. 395 { 396 mix_gain_parameter_data { 397 animation_type: ANIMATE_STEP 398 param_data { 399 step { 400 start_point_value: 35 401 } 402 } 403 } 404 } 405 ] 406} 407 408parameter_block_metadata { 409 parameter_id: 101 410 start_timestamp: 6144 411 subblocks: [ 412 { 413 # `param_definition_mode` implies a duration of 256. 414 mix_gain_parameter_data { 415 animation_type: ANIMATE_STEP 416 param_data { 417 step { 418 start_point_value: 25 419 } 420 } 421 } 422 }, 423 # `param_definition_mode` implies a duration of 512. 424 { 425 mix_gain_parameter_data { 426 animation_type: ANIMATE_STEP 427 param_data { 428 step { 429 start_point_value: 30 430 } 431 } 432 } 433 }, 434 # `param_definition_mode` implies a duration of 256. 435 { 436 mix_gain_parameter_data { 437 animation_type: ANIMATE_STEP 438 param_data { 439 step { 440 start_point_value: 35 441 } 442 } 443 } 444 } 445 ] 446} 447 448parameter_block_metadata { 449 parameter_id: 101 450 start_timestamp: 7168 451 subblocks: [ 452 { 453 # `param_definition_mode` implies a duration of 256. 454 mix_gain_parameter_data { 455 animation_type: ANIMATE_STEP 456 param_data { 457 step { 458 start_point_value: 25 459 } 460 } 461 } 462 }, 463 # `param_definition_mode` implies a duration of 512. 464 { 465 mix_gain_parameter_data { 466 animation_type: ANIMATE_STEP 467 param_data { 468 step { 469 start_point_value: 30 470 } 471 } 472 } 473 }, 474 # `param_definition_mode` implies a duration of 256. 475 { 476 mix_gain_parameter_data { 477 animation_type: ANIMATE_STEP 478 param_data { 479 step { 480 start_point_value: 35 481 } 482 } 483 } 484 } 485 ] 486} 487 488temporal_delimiter_metadata { 489 enable_temporal_delimiters: false 490} 491