@@ -15,7 +15,7 @@ package libiamf_proto;
1515import "obu_header.proto" ;
1616
1717// Valid proto enums start at index 1, which are different from the
18- // corresponding enums in C, e.g. kLpcmBigEndian = 0.
18+ // corresponding enums in C++ , e.g. kLpcmBigEndian = 0.
1919enum LpcmFormatFlags {
2020 LPCM_INVALID = 0 ;
2121 LPCM_BIG_ENDIAN = 1 ;
@@ -39,19 +39,21 @@ enum OpusApplicationFlag {
3939message OpusEncoderMetadata {
4040 optional int32 target_bitrate_per_channel = 1 ;
4141 optional OpusApplicationFlag application = 2 ;
42+ optional bool use_float_api = 3 [default = true ];
43+ optional float coupling_rate_adjustment = 4 [default = 1.0 ];
4244}
4345
4446message OpusDecoderConfig {
4547 optional uint32 version = 1 ;
46- optional uint32 output_channel_count = 2 ;
48+ optional uint32 output_channel_count = 2 [ default = 2 ] ;
4749 optional uint32 pre_skip = 3 ;
4850 optional uint32 input_sample_rate = 4 ;
49- optional int32 output_gain = 5 ;
50- optional uint32 mapping_family = 6 ;
51+ optional int32 output_gain = 5 [ default = 0 ] ;
52+ optional uint32 mapping_family = 6 [ default = 0 ] ;
5153 optional OpusEncoderMetadata opus_encoder_metadata = 7 ;
5254}
5355
54- enum AacSampleFrequencyIndex {
56+ enum SampleFrequencyIndex {
5557 AAC_SAMPLE_FREQUENCY_INDEX_INVALID = 0 ;
5658 AAC_SAMPLE_FREQUENCY_INDEX_96000 = 1 ;
5759 AAC_SAMPLE_FREQUENCY_INDEX_88200 = 2 ;
@@ -80,23 +82,23 @@ message AacEncoderMetadata {
8082
8183message AacDecoderSpecificInfo {
8284 optional uint32 decoder_specific_info_descriptor_tag = 5 [default = 0x05 ];
83- optional uint32 audio_object_type = 1 ;
84- optional AacSampleFrequencyIndex sample_frequency_index = 2 ;
85+ optional uint32 audio_object_type = 1 [ default = 2 ] ;
86+ optional SampleFrequencyIndex sample_frequency_index = 2 ;
8587 optional uint32 sampling_frequency = 3 ;
86- optional uint32 channel_configuration = 4 ;
88+ optional uint32 channel_configuration = 4 [ default = 2 ] ;
8789}
8890
8991message AacGaSpecificConfig {
90- optional bool frame_length_flag = 1 ;
91- optional bool depends_on_core_coder = 2 ;
92- optional bool extension_flag = 3 ;
92+ optional bool frame_length_flag = 1 [ default = false ] ;
93+ optional bool depends_on_core_coder = 2 [ default = false ] ;
94+ optional bool extension_flag = 3 [ default = false ] ;
9395}
9496
9597message AacDecoderConfig {
9698 optional uint32 decoder_config_descriptor_tag = 11 [default = 0x04 ];
97- optional uint32 object_type_indication = 1 ;
98- optional uint32 stream_type = 2 ;
99- optional bool upstream = 3 ;
99+ optional uint32 object_type_indication = 1 [ default = 0x40 ] ;
100+ optional uint32 stream_type = 2 [ default = 5 ] ;
101+ optional bool upstream = 3 [ default = false ] ;
100102 optional bool reserved = 4 ;
101103 optional uint32 buffer_size_db = 5 ;
102104 optional uint32 max_bitrate = 6 ;
@@ -126,13 +128,15 @@ message FlacMetaBlockHeader {
126128message FlacMetaBlockStreamInfo {
127129 optional uint32 minimum_block_size = 1 ;
128130 optional uint32 maximum_block_size = 2 ;
129- optional uint32 minimum_frame_size = 3 ;
130- optional uint32 maximum_frame_size = 4 ;
131+ optional uint32 minimum_frame_size = 3 [ default = 0 ] ;
132+ optional uint32 maximum_frame_size = 4 [ default = 0 ] ;
131133 optional uint32 sample_rate = 5 ;
132- optional uint32 number_of_channels = 6 ;
134+ optional uint32 number_of_channels = 6 [ default = 1 ] ;
133135 optional uint32 bits_per_sample = 7 ;
134136 optional uint64 total_samples_in_stream = 8 ;
135- optional bytes md5_signature = 9 ;
137+ optional bytes md5_signature = 9
138+ [default =
139+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ];
136140}
137141
138142// Settings to configure `libflac`.
@@ -153,10 +157,19 @@ message FlacDecoderConfig {
153157 optional FlacEncoderMetadata flac_encoder_metadata = 4 ;
154158}
155159
160+ enum CodecId {
161+ CODEC_ID_INVALID = 0 ;
162+ CODEC_ID_OPUS = 0x4f707573 ; // "Opus"
163+ CODEC_ID_LPCM = 0x6970636d ; // "ipcm"
164+ CODEC_ID_AAC_LC = 0x6d703461 ; // "mp4a"
165+ CODEC_ID_FLAC = 0x664c6143 ; // "fLaC"
166+ }
167+
156168message CodecConfig {
157- optional uint32 codec_id = 1 ;
169+ optional uint32 deprecated_codec_id = 1 [deprecated = true ];
170+ optional CodecId codec_id = 10 ;
158171 optional uint32 num_samples_per_frame = 2 ;
159- reserved 3 ;
172+ reserved 3 , 4 ;
160173 optional int32 audio_roll_distance = 9 ;
161174 oneof decoder_config {
162175 LpcmDecoderConfig decoder_config_lpcm = 5 ;
0 commit comments