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

Commit 57fad3c3 authored by Lajos Molnar's avatar Lajos Molnar
Browse files

IOMX: add dataspace to createInputSurface

Bug: 25684127
Change-Id: Ibe746d7d077f32b0f2ecfb8494f415a6bf0bd673
parent 0c07db6e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ public:
    // This will set *type to resulting metadata buffer type on OMX error (not on binder error) as
    // well as on success.
    virtual status_t createInputSurface(
            node_id node, OMX_U32 port_index,
            node_id node, OMX_U32 port_index, android_dataspace dataSpace,
            sp<IGraphicBufferProducer> *bufferProducer,
            MetadataBufferType *type = NULL) = 0;

+4 −2
Original line number Diff line number Diff line
@@ -313,13 +313,14 @@ public:
    }

    virtual status_t createInputSurface(
            node_id node, OMX_U32 port_index,
            node_id node, OMX_U32 port_index, android_dataspace dataSpace,
            sp<IGraphicBufferProducer> *bufferProducer, MetadataBufferType *type) {
        Parcel data, reply;
        status_t err;
        data.writeInterfaceToken(IOMX::getInterfaceDescriptor());
        data.writeInt32((int32_t)node);
        data.writeInt32(port_index);
        data.writeInt32(dataSpace);
        err = remote()->transact(CREATE_INPUT_SURFACE, data, &reply);
        if (err != OK) {
            ALOGW("binder transaction failed: %d", err);
@@ -908,10 +909,11 @@ status_t BnOMX::onTransact(

            node_id node = (node_id)data.readInt32();
            OMX_U32 port_index = data.readInt32();
            android_dataspace dataSpace = (android_dataspace)data.readInt32();

            sp<IGraphicBufferProducer> bufferProducer;
            MetadataBufferType type = kMetadataBufferTypeInvalid;
            status_t err = createInputSurface(node, port_index, &bufferProducer, &type);
            status_t err = createInputSurface(node, port_index, dataSpace, &bufferProducer, &type);

            if ((err != OK) && (type == kMetadataBufferTypeInvalid)) {
                android_errorWriteLog(0x534e4554, "26324358");
+3 −1
Original line number Diff line number Diff line
@@ -6105,9 +6105,11 @@ void ACodec::LoadedState::onCreateInputSurface(
    sp<AMessage> notify = mCodec->mNotify->dup();
    notify->setInt32("what", CodecBase::kWhatInputSurfaceCreated);

    android_dataspace dataSpace = HAL_DATASPACE_UNKNOWN;

    sp<IGraphicBufferProducer> bufferProducer;
    status_t err = mCodec->mOMX->createInputSurface(
            mCodec->mNode, kPortIndexInput, &bufferProducer, &mCodec->mInputMetadataType);
            mCodec->mNode, kPortIndexInput, dataSpace, &bufferProducer, &mCodec->mInputMetadataType);

    if (err == OK) {
        err = setupInputSurface();
+3 −3
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ struct MuxOMX : public IOMX {
            const sp<GraphicBuffer> &graphicBuffer, buffer_id buffer);

    virtual status_t createInputSurface(
            node_id node, OMX_U32 port_index,
            node_id node, OMX_U32 port_index, android_dataspace dataSpace,
            sp<IGraphicBufferProducer> *bufferProducer, MetadataBufferType *type);

    virtual status_t createPersistentInputSurface(
@@ -388,10 +388,10 @@ status_t MuxOMX::updateGraphicBufferInMeta(
}

status_t MuxOMX::createInputSurface(
        node_id node, OMX_U32 port_index,
        node_id node, OMX_U32 port_index, android_dataspace dataSpace,
        sp<IGraphicBufferProducer> *bufferProducer, MetadataBufferType *type) {
    status_t err = getOMX(node)->createInputSurface(
            node, port_index, bufferProducer, type);
            node, port_index, dataSpace, bufferProducer, type);
    return err;
}

+1 −1
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ public:
            const sp<GraphicBuffer> &graphicBuffer, buffer_id buffer);

    virtual status_t createInputSurface(
            node_id node, OMX_U32 port_index,
            node_id node, OMX_U32 port_index, android_dataspace dataSpace,
            sp<IGraphicBufferProducer> *bufferProducer,
            MetadataBufferType *type);

Loading