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

Commit dbfe2808 authored by Wonsik Kim's avatar Wonsik Kim Committed by Automerger Merge Worker
Browse files

Merge "C2 mpeg4enc: Support dynamic bitrate change" am: 0253bf76 am: e3b75d44 am: 0910a147

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1634304

Change-Id: I0abbb227b1ed4931458a4c46e83a3c2d3f392f1f
parents 11ff39d1 0910a147
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -448,6 +448,20 @@ void C2SoftMpeg4Enc::process(
        work->worklets.front()->output.configUpdate.push_back(std::move(csd));
    }

    // handle dynamic bitrate change
    {
        IntfImpl::Lock lock = mIntf->lock();
        std::shared_ptr<C2StreamBitrateInfo::output> bitrate = mIntf->getBitrate_l();
        lock.unlock();

        if (bitrate != mBitrate) {
            mBitrate = bitrate;
            int layerBitrate[2] = {static_cast<int>(mBitrate->value), 0};
            ALOGV("Calling PVUpdateBitRate %d", layerBitrate[0]);
            PVUpdateBitRate(mHandle, layerBitrate);
        }
    }

    std::shared_ptr<const C2GraphicView> rView;
    std::shared_ptr<C2Buffer> inputBuffer;
    bool eos = ((work->input.flags & C2FrameData::FLAG_END_OF_STREAM) != 0);
+0 −5
Original line number Diff line number Diff line
@@ -527,11 +527,9 @@ OSCL_EXPORT_REF Bool PVInitVideoEncoder(VideoEncControls *encoderControl, Vid
    }

    /* check bit rate */
    /* set max bit rate */
    for (i = 0; i < encParams->nLayers; i++)
    {
        encParams->LayerBitRate[i] = encOption->bitRate[i];
        encParams->LayerMaxBitRate[i] = encOption->bitRate[i];
    }
    if (encParams->nLayers > 1)
    {
@@ -3305,6 +3303,3 @@ Bool SetProfile_BufferSize(VideoEncData *video, float delay, Int bInitialized)
}

#endif /* #ifndef ORIGINAL_VERSION */