| // 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. |
| |
| syntax = "proto2"; |
| |
| package iamf_tools_cli_proto; |
| |
| import "iamf/cli/proto/obu_header.proto"; |
| |
| enum ArbitraryObuType { |
| OBU_IA_INVALID = 0; |
| OBU_IA_CODEC_CONFIG = 1; |
| OBU_IA_AUDIO_ELEMENT = 2; |
| OBU_IA_MIX_PRESENTATION = 3; |
| OBU_IA_PARAMETER_BLOCK = 4; |
| OBU_IA_TEMPORAL_DELIMITER = 5; |
| OBU_IA_AUDIO_FRAME = 6; |
| OBU_IA_AUDIO_FRAME_ID_0 = 7; |
| OBU_IA_AUDIO_FRAME_ID_1 = 8; |
| OBU_IA_AUDIO_FRAME_ID_2 = 9; |
| OBU_IA_AUDIO_FRAME_ID_3 = 10; |
| OBU_IA_AUDIO_FRAME_ID_4 = 11; |
| OBU_IA_AUDIO_FRAME_ID_5 = 12; |
| OBU_IA_AUDIO_FRAME_ID_6 = 13; |
| OBU_IA_AUDIO_FRAME_ID_7 = 14; |
| OBU_IA_AUDIO_FRAME_ID_8 = 15; |
| OBU_IA_AUDIO_FRAME_ID_9 = 16; |
| OBU_IA_AUDIO_FRAME_ID_10 = 17; |
| OBU_IA_AUDIO_FRAME_ID_11 = 18; |
| OBU_IA_AUDIO_FRAME_ID_12 = 19; |
| OBU_IA_AUDIO_FRAME_ID_13 = 20; |
| OBU_IA_AUDIO_FRAME_ID_14 = 21; |
| OBU_IA_AUDIO_FRAME_ID_15 = 22; |
| OBU_IA_AUDIO_FRAME_ID_16 = 23; |
| OBU_IA_AUDIO_FRAME_ID_17 = 24; |
| OBU_IA_RESERVED_24 = 25; |
| OBU_IA_RESERVED_25 = 26; |
| OBU_IA_RESERVED_26 = 27; |
| OBU_IA_RESERVED_27 = 28; |
| OBU_IA_RESERVED_28 = 29; |
| OBU_IA_RESERVED_29 = 30; |
| OBU_IA_RESERVED_30 = 31; |
| OBU_IA_SEQUENCE_HEADER = 32; |
| } |
| |
| enum InsertionHook { |
| INSERTION_HOOK_INVALID = 0; |
| INSERTION_HOOK_BEFORE_DESCRIPTORS = 1; |
| INSERTION_HOOK_AFTER_DESCRIPTORS = 2; |
| INSERTION_HOOK_AFTER_IA_SEQUENCE_HEADER = 3; |
| INSERTION_HOOK_AFTER_CODEC_CONFIGS = 4; |
| INSERTION_HOOK_AFTER_AUDIO_ELEMENTS = 5; |
| INSERTION_HOOK_AFTER_MIX_PRESENTATIONS = 6; |
| INSERTION_HOOK_BEFORE_PARAMETER_BLOCKS_AT_TICK = 7; |
| INSERTION_HOOK_AFTER_PARAMETER_BLOCKS_AT_TICK = 8; |
| INSERTION_HOOK_AFTER_AUDIO_FRAMES_AT_TICK = 9; |
| } |
| |
| message ArbitraryObuMetadata { |
| optional InsertionHook insertion_hook = 1; |
| optional ArbitraryObuType obu_type = 4; |
| optional ObuHeaderMetadata obu_header = 2; |
| optional bytes payload = 3; |
| // Used to force the bitstream to be invalid when this OBU is inserted. |
| optional bool invalidates_bitstream = 5; |
| // Used to control the temporal unit when using the *_AT_TICK insertion hooks. |
| // Ignored otherwise. |
| optional int64 insertion_tick = 6; |
| } |