video: Disconnect from native window for secure case

Disconnect from native window for secure case, to ensure
earlier resolution buffers are freed, which will help
to reduce delay for allocation of new resolution buffers

CRs-Fixed: 2069666

Bug: 142782952
Test: atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small
Change-Id: Ic95e0b62eb5f5043e0321cd0d1bbfbff76729ef3
gugelfrei
Uma Mehta 7 years ago committed by Wonsik Kim
parent 255f610f5a
commit 08b5f8a299

@ -1310,7 +1310,7 @@ status_t ACodec::allocateOutputMetadataBuffers() {
OMX_U32 bufferCount, bufferSize, minUndequeuedBuffers;
status_t err = configureOutputBuffersFromNativeWindow(
&bufferCount, &bufferSize, &minUndequeuedBuffers,
false /* preregister */);
mFlags & kFlagPreregisterMetadataBuffers /* preregister */);
if (err != OK)
return err;
mNumUndequeuedBuffers = minUndequeuedBuffers;
@ -1896,6 +1896,19 @@ status_t ACodec::configureCodec(
setPortMode(kPortIndexInput, IOMX::kPortModePresetByteBuffer);
err = OK; // ignore error for now
}
OMX_INDEXTYPE index;
if (mOMXNode->getExtensionIndex(
"OMX.google.android.index.preregisterMetadataBuffers", &index) == OK) {
OMX_CONFIG_BOOLEANTYPE param;
InitOMXParams(&param);
param.bEnabled = OMX_FALSE;
if (mOMXNode->getParameter(index, &param, sizeof(param)) == OK) {
if (param.bEnabled == OMX_TRUE) {
mFlags |= kFlagPreregisterMetadataBuffers;
}
}
}
}
if (haveNativeWindow) {
sp<ANativeWindow> nativeWindow =

@ -158,6 +158,7 @@ private:
kFlagIsSecure = 1,
kFlagPushBlankBuffersToNativeWindowOnShutdown = 2,
kFlagIsGrallocUsageProtected = 4,
kFlagPreregisterMetadataBuffers = 8,
};
enum {

Loading…
Cancel
Save