Loading media/libstagefright/include/OMXNodeInstance.h +2 −1 Original line number Diff line number Diff line Loading @@ -143,7 +143,7 @@ private: bool mLegacyAdaptiveExperiment; IOMX::PortMode mPortMode[2]; // metadata and secure buffer type tracking // metadata and secure buffer types and graphic buffer mode tracking MetadataBufferType mMetadataType[2]; enum SecureBufferType { kSecureBufferTypeUnknown, Loading @@ -151,6 +151,7 @@ private: kSecureBufferTypeNativeHandle, }; SecureBufferType mSecureBufferType[2]; bool mGraphicBufferEnabled[2]; // Following are OMX parameters managed by us (instead of the component) // OMX_IndexParamMaxFrameDurationForBitrateControl Loading media/libstagefright/omx/OMXNodeInstance.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,8 @@ OMXNodeInstance::OMXNodeInstance( mPortMode[1] = IOMX::kPortModePresetByteBuffer; mSecureBufferType[0] = kSecureBufferTypeUnknown; mSecureBufferType[1] = kSecureBufferTypeUnknown; mGraphicBufferEnabled[0] = false; mGraphicBufferEnabled[1] = false; mIsSecure = AString(name).endsWith(".secure"); mLegacyAdaptiveExperiment = ADebug::isExperimentEnabled("legacy-adaptive"); } Loading Loading @@ -796,6 +798,12 @@ status_t OMXNodeInstance::enableNativeBuffers_l( } else if (mSecureBufferType[portIndex] == kSecureBufferTypeUnknown) { mSecureBufferType[portIndex] = kSecureBufferTypeOpaque; } } else { if (err == OMX_ErrorNone) { mGraphicBufferEnabled[portIndex] = enable; } else if (enable) { mGraphicBufferEnabled[portIndex] = false; } } } else { CLOG_ERROR_IF(enable, getExtensionIndex, err, "%s", name); Loading Loading @@ -1059,11 +1067,18 @@ status_t OMXNodeInstance::useBuffer( status_t OMXNodeInstance::useBuffer_l( OMX_U32 portIndex, const sp<IMemory> ¶ms, const sp<IHidlMemory> &hParams, IOMX::buffer_id *buffer) { BufferMeta *buffer_meta; OMX_BUFFERHEADERTYPE *header; OMX_ERRORTYPE err = OMX_ErrorNone; bool isMetadata = mMetadataType[portIndex] != kMetadataBufferTypeInvalid; if (!isMetadata && mGraphicBufferEnabled[portIndex]) { ALOGE("b/62948670"); android_errorWriteLog(0x534e4554, "62948670"); return INVALID_OPERATION; } size_t paramsSize; void* paramsPointer; if (params != NULL && hParams != NULL) { Loading Loading @@ -1249,6 +1264,13 @@ status_t OMXNodeInstance::useGraphicBuffer_l( portIndex, graphicBuffer, buffer); } if (!mGraphicBufferEnabled[portIndex]) { // Report error if this is not in graphic buffer mode. ALOGE("b/62948670"); android_errorWriteLog(0x534e4554, "62948670"); return INVALID_OPERATION; } // See if the newer version of the extension is present. OMX_INDEXTYPE index; if (OMX_GetExtensionIndex( Loading Loading
media/libstagefright/include/OMXNodeInstance.h +2 −1 Original line number Diff line number Diff line Loading @@ -143,7 +143,7 @@ private: bool mLegacyAdaptiveExperiment; IOMX::PortMode mPortMode[2]; // metadata and secure buffer type tracking // metadata and secure buffer types and graphic buffer mode tracking MetadataBufferType mMetadataType[2]; enum SecureBufferType { kSecureBufferTypeUnknown, Loading @@ -151,6 +151,7 @@ private: kSecureBufferTypeNativeHandle, }; SecureBufferType mSecureBufferType[2]; bool mGraphicBufferEnabled[2]; // Following are OMX parameters managed by us (instead of the component) // OMX_IndexParamMaxFrameDurationForBitrateControl Loading
media/libstagefright/omx/OMXNodeInstance.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,8 @@ OMXNodeInstance::OMXNodeInstance( mPortMode[1] = IOMX::kPortModePresetByteBuffer; mSecureBufferType[0] = kSecureBufferTypeUnknown; mSecureBufferType[1] = kSecureBufferTypeUnknown; mGraphicBufferEnabled[0] = false; mGraphicBufferEnabled[1] = false; mIsSecure = AString(name).endsWith(".secure"); mLegacyAdaptiveExperiment = ADebug::isExperimentEnabled("legacy-adaptive"); } Loading Loading @@ -796,6 +798,12 @@ status_t OMXNodeInstance::enableNativeBuffers_l( } else if (mSecureBufferType[portIndex] == kSecureBufferTypeUnknown) { mSecureBufferType[portIndex] = kSecureBufferTypeOpaque; } } else { if (err == OMX_ErrorNone) { mGraphicBufferEnabled[portIndex] = enable; } else if (enable) { mGraphicBufferEnabled[portIndex] = false; } } } else { CLOG_ERROR_IF(enable, getExtensionIndex, err, "%s", name); Loading Loading @@ -1059,11 +1067,18 @@ status_t OMXNodeInstance::useBuffer( status_t OMXNodeInstance::useBuffer_l( OMX_U32 portIndex, const sp<IMemory> ¶ms, const sp<IHidlMemory> &hParams, IOMX::buffer_id *buffer) { BufferMeta *buffer_meta; OMX_BUFFERHEADERTYPE *header; OMX_ERRORTYPE err = OMX_ErrorNone; bool isMetadata = mMetadataType[portIndex] != kMetadataBufferTypeInvalid; if (!isMetadata && mGraphicBufferEnabled[portIndex]) { ALOGE("b/62948670"); android_errorWriteLog(0x534e4554, "62948670"); return INVALID_OPERATION; } size_t paramsSize; void* paramsPointer; if (params != NULL && hParams != NULL) { Loading Loading @@ -1249,6 +1264,13 @@ status_t OMXNodeInstance::useGraphicBuffer_l( portIndex, graphicBuffer, buffer); } if (!mGraphicBufferEnabled[portIndex]) { // Report error if this is not in graphic buffer mode. ALOGE("b/62948670"); android_errorWriteLog(0x534e4554, "62948670"); return INVALID_OPERATION; } // See if the newer version of the extension is present. OMX_INDEXTYPE index; if (OMX_GetExtensionIndex( Loading