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