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

Commit 17fd5278 authored by David Yeh's avatar David Yeh Committed by Lajos Molnar
Browse files

stagefright: provide consumer usage hint to consumers that request it

Test: manual

Bug: 23471732
Change-Id: I41f7f0201d3676adf29b0a2ae017107b4675b07f
(cherry picked from commit c0a0e4c2261c6bcf5cb37297b8cf949c9c51a5c8)
(cherry picked from commit 3c665512fc867481bfbaa164fe817c83b1062112)
(cherry picked from commit d3d5eb6b63c79a990866fbd46fc06e8dd138f8b9)
parent 24fd2f7d
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -1063,6 +1063,34 @@ status_t ACodec::setupNativeWindowSizeFormatAndUsage(
        return err;
    }

    OMX_INDEXTYPE index;
    err = mOMXNode->getExtensionIndex(
            "OMX.google.android.index.AndroidNativeBufferConsumerUsage",
            &index);

    if (err != OK) {
        // allow failure
        err = OK;
    } else {
        int usageBits = 0;
        if (nativeWindow->query(
                nativeWindow,
                NATIVE_WINDOW_CONSUMER_USAGE_BITS,
                &usageBits) == OK) {
            OMX_PARAM_U32TYPE params;
            InitOMXParams(&params);
            params.nPortIndex = kPortIndexOutput;
            params.nU32 = (OMX_U32)usageBits;

            err = mOMXNode->setParameter(index, &params, sizeof(params));

            if (err != OK) {
                ALOGE("Fail to set AndroidNativeBufferConsumerUsage: %d", err);
                return err;
            }
        }
    }

    OMX_U32 usage = 0;
    err = mOMXNode->getGraphicBufferUsage(kPortIndexOutput, &usage);
    if (err != 0) {