diff options
author | Andreas Huber <andih@google.com> | 2012-09-12 14:06:17 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-09-13 09:23:45 -0700 |
commit | 44b59fd9326026d3f82dec25cde48c589b0438e7 (patch) | |
tree | abc475ac3d253a0e935cf61a561e852f569342f5 /media/libstagefright/wifi-display/source/Converter.cpp | |
parent | bdde5f884eaf270ab4b806849f3122a46cd872ce (diff) | |
download | frameworks_av-44b59fd9326026d3f82dec25cde48c589b0438e7.zip frameworks_av-44b59fd9326026d3f82dec25cde48c589b0438e7.tar.gz frameworks_av-44b59fd9326026d3f82dec25cde48c589b0438e7.tar.bz2 |
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
Diffstat (limited to 'media/libstagefright/wifi-display/source/Converter.cpp')
-rw-r--r-- | media/libstagefright/wifi-display/source/Converter.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/media/libstagefright/wifi-display/source/Converter.cpp b/media/libstagefright/wifi-display/source/Converter.cpp index 0b29df9..7c3b908 100644 --- a/media/libstagefright/wifi-display/source/Converter.cpp +++ b/media/libstagefright/wifi-display/source/Converter.cpp @@ -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 } |