summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2011-05-04 13:18:36 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-05-04 13:18:36 -0700
commit70b276a16264ab232403f2f44f137df129408c67 (patch)
tree48f5da76be17d8cb186f57b826f7fad7caf265d9
parenta4587818698703d013c97ee383efd81228517632 (diff)
parent19127e716266880d80de70795c89fda692fa3572 (diff)
downloadframeworks_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.cpp17
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.