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

Commit 44b59fd9 authored by Andreas Huber's avatar Andreas Huber
Browse files

Audio and video bitrate are now configurable through system properties

adb shell setprop media.wfd.audio-bitrate 64000
adb shell setprop media.wfd.video-bitrate 10000000

are the defaults.

Change-Id: Ib4d700748bdac2adffc6e7e31aff9c9f998e20f0
parent bdde5f88
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@

#include "Converter.h"

#include <cutils/properties.h>
#include <gui/SurfaceTextureClient.h>
#include <media/ICrypto.h>
#include <media/stagefright/foundation/ABuffer.h>
@@ -62,6 +63,20 @@ sp<AMessage> Converter::getOutputFormat() const {
    return mOutputFormat;
}

static int32_t getBitrate(const char *propName, int32_t defaultValue) {
    char val[PROPERTY_VALUE_MAX];
    if (property_get(propName, val, NULL)) {
        char *end;
        unsigned long x = strtoul(val, &end, 10);

        if (*end == '\0' && end > val && x > 0) {
            return x;
        }
    }

    return defaultValue;
}

status_t Converter::initEncoder() {
    AString inputMIME;
    CHECK(mInputFormat->findString("mime", &inputMIME));
@@ -87,10 +102,16 @@ status_t Converter::initEncoder() {
    mOutputFormat = mInputFormat->dup();
    mOutputFormat->setString("mime", outputMIME.c_str());

    int32_t audioBitrate = getBitrate("media.wfd.audio-bitrate", 64000);
    int32_t videoBitrate = getBitrate("media.wfd.video-bitrate", 10000000);

    ALOGI("using audio bitrate of %d bps, video bitrate of %d bps",
          audioBitrate, videoBitrate);

    if (isAudio) {
        mOutputFormat->setInt32("bitrate", 64000);      // 64 kBit/sec
        mOutputFormat->setInt32("bitrate", audioBitrate);
    } else {
        mOutputFormat->setInt32("bitrate", 10000000);    // 10Mbit/sec
        mOutputFormat->setInt32("bitrate", videoBitrate);
        mOutputFormat->setInt32("frame-rate", 60);
        mOutputFormat->setInt32("i-frame-interval", 3);  // Iframes every 3 secs
    }