diff options
Diffstat (limited to 'media')
-rwxr-xr-x | media/libstagefright/OMXCodec.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index fde7ebf..a6636a1 100755 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -2048,9 +2048,13 @@ int64_t OMXCodec::getDecodingTimeUs() { } void OMXCodec::on_message(const omx_message &msg) { + // even in error state, we still need to process EMPTY_BUFFER_DONE + // and FILL_BUFFER_DONE event, or we will run into mediaserver crash issue if (mState == ERROR) { - ALOGW("Dropping OMX message - we're in ERROR state."); - return; + if (msg.type == omx_message::EVENT) { + ALOGW("Dropping OMX message - we're in ERROR state."); + return; + } } switch (msg.type) { |