summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/OMXCodec.cpp
diff options
context:
space:
mode:
authorHaynes Mathew George <hgeorge@codeaurora.org>2012-06-25 21:27:56 -0700
committerIliyan Malchev <malchev@google.com>2012-06-28 12:45:51 -0700
commitf89a87ab3708e75c406b2abcb7e69dc1b076868a (patch)
treee4b976bac1b17474efea3e8cb97e5ed0c6c59bd2 /media/libstagefright/OMXCodec.cpp
parentf18da5524ecc50b12ea8233f82892f99106fc009 (diff)
downloadframeworks_av-f89a87ab3708e75c406b2abcb7e69dc1b076868a.zip
frameworks_av-f89a87ab3708e75c406b2abcb7e69dc1b076868a.tar.gz
frameworks_av-f89a87ab3708e75c406b2abcb7e69dc1b076868a.tar.bz2
Process EBD and FBD messages in ERROR state
- OMXCodec::on_message() function drops all OMX messages if OMXCodec is in ERROR state - This can cause EBD/FBD messages containing valid buffers to be dropped - Avoid dropping EBD/FBD messages so that buffer book-keeping is still possible Change-Id: Idc1174b3fa946b26458d49394b87fba1738b228e Signed-off-by: Iliyan Malchev <malchev@google.com>
Diffstat (limited to 'media/libstagefright/OMXCodec.cpp')
-rwxr-xr-xmedia/libstagefright/OMXCodec.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index b3e14da..8dbac72 100755
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -2050,8 +2050,14 @@ int64_t OMXCodec::getDecodingTimeUs() {
void OMXCodec::on_message(const omx_message &msg) {
if (mState == ERROR) {
- ALOGW("Dropping OMX message - we're in ERROR state.");
- return;
+ /*
+ * only drop EVENT messages, EBD and FBD are still
+ * processed for bookkeeping purposes
+ */
+ if (msg.type == omx_message::EVENT) {
+ ALOGW("Dropping OMX EVENT message - we're in ERROR state.");
+ return;
+ }
}
switch (msg.type) {