|
|
@ -58,7 +58,7 @@ int ff_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf, int buf_si |
|
|
|
c->sample_rate = get_sample_rate(&gb, &c->sampling_index); |
|
|
|
c->sample_rate = get_sample_rate(&gb, &c->sampling_index); |
|
|
|
c->chan_config = get_bits(&gb, 4); |
|
|
|
c->chan_config = get_bits(&gb, 4); |
|
|
|
c->sbr = -1; |
|
|
|
c->sbr = -1; |
|
|
|
if (c->object_type == 5) { |
|
|
|
if (c->object_type == AOT_SBR) { |
|
|
|
c->ext_object_type = c->object_type; |
|
|
|
c->ext_object_type = c->object_type; |
|
|
|
c->sbr = 1; |
|
|
|
c->sbr = 1; |
|
|
|
c->ext_sample_rate = get_sample_rate(&gb, &c->ext_sampling_index); |
|
|
|
c->ext_sample_rate = get_sample_rate(&gb, &c->ext_sampling_index); |
|
|
@ -71,13 +71,13 @@ int ff_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf, int buf_si |
|
|
|
} |
|
|
|
} |
|
|
|
specific_config_bitindex = get_bits_count(&gb); |
|
|
|
specific_config_bitindex = get_bits_count(&gb); |
|
|
|
|
|
|
|
|
|
|
|
if (c->ext_object_type != 5) { |
|
|
|
if (c->ext_object_type != AOT_SBR) { |
|
|
|
int bits_left = buf_size*8 - specific_config_bitindex; |
|
|
|
int bits_left = buf_size*8 - specific_config_bitindex; |
|
|
|
for (; bits_left > 15; bits_left--) { |
|
|
|
for (; bits_left > 15; bits_left--) { |
|
|
|
if (show_bits(&gb, 11) == 0x2b7) { // sync extension
|
|
|
|
if (show_bits(&gb, 11) == 0x2b7) { // sync extension
|
|
|
|
get_bits(&gb, 11); |
|
|
|
get_bits(&gb, 11); |
|
|
|
c->ext_object_type = get_object_type(&gb); |
|
|
|
c->ext_object_type = get_object_type(&gb); |
|
|
|
if (c->ext_object_type == 5 && (c->sbr = get_bits1(&gb)) == 1) |
|
|
|
if (c->ext_object_type == AOT_SBR && (c->sbr = get_bits1(&gb)) == 1) |
|
|
|
c->ext_sample_rate = get_sample_rate(&gb, &c->ext_sampling_index); |
|
|
|
c->ext_sample_rate = get_sample_rate(&gb, &c->ext_sampling_index); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} else |
|
|
|
} else |
|
|
|