@@ -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,20 @@ 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 ];
4243}
4344
4445message OpusDecoderConfig {
4546 optional uint32 version = 1 ;
46- optional uint32 output_channel_count = 2 ;
47+ optional uint32 output_channel_count = 2 [ default = 2 ] ;
4748 optional uint32 pre_skip = 3 ;
4849 optional uint32 input_sample_rate = 4 ;
49- optional int32 output_gain = 5 ;
50- optional uint32 mapping_family = 6 ;
50+ optional int32 output_gain = 5 [ default = 0 ] ;
51+ optional uint32 mapping_family = 6 [ default = 0 ] ;
5152 optional OpusEncoderMetadata opus_encoder_metadata = 7 ;
5253}
5354
54- enum AacSampleFrequencyIndex {
55+ enum SampleFrequencyIndex {
5556 AAC_SAMPLE_FREQUENCY_INDEX_INVALID = 0 ;
5657 AAC_SAMPLE_FREQUENCY_INDEX_96000 = 1 ;
5758 AAC_SAMPLE_FREQUENCY_INDEX_88200 = 2 ;
@@ -80,23 +81,23 @@ message AacEncoderMetadata {
8081
8182message AacDecoderSpecificInfo {
8283 optional uint32 decoder_specific_info_descriptor_tag = 5 [default = 0x05 ];
83- optional uint32 audio_object_type = 1 ;
84- optional AacSampleFrequencyIndex sample_frequency_index = 2 ;
84+ optional uint32 audio_object_type = 1 [ default = 2 ] ;
85+ optional SampleFrequencyIndex sample_frequency_index = 2 ;
8586 optional uint32 sampling_frequency = 3 ;
86- optional uint32 channel_configuration = 4 ;
87+ optional uint32 channel_configuration = 4 [ default = 2 ] ;
8788}
8889
8990message AacGaSpecificConfig {
90- optional bool frame_length_flag = 1 ;
91- optional bool depends_on_core_coder = 2 ;
92- optional bool extension_flag = 3 ;
91+ optional bool frame_length_flag = 1 [ default = false ] ;
92+ optional bool depends_on_core_coder = 2 [ default = false ] ;
93+ optional bool extension_flag = 3 [ default = false ] ;
9394}
9495
9596message AacDecoderConfig {
9697 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 ;
98+ optional uint32 object_type_indication = 1 [ default = 0x40 ] ;
99+ optional uint32 stream_type = 2 [ default = 5 ] ;
100+ optional bool upstream = 3 [ default = false ] ;
100101 optional bool reserved = 4 ;
101102 optional uint32 buffer_size_db = 5 ;
102103 optional uint32 max_bitrate = 6 ;
@@ -126,13 +127,15 @@ message FlacMetaBlockHeader {
126127message FlacMetaBlockStreamInfo {
127128 optional uint32 minimum_block_size = 1 ;
128129 optional uint32 maximum_block_size = 2 ;
129- optional uint32 minimum_frame_size = 3 ;
130- optional uint32 maximum_frame_size = 4 ;
130+ optional uint32 minimum_frame_size = 3 [ default = 0 ] ;
131+ optional uint32 maximum_frame_size = 4 [ default = 0 ] ;
131132 optional uint32 sample_rate = 5 ;
132- optional uint32 number_of_channels = 6 ;
133+ optional uint32 number_of_channels = 6 [ default = 1 ] ;
133134 optional uint32 bits_per_sample = 7 ;
134135 optional uint64 total_samples_in_stream = 8 ;
135- optional bytes md5_signature = 9 ;
136+ optional bytes md5_signature = 9
137+ [default =
138+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ];
136139}
137140
138141// Settings to configure `libflac`.
@@ -153,10 +156,19 @@ message FlacDecoderConfig {
153156 optional FlacEncoderMetadata flac_encoder_metadata = 4 ;
154157}
155158
159+ enum CodecId {
160+ CODEC_ID_INVALID = 0 ;
161+ CODEC_ID_OPUS = 0x4f707573 ; // "Opus"
162+ CODEC_ID_LPCM = 0x6970636d ; // "ipcm"
163+ CODEC_ID_AAC_LC = 0x6d703461 ; // "mp4a"
164+ CODEC_ID_FLAC = 0x664c6143 ; // "fLaC"
165+ }
166+
156167message CodecConfig {
157- optional uint32 codec_id = 1 ;
168+ optional uint32 deprecated_codec_id = 1 [deprecated = true ];
169+ optional CodecId codec_id = 10 ;
158170 optional uint32 num_samples_per_frame = 2 ;
159- reserved 3 ;
171+ reserved 3 , 4 ;
160172 optional int32 audio_roll_distance = 9 ;
161173 oneof decoder_config {
162174 LpcmDecoderConfig decoder_config_lpcm = 5 ;
0 commit comments