Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a3f4e31 authored by Dongwon Kang's avatar Dongwon Kang Committed by android-build-merger
Browse files

Merge "Track graphic buffer mode in OMXNodeInstance" into nyc-dev am:...

Merge "Track graphic buffer mode in OMXNodeInstance" into nyc-dev am: df11b20f am: fbaadabf am: 3e2eac8b
am: 0c799a51

Change-Id: Ic526f0640f99a7c71eec90bf866479cc7e3b3963
parents 5c1e5ec1 0c799a51
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -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,
@@ -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;
+22 −0
Original line number Original line Diff line number Diff line
@@ -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");
}
}


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