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

Commit 34d66018 authored by Wonsik Kim's avatar Wonsik Kim
Browse files

CCodec: move lower-res workaround to C2OMXNode

Bug: 177496388
Test: slow-motion recording
Test: atest CtsCameraTestCases:RecordingTest
Change-Id: If319a8c0cea93d92688b7df800a232dfe7797c30
parent 353d2e39
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -209,16 +209,24 @@ status_t C2OMXNode::getParameter(OMX_INDEXTYPE index, void *params, size_t size)

            pDef->nBufferCountActual = 16;

            // WORKAROUND: having more slots improve performance while consuming
            // more memory. This is a temporary workaround to reduce memory for
            // larger-than-4K scenario.
            if (mWidth * mHeight > 4096 * 2340) {
                std::shared_ptr<Codec2Client::Component> comp = mComp.lock();
                C2PortActualDelayTuning::input inputDelay(0);
                C2ActualPipelineDelayTuning pipelineDelay(0);
            c2_status_t c2err = comp->query(
                c2_status_t c2err = C2_NOT_FOUND;
                if (comp) {
                    c2err = comp->query(
                            {&inputDelay, &pipelineDelay}, {}, C2_DONT_BLOCK, nullptr);
                }
                if (c2err == C2_OK || c2err == C2_BAD_INDEX) {
                    pDef->nBufferCountActual = 4;
                    pDef->nBufferCountActual += (inputDelay ? inputDelay.value : 0u);
                    pDef->nBufferCountActual += (pipelineDelay ? pipelineDelay.value : 0u);
                }
            }

            pDef->eDomain = OMX_PortDomainVideo;
            pDef->format.video.nFrameWidth = mWidth;
+8 −13
Original line number Diff line number Diff line
@@ -248,10 +248,6 @@ public:
        }

        size_t numSlots = 16;
        // WORKAROUND: having more slots improve performance while consuming
        // more memory. This is a temporary workaround to reduce memory for
        // larger-than-4K scenario.
        if (mWidth * mHeight > 4096 * 2340) {
        constexpr OMX_U32 kPortIndexInput = 0;

        OMX_PARAM_PORTDEFINITIONTYPE param;
@@ -261,7 +257,6 @@ public:
        if (err == OK) {
            numSlots = param.nBufferCountActual;
        }
        }

        for (size_t i = 0; i < numSlots; ++i) {
            source->onInputBufferAdded(i);