summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/aacdec/AACDecoder.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2011-05-04 13:09:35 -0700
committerAndreas Huber <andih@google.com>2011-05-04 13:09:35 -0700
commit19127e716266880d80de70795c89fda692fa3572 (patch)
treed6db1e28b6dd48a8e81d78c73d42c395fc719b37 /media/libstagefright/codecs/aacdec/AACDecoder.cpp
parentc016e0f8ebb414277839358fdc7923033b8ce89e (diff)
downloadframeworks_base-19127e716266880d80de70795c89fda692fa3572.zip
frameworks_base-19127e716266880d80de70795c89fda692fa3572.tar.gz
frameworks_base-19127e716266880d80de70795c89fda692fa3572.tar.bz2
Signal an error if aac decoding fails early.
Change-Id: I8b886a7642aaf83fa008fefb38cb4f92267ca948 related-to-bug: 4272179
Diffstat (limited to 'media/libstagefright/codecs/aacdec/AACDecoder.cpp')
-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.