diff options
author | Andreas Huber <andih@google.com> | 2010-03-17 11:29:35 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-03-17 11:29:35 -0700 |
commit | fe1dee83ed31e8e03a2a5268779bcf79e6e42f24 (patch) | |
tree | 94abeb2decdc25285e0a9fdceee7caddb65b175a /media | |
parent | d246ca811575eee9122070648e93b7484f6edd81 (diff) | |
download | frameworks_base-fe1dee83ed31e8e03a2a5268779bcf79e6e42f24.zip frameworks_base-fe1dee83ed31e8e03a2a5268779bcf79e6e42f24.tar.gz frameworks_base-fe1dee83ed31e8e03a2a5268779bcf79e6e42f24.tar.bz2 |
Instead of asserting that nothing bad happened during (software-)AAC decoding, return a runtime error if appropriate.
Change-Id: I175492aba8fd6cc1320d047bd2608750d7b193f9
related-to-bug: 2492187
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/codecs/aacdec/AACDecoder.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/media/libstagefright/codecs/aacdec/AACDecoder.cpp b/media/libstagefright/codecs/aacdec/AACDecoder.cpp index f0b66c9..fe84b38 100644 --- a/media/libstagefright/codecs/aacdec/AACDecoder.cpp +++ b/media/libstagefright/codecs/aacdec/AACDecoder.cpp @@ -199,7 +199,16 @@ status_t AACDecoder::read( mConfig->pOutputBuffer_plus = NULL; mConfig->repositionFlag = false; - CHECK_EQ(PVMP4AudioDecodeFrame(mConfig, mDecoderBuf), MP4AUDEC_SUCCESS); + Int decoderErr = PVMP4AudioDecodeFrame(mConfig, mDecoderBuf); + + if (decoderErr != MP4AUDEC_SUCCESS) { + LOGE("AAC decoder returned error %d", decoderErr); + + buffer->release(); + buffer = NULL; + + return ERROR_MALFORMED; + } buffer->set_range( 0, mConfig->frameLength * sizeof(int16_t) * mConfig->desiredChannels); |