summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/wifi-display/source/Converter.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-09-12 14:06:17 -0700
committerAndreas Huber <andih@google.com>2012-09-13 09:23:45 -0700
commit44b59fd9326026d3f82dec25cde48c589b0438e7 (patch)
treeabc475ac3d253a0e935cf61a561e852f569342f5 /media/libstagefright/wifi-display/source/Converter.cpp
parentbdde5f884eaf270ab4b806849f3122a46cd872ce (diff)
downloadframeworks_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.cpp25
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
}