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

Commit 659a498c authored by Dongwon Kang's avatar Dongwon Kang Committed by Android (Google) Code Review
Browse files

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

parents 395c7417 0caad536
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;