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