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

Commit 087ff384 authored by Lajos Molnar's avatar Lajos Molnar
Browse files

IOMX: restrict conversion of ANWB to gralloc source in emptyBuffer

This is only allowed in-process (if backup and codec buffers are
connected.)

Bug: 29422020
Bug: 31412859
Change-Id: If48e3e0b6f1af99a459fdc3f6f03744bbf0dc375
parent 38071a69
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -167,6 +167,10 @@ struct BufferMeta {
        return buf;
    }

    bool copyToOmx() const {
        return mCopyToOmx;
    }

    void setGraphicBuffer(const sp<GraphicBuffer> &graphicBuffer) {
        mGraphicBuffer = graphicBuffer;
    }
@@ -788,7 +792,7 @@ status_t OMXNodeInstance::useBuffer(
                params, portIndex, false /* copyToOmx */, false /* copyFromOmx */, data);
    } else {
        buffer_meta = new BufferMeta(
                params, portIndex, false /* copyFromOmx */, false /* copyToOmx */, NULL);
                params, portIndex, false /* copyToOmx */, false /* copyFromOmx */, NULL);
    }

    OMX_BUFFERHEADERTYPE *header;
@@ -1277,7 +1281,8 @@ status_t OMXNodeInstance::emptyBuffer(

    // convert incoming ANW meta buffers if component is configured for gralloc metadata mode
    // ignore rangeOffset in this case
    if (mMetadataType[kPortIndexInput] == kMetadataBufferTypeGrallocSource
    if (buffer_meta->copyToOmx()
            && mMetadataType[kPortIndexInput] == kMetadataBufferTypeGrallocSource
            && backup->capacity() >= sizeof(VideoNativeMetadata)
            && codec->capacity() >= sizeof(VideoGrallocMetadata)
            && ((VideoNativeMetadata *)backup->base())->eType