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

Commit 5099027f authored by Ian Kasprzak's avatar Ian Kasprzak
Browse files

Revert "GraphicBufferSource: Use 64bit consumer usage"

This reverts commit b6caaf8d.

Reason for revert: b/295498401- AOSP phones not booting

Passing with revert: go/forrest-run/L01600000962534617

Change-Id: I856c6e303cad907c05e522bcd76672b2104ee19f
parent b6caaf8d
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1683,8 +1683,8 @@ c2_status_t Codec2Client::Component::setOutputSurface(
    uint64_t consumerUsage = kDefaultConsumerUsage;
    {
        if (surface) {
            uint64_t usage = 0;
            status_t err = surface->getConsumerUsage(&usage);
            int usage = 0;
            status_t err = surface->query(NATIVE_WINDOW_CONSUMER_USAGE_BITS, &usage);
            if (err != NO_ERROR) {
                ALOGD("setOutputSurface -- failed to get consumer usage bits (%d/%s). ignoring",
                        err, asString(err));
@@ -1697,7 +1697,8 @@ c2_status_t Codec2Client::Component::setOutputSurface(
                // they do not exist inside of C2 scope. Any buffer usage shall be communicated
                // through the sideband channel.

                consumerUsage = usage | kDefaultConsumerUsage;
                // do an unsigned conversion as bit-31 may be 1
                consumerUsage = (uint32_t)usage | kDefaultConsumerUsage;
            }
        }

+1 −1
Original line number Diff line number Diff line
@@ -145,7 +145,7 @@ struct InputSurfaceConnection::Impl : public ComponentWrapper {
        //         C2AndroidMemoryUsage(C2MemoryUsage(usage.value)).
        //         asGrallocUsage();

        uint64_t grallocUsage =
        uint32_t grallocUsage =
                mSinkName.compare(0, 11, "c2.android.") == 0 ?
                GRALLOC_USAGE_SW_READ_OFTEN :
                GRALLOC_USAGE_HW_VIDEO_ENCODER;
+0 −13
Original line number Diff line number Diff line
@@ -230,12 +230,6 @@ status_t C2OMXNode::getParameter(OMX_INDEXTYPE index, void *params, size_t size)
            err = OK;
            break;
        }
        case OMX_IndexParamConsumerUsageBits64: {
            OMX_U64 *usage = (OMX_U64 *)params;
            *usage = mUsage;
            err = OK;
            break;
        }
        case OMX_IndexParamPortDefinition: {
            if (size < sizeof(OMX_PARAM_PORTDEFINITIONTYPE)) {
                return BAD_VALUE;
@@ -299,13 +293,6 @@ status_t C2OMXNode::setParameter(OMX_INDEXTYPE index, const void *params, size_t
            }
            mUsage = *((OMX_U32 *)params);
            return OK;

        case OMX_IndexParamConsumerUsageBits64:
            if (size != sizeof(OMX_U64)) {
                return BAD_VALUE;
            }
            mUsage = *((OMX_U64 *)params);
            return OK;
    }
    return ERROR_UNSUPPORTED;
}
+5 −12
Original line number Diff line number Diff line
@@ -206,19 +206,12 @@ public:
        mNode = new C2OMXNode(comp);
        mOmxNode = new hardware::media::omx::V1_0::utils::TWOmxNode(mNode);
        mNode->setFrameSize(mWidth, mHeight);
        // Usage is queried during configure(), so setting it beforehand.
        // 64 bit set parameter is existing only in C2OMXNode.
        OMX_U64 usage64 = mConfig.mUsage;
        status_t res = mNode->setParameter(
                (OMX_INDEXTYPE)OMX_IndexParamConsumerUsageBits64,
                &usage64, sizeof(usage64));

        if (res != OK) {
        // Usage is queried during configure(), so setting it beforehand.
        OMX_U32 usage = mConfig.mUsage & 0xFFFFFFFF;
        (void)mNode->setParameter(
                (OMX_INDEXTYPE)OMX_IndexParamConsumerUsageBits,
                &usage, sizeof(usage));
        }

        return GetStatus(mSource->configure(
                mOmxNode, static_cast<hardware::graphics::common::V1_0::Dataspace>(mDataSpace)));
+3 −20
Original line number Diff line number Diff line
@@ -143,7 +143,7 @@ Return<Status> TWGraphicBufferSource::configure(

    // use consumer usage bits queried from encoder, but always add
    // HW_VIDEO_ENCODER for backward compatibility.
    uint64_t  consumerUsage;
    uint32_t  consumerUsage;
    void *_params = &consumerUsage;
    uint8_t *params = static_cast<uint8_t*>(_params);
    fnStatus = UNKNOWN_ERROR;
@@ -155,32 +155,15 @@ Return<Status> TWGraphicBufferSource::configure(
                        outParams.data() + outParams.size(),
                        params);
            });

    // try 64 bit consumer usage first
    auto transStatus = omxNode->getParameter(
            static_cast<uint32_t>(OMX_IndexParamConsumerUsageBits64),
            inHidlBytes(&consumerUsage, sizeof(consumerUsage)),
            _hidl_cb);
    if (!transStatus.isOk()) {
        return toStatus(FAILED_TRANSACTION);
    }
    if (fnStatus != OK) {
        // try 32 bit consumer usage upon failure
        uint32_t usage;
        _params = &usage;
        params = static_cast<uint8_t*>(_params);
        transStatus = omxNode->getParameter(
            static_cast<uint32_t>(OMX_IndexParamConsumerUsageBits),
                inHidlBytes(&usage, sizeof(usage)),
            inHidlBytes(&consumerUsage, sizeof(consumerUsage)),
            _hidl_cb);
    if (!transStatus.isOk()) {
        return toStatus(FAILED_TRANSACTION);
    }
    if (fnStatus != OK) {
        consumerUsage = 0;
        } else {
            consumerUsage = usage;
        }
    }

    OMX_PARAM_PORTDEFINITIONTYPE def;
Loading