summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaCodec.cpp
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
commita2eb22c1de262aa3fa7c356537ac2fe165afdf3d (patch)
treef57c26037ae32118055eb48bb8ad8275faa55841 /media/libstagefright/MediaCodec.cpp
parenta0dd006834f4a424b67773ab6724e961a61de923 (diff)
downloadframeworks_av-a2eb22c1de262aa3fa7c356537ac2fe165afdf3d.zip
frameworks_av-a2eb22c1de262aa3fa7c356537ac2fe165afdf3d.tar.gz
frameworks_av-a2eb22c1de262aa3fa7c356537ac2fe165afdf3d.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/MediaCodec.cpp')
-rw-r--r--media/libstagefright/MediaCodec.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp
index cb8a651..77aceb7 100644
--- a/media/libstagefright/MediaCodec.cpp
+++ b/media/libstagefright/MediaCodec.cpp
@@ -1203,6 +1203,23 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) {
break;
}
+ case kWhatSetParameters:
+ {
+ uint32_t replyID;
+ CHECK(msg->senderAwaitsResponse(&replyID));
+
+ sp<AMessage> params;
+ CHECK(msg->findMessage("params", &params));
+
+ status_t err = onSetParameters(params);
+
+ sp<AMessage> response = new AMessage;
+ response->setInt32("err", err);
+
+ response->postReply(replyID);
+ break;
+ }
+
default:
TRESPASS();
}
@@ -1556,4 +1573,18 @@ void MediaCodec::postActivityNotificationIfPossible() {
}
}
+status_t MediaCodec::setParameters(const sp<AMessage> &params) {
+ sp<AMessage> msg = new AMessage(kWhatSetParameters, id());
+ msg->setMessage("params", params);
+
+ sp<AMessage> response;
+ return PostAndAwaitResponse(msg, &response);
+}
+
+status_t MediaCodec::onSetParameters(const sp<AMessage> &params) {
+ mCodec->signalSetParameters(params);
+
+ return OK;
+}
+
} // namespace android