diff options
Diffstat (limited to 'media/libstagefright/codecs/amrnb')
-rw-r--r-- | media/libstagefright/codecs/amrnb/dec/Android.mk | 1 | ||||
-rw-r--r-- | media/libstagefright/codecs/amrnb/dec/SoftAMR.cpp | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/media/libstagefright/codecs/amrnb/dec/Android.mk b/media/libstagefright/codecs/amrnb/dec/Android.mk index 76a7f40..21109d9 100644 --- a/media/libstagefright/codecs/amrnb/dec/Android.mk +++ b/media/libstagefright/codecs/amrnb/dec/Android.mk @@ -80,6 +80,7 @@ LOCAL_SHARED_LIBRARIES := \ libstagefright_amrnb_common LOCAL_MODULE := libstagefright_soft_amrdec +LOCAL_CLANG := false LOCAL_MODULE_TAGS := optional include $(BUILD_SHARED_LIBRARY) diff --git a/media/libstagefright/codecs/amrnb/dec/SoftAMR.cpp b/media/libstagefright/codecs/amrnb/dec/SoftAMR.cpp index a9723ea..f8316fd 100644 --- a/media/libstagefright/codecs/amrnb/dec/SoftAMR.cpp +++ b/media/libstagefright/codecs/amrnb/dec/SoftAMR.cpp @@ -352,7 +352,14 @@ void SoftAMR::onQueueFilled(OMX_U32 /* portIndex */) { } size_t frameSize = getFrameSize(mode); - CHECK_GE(inHeader->nFilledLen, frameSize); + if (inHeader->nFilledLen < frameSize) { + ALOGE("Filled length vs frameSize %u vs %lu. Corrupt clip?", + inHeader->nFilledLen, frameSize); + + notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); + mSignalledError = true; + return; + } int16_t *outPtr = (int16_t *)outHeader->pBuffer; |