Merge "Instead of asserting that nothing bad happened during (software-)AAC decoding, return a runtime error if appropriate."
diff --git a/media/libstagefright/codecs/aacdec/AACDecoder.cpp b/media/libstagefright/codecs/aacdec/AACDecoder.cpp
index f0b66c9..fe84b38 100644
--- a/media/libstagefright/codecs/aacdec/AACDecoder.cpp
+++ b/media/libstagefright/codecs/aacdec/AACDecoder.cpp
@@ -199,7 +199,16 @@
     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);