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

Commit 71cbb9d4 authored by Harish Mahendrakar's avatar Harish Mahendrakar Committed by Wonsik Kim
Browse files

CCodecConfig: Fix mapping to bitrate-mode

bitrate-mode was not mapped from c2 params to sdk params

Also fix typecast of bitrate mode while checking config params
for quality/bitrate. It was wrongly typecast to c2 enum

Test: Manual using a test application using AMediaCodec api
Bug: 133241887

Change-Id: I2544a7cbb4001152197b9ec164fe94b1a6da40d3
parent 88665c48
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -745,11 +745,8 @@ void CCodec::configure(const sp<AMessage> &msg) {
                return BAD_VALUE;
            }
            if ((config->mDomain & Config::IS_ENCODER) && (config->mDomain & Config::IS_VIDEO)) {
                C2Config::bitrate_mode_t mode = C2Config::BITRATE_VARIABLE;
                if (msg->findInt32(KEY_BITRATE_MODE, &i32)) {
                    mode = (C2Config::bitrate_mode_t) i32;
                }
                if (mode == BITRATE_MODE_CQ) {
                int32_t mode = BITRATE_MODE_VBR;
                if (msg->findInt32(KEY_BITRATE_MODE, &mode) && mode == BITRATE_MODE_CQ) {
                    if (!msg->findInt32(KEY_QUALITY, &i32)) {
                        ALOGD("quality is missing, which is required for video encoders in CQ.");
                        return BAD_VALUE;
+1 −8
Original line number Diff line number Diff line
@@ -358,14 +358,7 @@ void CCodecConfig::initializeStandardParams() {
        .limitTo(D::ENCODER & D::VIDEO & D::PARAM));
    add(ConfigMapper(KEY_BITRATE_MODE, C2_PARAMKEY_BITRATE_MODE, "value")
        .limitTo(D::ENCODER & D::CODED)
        .withMapper([](C2Value v) -> C2Value {
            int32_t value;
            C2Config::bitrate_mode_t mode;
            if (v.get(&value) && C2Mapper::map(value, &mode)) {
                return mode;
            }
            return C2Value();
        }));
        .withC2Mappers<C2Config::bitrate_mode_t>());
    // remove when codecs switch to PARAMKEY and new modes
    deprecated(ConfigMapper(KEY_BITRATE_MODE, "coded.bitrate-mode", "value")
               .limitTo(D::ENCODER));