• 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
11syntax = "proto2";
12
13package iamf_tools_cli_proto;
14
15import "iamf/cli/proto/obu_header.proto";
16
17enum ArbitraryObuType {
18  OBU_IA_INVALID = 0;
19  OBU_IA_CODEC_CONFIG = 1;
20  OBU_IA_AUDIO_ELEMENT = 2;
21  OBU_IA_MIX_PRESENTATION = 3;
22  OBU_IA_PARAMETER_BLOCK = 4;
23  OBU_IA_TEMPORAL_DELIMITER = 5;
24  OBU_IA_AUDIO_FRAME = 6;
25  OBU_IA_AUDIO_FRAME_ID_0 = 7;
26  OBU_IA_AUDIO_FRAME_ID_1 = 8;
27  OBU_IA_AUDIO_FRAME_ID_2 = 9;
28  OBU_IA_AUDIO_FRAME_ID_3 = 10;
29  OBU_IA_AUDIO_FRAME_ID_4 = 11;
30  OBU_IA_AUDIO_FRAME_ID_5 = 12;
31  OBU_IA_AUDIO_FRAME_ID_6 = 13;
32  OBU_IA_AUDIO_FRAME_ID_7 = 14;
33  OBU_IA_AUDIO_FRAME_ID_8 = 15;
34  OBU_IA_AUDIO_FRAME_ID_9 = 16;
35  OBU_IA_AUDIO_FRAME_ID_10 = 17;
36  OBU_IA_AUDIO_FRAME_ID_11 = 18;
37  OBU_IA_AUDIO_FRAME_ID_12 = 19;
38  OBU_IA_AUDIO_FRAME_ID_13 = 20;
39  OBU_IA_AUDIO_FRAME_ID_14 = 21;
40  OBU_IA_AUDIO_FRAME_ID_15 = 22;
41  OBU_IA_AUDIO_FRAME_ID_16 = 23;
42  OBU_IA_AUDIO_FRAME_ID_17 = 24;
43  OBU_IA_RESERVED_24 = 25;
44  OBU_IA_RESERVED_25 = 26;
45  OBU_IA_RESERVED_26 = 27;
46  OBU_IA_RESERVED_27 = 28;
47  OBU_IA_RESERVED_28 = 29;
48  OBU_IA_RESERVED_29 = 30;
49  OBU_IA_RESERVED_30 = 31;
50  OBU_IA_SEQUENCE_HEADER = 32;
51}
52
53enum InsertionHook {
54  INSERTION_HOOK_INVALID = 0;
55  INSERTION_HOOK_BEFORE_DESCRIPTORS = 1;
56  INSERTION_HOOK_AFTER_DESCRIPTORS = 2;
57  INSERTION_HOOK_AFTER_IA_SEQUENCE_HEADER = 3;
58  INSERTION_HOOK_AFTER_CODEC_CONFIGS = 4;
59  INSERTION_HOOK_AFTER_AUDIO_ELEMENTS = 5;
60  INSERTION_HOOK_AFTER_MIX_PRESENTATIONS = 6;
61  INSERTION_HOOK_BEFORE_PARAMETER_BLOCKS_AT_TICK = 7;
62  INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK = 8;
63  INSERTION_HOOK_AFTER_AUDIO_FRAMES_AT_TICK = 9;
64}
65
66message ArbitraryObuMetadata {
67  optional InsertionHook insertion_hook = 1;
68  optional ArbitraryObuType obu_type = 4;
69  optional ObuHeaderMetadata obu_header = 2;
70  optional bytes payload = 3;
71  // Used to force the bitstream to be invalid when this OBU is inserted.
72  optional bool invalidates_bitstream = 5;
73  // Used to control the temporal unit when using the *_AT_TICK insertion hooks.
74  // Ignored otherwise.
75  optional int64 insertion_tick = 6;
76}
77