Loading media/libstagefright/include/OMXNodeInstance.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -175,7 +175,7 @@ private: KeyedVector<OMX::buffer_id, OMX_BUFFERHEADERTYPE *> mBufferIDToBufferHeader; KeyedVector<OMX::buffer_id, OMX_BUFFERHEADERTYPE *> mBufferIDToBufferHeader; KeyedVector<OMX_BUFFERHEADERTYPE *, OMX::buffer_id> mBufferHeaderToBufferID; KeyedVector<OMX_BUFFERHEADERTYPE *, OMX::buffer_id> mBufferHeaderToBufferID; // metadata and secure buffer type tracking // metadata and secure buffer types and graphic buffer mode tracking MetadataBufferType mMetadataType[2]; MetadataBufferType mMetadataType[2]; enum SecureBufferType { enum SecureBufferType { kSecureBufferTypeUnknown, kSecureBufferTypeUnknown, Loading @@ -183,6 +183,7 @@ private: kSecureBufferTypeNativeHandle, kSecureBufferTypeNativeHandle, }; }; SecureBufferType mSecureBufferType[2]; SecureBufferType mSecureBufferType[2]; bool mGraphicBufferEnabled[2]; // For debug support // For debug support char *mName; char *mName; Loading media/libstagefright/omx/OMXNodeInstance.cpp +22 −0 Original line number Original line Diff line number Diff line Loading @@ -226,6 +226,8 @@ OMXNodeInstance::OMXNodeInstance( mMetadataType[1] = kMetadataBufferTypeInvalid; mMetadataType[1] = kMetadataBufferTypeInvalid; mSecureBufferType[0] = kSecureBufferTypeUnknown; mSecureBufferType[0] = kSecureBufferTypeUnknown; mSecureBufferType[1] = kSecureBufferTypeUnknown; mSecureBufferType[1] = kSecureBufferTypeUnknown; mGraphicBufferEnabled[0] = false; mGraphicBufferEnabled[1] = false; mIsSecure = AString(name).endsWith(".secure"); mIsSecure = AString(name).endsWith(".secure"); } } Loading Loading @@ -562,6 +564,12 @@ status_t OMXNodeInstance::enableNativeBuffers( } else if (mSecureBufferType[portIndex] == kSecureBufferTypeUnknown) { } else if (mSecureBufferType[portIndex] == kSecureBufferTypeUnknown) { mSecureBufferType[portIndex] = kSecureBufferTypeOpaque; mSecureBufferType[portIndex] = kSecureBufferTypeOpaque; } } } else { if (err == OMX_ErrorNone) { mGraphicBufferEnabled[portIndex] = enable; } else if (enable) { mGraphicBufferEnabled[portIndex] = false; } } } } else { } else { CLOG_ERROR_IF(enable, getExtensionIndex, err, "%s", name); CLOG_ERROR_IF(enable, getExtensionIndex, err, "%s", name); Loading Loading @@ -798,6 +806,13 @@ status_t OMXNodeInstance::useBuffer( return BAD_VALUE; return BAD_VALUE; } } if (mMetadataType[portIndex] == kMetadataBufferTypeInvalid && mGraphicBufferEnabled[portIndex]) { ALOGE("b/62948670"); android_errorWriteLog(0x534e4554, "62948670"); return INVALID_OPERATION; } // metadata buffers are not connected cross process // metadata buffers are not connected cross process // use a backup buffer instead of the actual buffer // use a backup buffer instead of the actual buffer BufferMeta *buffer_meta; BufferMeta *buffer_meta; Loading Loading @@ -916,6 +931,13 @@ status_t OMXNodeInstance::useGraphicBuffer( return BAD_VALUE; return BAD_VALUE; } } Mutex::Autolock autoLock(mLock); Mutex::Autolock autoLock(mLock); if (!mGraphicBufferEnabled[portIndex] || mMetadataType[portIndex] != kMetadataBufferTypeInvalid) { // 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. // See if the newer version of the extension is present. OMX_INDEXTYPE index; OMX_INDEXTYPE index; Loading Loading
media/libstagefright/include/OMXNodeInstance.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -175,7 +175,7 @@ private: KeyedVector<OMX::buffer_id, OMX_BUFFERHEADERTYPE *> mBufferIDToBufferHeader; KeyedVector<OMX::buffer_id, OMX_BUFFERHEADERTYPE *> mBufferIDToBufferHeader; KeyedVector<OMX_BUFFERHEADERTYPE *, OMX::buffer_id> mBufferHeaderToBufferID; KeyedVector<OMX_BUFFERHEADERTYPE *, OMX::buffer_id> mBufferHeaderToBufferID; // metadata and secure buffer type tracking // metadata and secure buffer types and graphic buffer mode tracking MetadataBufferType mMetadataType[2]; MetadataBufferType mMetadataType[2]; enum SecureBufferType { enum SecureBufferType { kSecureBufferTypeUnknown, kSecureBufferTypeUnknown, Loading @@ -183,6 +183,7 @@ private: kSecureBufferTypeNativeHandle, kSecureBufferTypeNativeHandle, }; }; SecureBufferType mSecureBufferType[2]; SecureBufferType mSecureBufferType[2]; bool mGraphicBufferEnabled[2]; // For debug support // For debug support char *mName; char *mName; Loading
media/libstagefright/omx/OMXNodeInstance.cpp +22 −0 Original line number Original line Diff line number Diff line Loading @@ -226,6 +226,8 @@ OMXNodeInstance::OMXNodeInstance( mMetadataType[1] = kMetadataBufferTypeInvalid; mMetadataType[1] = kMetadataBufferTypeInvalid; mSecureBufferType[0] = kSecureBufferTypeUnknown; mSecureBufferType[0] = kSecureBufferTypeUnknown; mSecureBufferType[1] = kSecureBufferTypeUnknown; mSecureBufferType[1] = kSecureBufferTypeUnknown; mGraphicBufferEnabled[0] = false; mGraphicBufferEnabled[1] = false; mIsSecure = AString(name).endsWith(".secure"); mIsSecure = AString(name).endsWith(".secure"); } } Loading Loading @@ -562,6 +564,12 @@ status_t OMXNodeInstance::enableNativeBuffers( } else if (mSecureBufferType[portIndex] == kSecureBufferTypeUnknown) { } else if (mSecureBufferType[portIndex] == kSecureBufferTypeUnknown) { mSecureBufferType[portIndex] = kSecureBufferTypeOpaque; mSecureBufferType[portIndex] = kSecureBufferTypeOpaque; } } } else { if (err == OMX_ErrorNone) { mGraphicBufferEnabled[portIndex] = enable; } else if (enable) { mGraphicBufferEnabled[portIndex] = false; } } } } else { } else { CLOG_ERROR_IF(enable, getExtensionIndex, err, "%s", name); CLOG_ERROR_IF(enable, getExtensionIndex, err, "%s", name); Loading Loading @@ -798,6 +806,13 @@ status_t OMXNodeInstance::useBuffer( return BAD_VALUE; return BAD_VALUE; } } if (mMetadataType[portIndex] == kMetadataBufferTypeInvalid && mGraphicBufferEnabled[portIndex]) { ALOGE("b/62948670"); android_errorWriteLog(0x534e4554, "62948670"); return INVALID_OPERATION; } // metadata buffers are not connected cross process // metadata buffers are not connected cross process // use a backup buffer instead of the actual buffer // use a backup buffer instead of the actual buffer BufferMeta *buffer_meta; BufferMeta *buffer_meta; Loading Loading @@ -916,6 +931,13 @@ status_t OMXNodeInstance::useGraphicBuffer( return BAD_VALUE; return BAD_VALUE; } } Mutex::Autolock autoLock(mLock); Mutex::Autolock autoLock(mLock); if (!mGraphicBufferEnabled[portIndex] || mMetadataType[portIndex] != kMetadataBufferTypeInvalid) { // 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. // See if the newer version of the extension is present. OMX_INDEXTYPE index; OMX_INDEXTYPE index; Loading