summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/omx/OMXNodeInstance.cpp
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2015-07-01 12:06:40 -0700
committerLajos Molnar <lajos@google.com>2015-07-01 12:08:07 -0700
commit49605e8ab171a2b1f474645d632d3982f5f7b8e6 (patch)
tree003d3960bddc796b438873a4d41c0c02b0cf6eee /media/libstagefright/omx/OMXNodeInstance.cpp
parent2065710591ebb59b76df8b34866d53d3ae022c2b (diff)
downloadframeworks_av-49605e8ab171a2b1f474645d632d3982f5f7b8e6.zip
frameworks_av-49605e8ab171a2b1f474645d632d3982f5f7b8e6.tar.gz
frameworks_av-49605e8ab171a2b1f474645d632d3982f5f7b8e6.tar.bz2
stagefright: fix deadlock and NPE in GraphicBufferSource
Bug: 22202388 Change-Id: I04f2f783ecc0e0c50adf16a666f6d7ab4221e285
Diffstat (limited to 'media/libstagefright/omx/OMXNodeInstance.cpp')
-rw-r--r--media/libstagefright/omx/OMXNodeInstance.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/media/libstagefright/omx/OMXNodeInstance.cpp b/media/libstagefright/omx/OMXNodeInstance.cpp
index 95549a4..9f1c5d8 100644
--- a/media/libstagefright/omx/OMXNodeInstance.cpp
+++ b/media/libstagefright/omx/OMXNodeInstance.cpp
@@ -834,7 +834,8 @@ status_t OMXNodeInstance::updateGraphicBufferInMeta_l(
}
CLOG_BUFFER(updateGraphicBufferInMeta, "%s:%u, %#x := %p",
- portString(portIndex), portIndex, buffer, graphicBuffer->handle);
+ portString(portIndex), portIndex, buffer,
+ graphicBuffer == NULL ? NULL : graphicBuffer->handle);
return OK;
}
@@ -885,10 +886,18 @@ status_t OMXNodeInstance::createGraphicBufferSource(
return INVALID_OPERATION;
}
+ uint32_t usageBits;
+ oerr = OMX_GetParameter(
+ mHandle, (OMX_INDEXTYPE)OMX_IndexParamConsumerUsageBits, &usageBits);
+ if (oerr != OMX_ErrorNone) {
+ usageBits = 0;
+ }
+
sp<GraphicBufferSource> bufferSource = new GraphicBufferSource(this,
def.format.video.nFrameWidth,
def.format.video.nFrameHeight,
def.nBufferCountActual,
+ usageBits,
bufferConsumer);
if ((err = bufferSource->initCheck()) != OK) {