From 49605e8ab171a2b1f474645d632d3982f5f7b8e6 Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Wed, 1 Jul 2015 12:06:40 -0700 Subject: stagefright: fix deadlock and NPE in GraphicBufferSource Bug: 22202388 Change-Id: I04f2f783ecc0e0c50adf16a666f6d7ab4221e285 --- media/libstagefright/omx/OMXNodeInstance.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'media/libstagefright/omx/OMXNodeInstance.cpp') 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 bufferSource = new GraphicBufferSource(this, def.format.video.nFrameWidth, def.format.video.nFrameHeight, def.nBufferCountActual, + usageBits, bufferConsumer); if ((err = bufferSource->initCheck()) != OK) { -- cgit v1.1