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

Commit 94c1663e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Track graphic buffer mode in OMXNodeInstance" into lmp-mr1-dev

parents d566fb1c de9f42ea
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -157,8 +157,9 @@ private:
    KeyedVector<OMX::buffer_id, OMX_BUFFERHEADERTYPE *> mBufferIDToBufferHeader;
    KeyedVector<OMX_BUFFERHEADERTYPE *, OMX::buffer_id> mBufferHeaderToBufferID;

    // metadata mode tracking
    // metadata and graphic buffer mode tracking
    bool mUsingMetadata[2];
    bool mGraphicBufferEnabled[2];

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

@@ -542,6 +544,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);
}

@@ -746,6 +753,12 @@ status_t OMXNodeInstance::useBuffer(
        return BAD_VALUE;
    }

    if (!mUsingMetadata[portIndex] && mGraphicBufferEnabled[portIndex]) {
        ALOGE("b/62948670");
        android_errorWriteLog(0x534e4554, "62948670");
        return INVALID_OPERATION;
    }

    // metadata buffers are not connected cross process
    BufferMeta *buffer_meta;
    bool isMeta = mUsingMetadata[portIndex];
@@ -855,6 +868,12 @@ status_t OMXNodeInstance::useGraphicBuffer(
        OMX_U32 portIndex, const sp<GraphicBuffer>& graphicBuffer,
        OMX::buffer_id *buffer) {
    Mutex::Autolock autoLock(mLock);
    if (!mGraphicBufferEnabled[portIndex] || mUsingMetadata[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;