From fe1dee83ed31e8e03a2a5268779bcf79e6e42f24 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Wed, 17 Mar 2010 11:29:35 -0700 Subject: [PATCH] Instead of asserting that nothing bad happened during (software-)AAC decoding, return a runtime error if appropriate. Change-Id: I175492aba8fd6cc1320d047bd2608750d7b193f9 related-to-bug: 2492187 --- media/libstagefright/codecs/aacdec/AACDecoder.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/media/libstagefright/codecs/aacdec/AACDecoder.cpp b/media/libstagefright/codecs/aacdec/AACDecoder.cpp index f0b66c9b293c1..fe84b384d4ed5 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);