From 59633a1e0ae968a90367718fb21716c32d73af04 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Wed, 4 May 2011 13:09:35 -0700 Subject: Signal an error if aac decoding fails early. Change-Id: I8b886a7642aaf83fa008fefb38cb4f92267ca948 related-to-bug: 4272179 --- media/libstagefright/codecs/aacdec/AACDecoder.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'media/libstagefright') diff --git a/media/libstagefright/codecs/aacdec/AACDecoder.cpp b/media/libstagefright/codecs/aacdec/AACDecoder.cpp index 208431c..d2e3eaa 100644 --- a/media/libstagefright/codecs/aacdec/AACDecoder.cpp +++ b/media/libstagefright/codecs/aacdec/AACDecoder.cpp @@ -234,6 +234,23 @@ status_t AACDecoder::read( mConfig->aacPlusUpsamplingFactor, mConfig->desiredChannels); CHECK(mNumDecodedBuffers > 0); + + if (decoderErr != MP4AUDEC_SUCCESS) { + // If decoding fails this early, the fields in mConfig may + // not be valid and we cannot recover. + + LOGE("Unable to decode aac content, decoder returned error %d", + decoderErr); + + buffer->release(); + buffer = NULL; + + mInputBuffer->release(); + mInputBuffer = NULL; + + return ERROR_UNSUPPORTED; + } + if (mNumDecodedBuffers == 1) { mUpsamplingFactor = mConfig->aacPlusUpsamplingFactor; // Check on the sampling rate to see whether it is changed. -- cgit v1.1