summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/wifi-display
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2013-02-07 10:56:14 -0800
committerAndreas Huber <andih@google.com>2013-02-07 10:56:14 -0800
commitc71601c3b1dd63afc9be462194809813e4dbacf1 (patch)
treef91f7e9da453d188934ef99d136f2606a52fe3d9 /media/libstagefright/wifi-display
parent0955986e6c1c27ba752e293246086ea79c49d39c (diff)
downloadframeworks_av-c71601c3b1dd63afc9be462194809813e4dbacf1.zip
frameworks_av-c71601c3b1dd63afc9be462194809813e4dbacf1.tar.gz
frameworks_av-c71601c3b1dd63afc9be462194809813e4dbacf1.tar.bz2
Allow for dynamic reconfiguration of the video bitrate used
to encode video while running as a wfd source. Change-Id: I44f7b2350c88fc5807047c61bfe594ef8fa79275
Diffstat (limited to 'media/libstagefright/wifi-display')
-rw-r--r--media/libstagefright/wifi-display/source/Converter.cpp14
-rw-r--r--media/libstagefright/wifi-display/source/Converter.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/media/libstagefright/wifi-display/source/Converter.cpp b/media/libstagefright/wifi-display/source/Converter.cpp
index 5628dec..376b0df 100644
--- a/media/libstagefright/wifi-display/source/Converter.cpp
+++ b/media/libstagefright/wifi-display/source/Converter.cpp
@@ -54,6 +54,7 @@ Converter::Converter(
,mFirstSilentFrameUs(-1ll)
,mInSilentMode(false)
#endif
+ ,mPrevVideoBitrate(-1)
{
AString mime;
CHECK(mInputFormat->findString("mime", &mime));
@@ -185,6 +186,7 @@ status_t Converter::initEncoder() {
int32_t audioBitrate = getBitrate("media.wfd.audio-bitrate", 128000);
int32_t videoBitrate = getBitrate("media.wfd.video-bitrate", 5000000);
+ mPrevVideoBitrate = videoBitrate;
ALOGI("using audio bitrate of %d bps, video bitrate of %d bps",
audioBitrate, videoBitrate);
@@ -606,6 +608,18 @@ status_t Converter::feedEncoderInputBuffers() {
}
status_t Converter::doMoreWork() {
+ if (mIsVideo) {
+ int32_t videoBitrate = getBitrate("media.wfd.video-bitrate", 5000000);
+ if (videoBitrate != mPrevVideoBitrate) {
+ sp<AMessage> params = new AMessage;
+
+ params->setInt32("videoBitrate", videoBitrate);
+ mEncoder->setParameters(params);
+
+ mPrevVideoBitrate = videoBitrate;
+ }
+ }
+
status_t err;
for (;;) {
diff --git a/media/libstagefright/wifi-display/source/Converter.h b/media/libstagefright/wifi-display/source/Converter.h
index 3357d61..57802bd 100644
--- a/media/libstagefright/wifi-display/source/Converter.h
+++ b/media/libstagefright/wifi-display/source/Converter.h
@@ -100,6 +100,8 @@ private:
sp<ABuffer> mPartialAudioAU;
+ int32_t mPrevVideoBitrate;
+
status_t initEncoder();
void releaseEncoder();