summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/omx/OMX.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/omx/OMX.cpp')
-rw-r--r--media/libstagefright/omx/OMX.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/media/libstagefright/omx/OMX.cpp b/media/libstagefright/omx/OMX.cpp
index 56b6055..68ff9b0 100644
--- a/media/libstagefright/omx/OMX.cpp
+++ b/media/libstagefright/omx/OMX.cpp
@@ -473,6 +473,10 @@ OMX_ERRORTYPE OMX::OnEvent(
findInstance(node)->onEvent(eEvent, nData1, nData2);
sp<OMX::CallbackDispatcher> dispatcher = findDispatcher(node);
+ if (dispatcher == NULL) {
+ ALOGW("OnEvent Callback dispatcher NULL, skip post");
+ return OMX_ErrorNone;
+ }
// output rendered events are not processed as regular events until they hit the observer
if (eEvent == OMX_EventOutputRendered) {
@@ -518,7 +522,12 @@ OMX_ERRORTYPE OMX::OnEmptyBufferDone(
msg.fenceFd = fenceFd;
msg.u.buffer_data.buffer = buffer;
- findDispatcher(node)->post(msg);
+ sp<OMX::CallbackDispatcher> callbackDispatcher = findDispatcher(node);
+ if (callbackDispatcher != NULL) {
+ callbackDispatcher->post(msg);
+ } else {
+ ALOGW("OnEmptyBufferDone Callback dispatcher NULL, skip post");
+ }
return OMX_ErrorNone;
}
@@ -537,7 +546,12 @@ OMX_ERRORTYPE OMX::OnFillBufferDone(
msg.u.extended_buffer_data.flags = pBuffer->nFlags;
msg.u.extended_buffer_data.timestamp = pBuffer->nTimeStamp;
- findDispatcher(node)->post(msg);
+ sp<OMX::CallbackDispatcher> callbackDispatcher = findDispatcher(node);
+ if (callbackDispatcher != NULL) {
+ callbackDispatcher->post(msg);
+ } else {
+ ALOGW("OnFillBufferDone Callback dispatcher NULL, skip post");
+ }
return OMX_ErrorNone;
}