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

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

Merge "Track graphic buffer mode in OMXNodeInstance" into mnc-dev

am: 659a498c

Change-Id: If10318296ec8fbb5448e37e639ca5b031db5a912
parents b7d875f5 659a498c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -170,6 +170,7 @@ private:
    KeyedVector<OMX::buffer_id, OMX_BUFFERHEADERTYPE *> mBufferIDToBufferHeader;
    KeyedVector<OMX_BUFFERHEADERTYPE *, OMX::buffer_id> mBufferHeaderToBufferID;
    MetadataBufferType mMetadataType[2];
    bool mGraphicBufferEnabled[2];

    // For debug support
    char *mName;
+21 −0
Original line number Diff line number Diff line
@@ -233,6 +233,8 @@ OMXNodeInstance::OMXNodeInstance(
    mDebugLevelBumpPendingBuffers[1] = 0;
    mMetadataType[0] = kMetadataBufferTypeInvalid;
    mMetadataType[1] = kMetadataBufferTypeInvalid;
    mGraphicBufferEnabled[0] = false;
    mGraphicBufferEnabled[1] = false;
    mIsSecure = AString(name).endsWith(".secure");
}

@@ -572,6 +574,11 @@ status_t OMXNodeInstance::enableGraphicBuffers(
    err = OMX_SetParameter(mHandle, index, &params);
    CLOG_IF_ERROR(setParameter, err, "%s(%#x): %s:%u en=%d", name, index,
            portString(portIndex), portIndex, enable);
    if (err == OMX_ErrorNone) {
        mGraphicBufferEnabled[portIndex] = enable;
    } else if (enable) {
        mGraphicBufferEnabled[portIndex] = false;
    }
    return StatusFromOMXError(err);
}

@@ -775,6 +782,13 @@ status_t OMXNodeInstance::useBuffer(
        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
    BufferMeta *buffer_meta;
    bool isMeta = mMetadataType[portIndex] != kMetadataBufferTypeInvalid;
@@ -885,6 +899,13 @@ status_t OMXNodeInstance::useGraphicBuffer(
        OMX_U32 portIndex, const sp<GraphicBuffer>& graphicBuffer,
        OMX::buffer_id *buffer) {
    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.
    OMX_INDEXTYPE index;