diff options
author | Andreas Huber <andih@google.com> | 2011-05-04 13:18:36 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-05-04 13:18:36 -0700 |
commit | 70b276a16264ab232403f2f44f137df129408c67 (patch) | |
tree | 48f5da76be17d8cb186f57b826f7fad7caf265d9 | |
parent | a4587818698703d013c97ee383efd81228517632 (diff) | |
parent | 19127e716266880d80de70795c89fda692fa3572 (diff) | |
download | frameworks_base-70b276a16264ab232403f2f44f137df129408c67.zip frameworks_base-70b276a16264ab232403f2f44f137df129408c67.tar.gz frameworks_base-70b276a16264ab232403f2f44f137df129408c67.tar.bz2 |
Merge "Signal an error if aac decoding fails early."
-rw-r--r-- | media/libstagefright/codecs/aacdec/AACDecoder.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
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. |