aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2018-10-01 22:19:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-10-01 22:19:05 +0000
commit28234107a71eb9ca3d214bbbe40e57c5055579df (patch)
tree219df1e2e5e2480e2bb6440a8b9e964bed4cba9b
parent25b209f229879a155759d791fe463b8abd283677 (diff)
parentf2bc07da2ed70eb069f3faab1179c4c89792bf3d (diff)
downloadfdk-aac-28234107a71eb9ca3d214bbbe40e57c5055579df.tar.gz
fdk-aac-28234107a71eb9ca3d214bbbe40e57c5055579df.tar.bz2
fdk-aac-28234107a71eb9ca3d214bbbe40e57c5055579df.zip
Merge "Unify audio element loop abort criterion in ER syntax" into pi-dev
-rw-r--r--libAACdec/src/aacdecoder.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/libAACdec/src/aacdecoder.cpp b/libAACdec/src/aacdecoder.cpp
index fab30de..24907ee 100644
--- a/libAACdec/src/aacdecoder.cpp
+++ b/libAACdec/src/aacdecoder.cpp
@@ -2047,17 +2047,12 @@ CAacDecoder_Init(HANDLE_AACDECODER self, const CSAudioSpecificConfig *asc,
if (self->flags[streamIndex] & (AC_RSV603DA | AC_USAC)) {
_numElements = (int)asc->m_sc.m_usacConfig.m_usacNumElements;
}
- if (self->flags[streamIndex] & (AC_ER | AC_LD | AC_ELD)) {
- _numElements = (asc->m_channelConfiguration == 7)
- ? 8
- : asc->m_channelConfiguration;
- }
for (int _el = 0; _el < _numElements; _el++) {
int el_channels = 0;
int el = elementOffset + _el;
if (self->flags[streamIndex] &
- (AC_ELD | AC_RSV603DA | AC_USAC | AC_RSVD50)) {
+ (AC_ER | AC_LD | AC_ELD | AC_RSV603DA | AC_USAC | AC_RSVD50)) {
if (ch >= ascChannels) {
break;
}
@@ -2107,7 +2102,9 @@ CAacDecoder_Init(HANDLE_AACDECODER self, const CSAudioSpecificConfig *asc,
(SPECTRAL_PTR)&self->workBufferCore2[ch * 1024];
if (el_channels == 2) {
- FDK_ASSERT(ch < (8) - 1);
+ if (ch >= (8) - 1) {
+ return AAC_DEC_UNSUPPORTED_CHANNELCONFIG;
+ }
self->pAacDecoderChannelInfo[ch + 1]->pComData =
self->pAacDecoderChannelInfo[ch]->pComData;
self->pAacDecoderChannelInfo[ch + 1]->pComStaticData =