Loading media/libstagefright/omx/OMXNodeInstance.cpp +4 −16 Original line number Diff line number Diff line Loading @@ -131,34 +131,22 @@ struct BufferMeta { static_cast<void*>(mHidlMemory->getPointer())) : nullptr; } void CopyFromOMX(const OMX_BUFFERHEADERTYPE *header, OMXNodeInstance::SecureBufferType type) { void CopyFromOMX(const OMX_BUFFERHEADERTYPE *header) { if (!mCopyFromOmx) { return; } if (type != OMXNodeInstance::kSecureBufferTypeUnknown) { ALOGE("b/77486542"); android_errorWriteLog(0x534e4554, "77486542"); return; } // check component returns proper range sp<ABuffer> codec = getBuffer(header, true /* limit */); memcpy(getPointer() + header->nOffset, codec->data(), codec->size()); } void CopyToOMX(const OMX_BUFFERHEADERTYPE *header, OMXNodeInstance::SecureBufferType type) { void CopyToOMX(const OMX_BUFFERHEADERTYPE *header) { if (!mCopyToOmx) { return; } if (type != OMXNodeInstance::kSecureBufferTypeUnknown) { ALOGE("b/77486542"); android_errorWriteLog(0x534e4554, "77486542"); return; } memcpy(header->pBuffer + header->nOffset, getPointer() + header->nOffset, header->nFilledLen); Loading Loading @@ -1705,7 +1693,7 @@ status_t OMXNodeInstance::emptyBuffer_l( header->nFilledLen = rangeLength; header->nOffset = rangeOffset; buffer_meta->CopyToOMX(header, mSecureBufferType[kPortIndexInput]); buffer_meta->CopyToOMX(header); } return emptyBuffer_l(header, flags, timestamp, (intptr_t)buffer, fenceFd); Loading Loading @@ -1993,7 +1981,7 @@ bool OMXNodeInstance::handleMessage(omx_message &msg) { CLOG_ERROR(onFillBufferDone, OMX_ErrorBadParameter, FULL_BUFFER(NULL, buffer, msg.fenceFd)); } buffer_meta->CopyFromOMX(buffer, mSecureBufferType[kPortIndexOutput]); buffer_meta->CopyFromOMX(buffer); // fix up the buffer info (especially timestamp) if needed codecBufferFilled(msg); Loading media/libstagefright/omx/include/media/stagefright/omx/OMXNodeInstance.h +5 −5 Original line number Diff line number Diff line Loading @@ -116,11 +116,6 @@ struct OMXNodeInstance : public BnOMXNode { static OMX_CALLBACKTYPE kCallbacks; enum SecureBufferType { kSecureBufferTypeUnknown, kSecureBufferTypeOpaque, kSecureBufferTypeNativeHandle, }; private: struct CallbackDispatcherThread; struct CallbackDispatcher; Loading Loading @@ -159,6 +154,11 @@ private: IOMX::PortMode mPortMode[2]; // metadata and secure buffer types and graphic buffer mode tracking MetadataBufferType mMetadataType[2]; enum SecureBufferType { kSecureBufferTypeUnknown, kSecureBufferTypeOpaque, kSecureBufferTypeNativeHandle, }; SecureBufferType mSecureBufferType[2]; bool mGraphicBufferEnabled[2]; Loading Loading
media/libstagefright/omx/OMXNodeInstance.cpp +4 −16 Original line number Diff line number Diff line Loading @@ -131,34 +131,22 @@ struct BufferMeta { static_cast<void*>(mHidlMemory->getPointer())) : nullptr; } void CopyFromOMX(const OMX_BUFFERHEADERTYPE *header, OMXNodeInstance::SecureBufferType type) { void CopyFromOMX(const OMX_BUFFERHEADERTYPE *header) { if (!mCopyFromOmx) { return; } if (type != OMXNodeInstance::kSecureBufferTypeUnknown) { ALOGE("b/77486542"); android_errorWriteLog(0x534e4554, "77486542"); return; } // check component returns proper range sp<ABuffer> codec = getBuffer(header, true /* limit */); memcpy(getPointer() + header->nOffset, codec->data(), codec->size()); } void CopyToOMX(const OMX_BUFFERHEADERTYPE *header, OMXNodeInstance::SecureBufferType type) { void CopyToOMX(const OMX_BUFFERHEADERTYPE *header) { if (!mCopyToOmx) { return; } if (type != OMXNodeInstance::kSecureBufferTypeUnknown) { ALOGE("b/77486542"); android_errorWriteLog(0x534e4554, "77486542"); return; } memcpy(header->pBuffer + header->nOffset, getPointer() + header->nOffset, header->nFilledLen); Loading Loading @@ -1705,7 +1693,7 @@ status_t OMXNodeInstance::emptyBuffer_l( header->nFilledLen = rangeLength; header->nOffset = rangeOffset; buffer_meta->CopyToOMX(header, mSecureBufferType[kPortIndexInput]); buffer_meta->CopyToOMX(header); } return emptyBuffer_l(header, flags, timestamp, (intptr_t)buffer, fenceFd); Loading Loading @@ -1993,7 +1981,7 @@ bool OMXNodeInstance::handleMessage(omx_message &msg) { CLOG_ERROR(onFillBufferDone, OMX_ErrorBadParameter, FULL_BUFFER(NULL, buffer, msg.fenceFd)); } buffer_meta->CopyFromOMX(buffer, mSecureBufferType[kPortIndexOutput]); buffer_meta->CopyFromOMX(buffer); // fix up the buffer info (especially timestamp) if needed codecBufferFilled(msg); Loading
media/libstagefright/omx/include/media/stagefright/omx/OMXNodeInstance.h +5 −5 Original line number Diff line number Diff line Loading @@ -116,11 +116,6 @@ struct OMXNodeInstance : public BnOMXNode { static OMX_CALLBACKTYPE kCallbacks; enum SecureBufferType { kSecureBufferTypeUnknown, kSecureBufferTypeOpaque, kSecureBufferTypeNativeHandle, }; private: struct CallbackDispatcherThread; struct CallbackDispatcher; Loading Loading @@ -159,6 +154,11 @@ private: IOMX::PortMode mPortMode[2]; // metadata and secure buffer types and graphic buffer mode tracking MetadataBufferType mMetadataType[2]; enum SecureBufferType { kSecureBufferTypeUnknown, kSecureBufferTypeOpaque, kSecureBufferTypeNativeHandle, }; SecureBufferType mSecureBufferType[2]; bool mGraphicBufferEnabled[2]; Loading