summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libfaad/mp4.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libfaad/mp4.c')
-rw-r--r--lib/rbcodec/codecs/libfaad/mp4.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/rbcodec/codecs/libfaad/mp4.c b/lib/rbcodec/codecs/libfaad/mp4.c
index 94e1a1daaa..43a4d8da4c 100644
--- a/lib/rbcodec/codecs/libfaad/mp4.c
+++ b/lib/rbcodec/codecs/libfaad/mp4.c
@@ -113,7 +113,11 @@ static uint8_t ObjectTypesTable[32] = {
113 0, /* 27 ER Parametric */ 113 0, /* 27 ER Parametric */
114#endif 114#endif
115 0, /* 28 (Reserved) */ 115 0, /* 28 (Reserved) */
116 0, /* 29 (Reserved) */ 116#ifdef PS_DEC
117 1, /* 29 AAC LC + SBR + PS */
118#else
119 0, /* 29 AAC LC + SBR + PS */
120#endif
117 0, /* 30 (Reserved) */ 121 0, /* 30 (Reserved) */
118 0 /* 31 (Reserved) */ 122 0 /* 31 (Reserved) */
119}; 123};
@@ -188,7 +192,7 @@ int8_t AudioSpecificConfig2(uint8_t *pBuffer,
188 192
189#ifdef SBR_DEC 193#ifdef SBR_DEC
190 mp4ASC->sbr_present_flag = -1; 194 mp4ASC->sbr_present_flag = -1;
191 if (mp4ASC->objectTypeIndex == 5) 195 if (mp4ASC->objectTypeIndex == 5 || mp4ASC->objectTypeIndex == 29)
192 { 196 {
193 uint8_t tmp; 197 uint8_t tmp;
194 198
@@ -242,7 +246,7 @@ int8_t AudioSpecificConfig2(uint8_t *pBuffer,
242#ifdef SBR_DEC 246#ifdef SBR_DEC
243 bits_to_decode = (int8_t)(buffer_size*8 - faad_get_processed_bits(&ld)); 247 bits_to_decode = (int8_t)(buffer_size*8 - faad_get_processed_bits(&ld));
244 248
245 if ((mp4ASC->objectTypeIndex != 5) && (bits_to_decode >= 16)) 249 if ((mp4ASC->objectTypeIndex != 5 && mp4ASC->objectTypeIndex != 29) && (bits_to_decode >= 16))
246 { 250 {
247 int16_t syncExtensionType = (int16_t)faad_getbits(&ld, 11 251 int16_t syncExtensionType = (int16_t)faad_getbits(&ld, 11
248 DEBUGVAR(1,9,"parse_audio_decoder_specific_info(): syncExtensionType")); 252 DEBUGVAR(1,9,"parse_audio_decoder_specific_info(): syncExtensionType"));