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 Original line Diff line number Diff line
@@ -157,8 +157,9 @@ 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 mode tracking
    // metadata and graphic buffer mode tracking
    bool mUsingMetadata[2];
    bool mUsingMetadata[2];
    bool mGraphicBufferEnabled[2];


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


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


@@ -746,6 +753,12 @@ status_t OMXNodeInstance::useBuffer(
        return BAD_VALUE;
        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
    // metadata buffers are not connected cross process
    BufferMeta *buffer_meta;
    BufferMeta *buffer_meta;
    bool isMeta = mUsingMetadata[portIndex];
    bool isMeta = mUsingMetadata[portIndex];
@@ -855,6 +868,12 @@ status_t OMXNodeInstance::useGraphicBuffer(
        OMX_U32 portIndex, const sp<GraphicBuffer>& graphicBuffer,
        OMX_U32 portIndex, const sp<GraphicBuffer>& graphicBuffer,
        OMX::buffer_id *buffer) {
        OMX::buffer_id *buffer) {
    Mutex::Autolock autoLock(mLock);
    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.
    // See if the newer version of the extension is present.
    OMX_INDEXTYPE index;
    OMX_INDEXTYPE index;