Merge "Revert "omx: don't try to memcpy from/to opaque pointer/native handle."" into pi-dev

gugelfrei
TreeHugger Robot 6 years ago committed by Android (Google) Code Review
commit 4dce3415f7

@ -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);
@ -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);
@ -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);

@ -117,12 +117,6 @@ struct OMXNodeInstance : public BnOMXNode {
static OMX_CALLBACKTYPE kCallbacks;
enum SecureBufferType {
kSecureBufferTypeUnknown,
kSecureBufferTypeOpaque,
kSecureBufferTypeNativeHandle,
};
private:
struct CallbackDispatcherThread;
struct CallbackDispatcher;
@ -161,6 +155,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…
Cancel
Save