• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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