Loading media/libstagefright/omx/OMXNodeInstance.cpp +4 −1 Original line number Original line Diff line number Diff line Loading @@ -1387,12 +1387,15 @@ status_t OMXNodeInstance::freeBuffer( } } BufferMeta *buffer_meta = static_cast<BufferMeta *>(header->pAppPrivate); BufferMeta *buffer_meta = static_cast<BufferMeta *>(header->pAppPrivate); // Invalidate buffers in the client side first before calling OMX_FreeBuffer. // If not, pending events in the client side might access the buffers after free. invalidateBufferID(buffer); OMX_ERRORTYPE err = OMX_FreeBuffer(mHandle, portIndex, header); OMX_ERRORTYPE err = OMX_FreeBuffer(mHandle, portIndex, header); CLOG_IF_ERROR(freeBuffer, err, "%s:%u %#x", portString(portIndex), portIndex, buffer); CLOG_IF_ERROR(freeBuffer, err, "%s:%u %#x", portString(portIndex), portIndex, buffer); delete buffer_meta; delete buffer_meta; buffer_meta = NULL; buffer_meta = NULL; invalidateBufferID(buffer); return StatusFromOMXError(err); return StatusFromOMXError(err); } } Loading Loading
media/libstagefright/omx/OMXNodeInstance.cpp +4 −1 Original line number Original line Diff line number Diff line Loading @@ -1387,12 +1387,15 @@ status_t OMXNodeInstance::freeBuffer( } } BufferMeta *buffer_meta = static_cast<BufferMeta *>(header->pAppPrivate); BufferMeta *buffer_meta = static_cast<BufferMeta *>(header->pAppPrivate); // Invalidate buffers in the client side first before calling OMX_FreeBuffer. // If not, pending events in the client side might access the buffers after free. invalidateBufferID(buffer); OMX_ERRORTYPE err = OMX_FreeBuffer(mHandle, portIndex, header); OMX_ERRORTYPE err = OMX_FreeBuffer(mHandle, portIndex, header); CLOG_IF_ERROR(freeBuffer, err, "%s:%u %#x", portString(portIndex), portIndex, buffer); CLOG_IF_ERROR(freeBuffer, err, "%s:%u %#x", portString(portIndex), portIndex, buffer); delete buffer_meta; delete buffer_meta; buffer_meta = NULL; buffer_meta = NULL; invalidateBufferID(buffer); return StatusFromOMXError(err); return StatusFromOMXError(err); } } Loading