summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/wifi-display/source/Converter.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-09-13 16:43:51 -0700
committerAndreas Huber <andih@google.com>2012-09-13 16:43:51 -0700
commit496238cc7551d414067dcbbb4fe3bd801f205f95 (patch)
tree90e4402e792c22804bf42f6f773c97e57d06e5dc /media/libstagefright/wifi-display/source/Converter.cpp
parentf4bca03d996b584030a80268f58cdb29dc7b7cde (diff)
downloadframeworks_av-496238cc7551d414067dcbbb4fe3bd801f205f95.zip
frameworks_av-496238cc7551d414067dcbbb4fe3bd801f205f95.tar.gz
frameworks_av-496238cc7551d414067dcbbb4fe3bd801f205f95.tar.bz2
Support IDR requests in wifi display, MediaCodec and ACodec.
Change-Id: I596cf8dd61b63465437f78413186fad2be287244
Diffstat (limited to 'media/libstagefright/wifi-display/source/Converter.cpp')
-rw-r--r--media/libstagefright/wifi-display/source/Converter.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/media/libstagefright/wifi-display/source/Converter.cpp b/media/libstagefright/wifi-display/source/Converter.cpp
index c4845e3..390b2e2 100644
--- a/media/libstagefright/wifi-display/source/Converter.cpp
+++ b/media/libstagefright/wifi-display/source/Converter.cpp
@@ -40,7 +40,15 @@ Converter::Converter(
mNotify(notify),
mCodecLooper(codecLooper),
mInputFormat(format),
+ mIsVideo(false),
mDoMoreWorkPending(false) {
+ AString mime;
+ CHECK(mInputFormat->findString("mime", &mime));
+
+ if (!strncasecmp("video/", mime.c_str(), 6)) {
+ mIsVideo = true;
+ }
+
mInitCheck = initEncoder();
}
@@ -202,6 +210,15 @@ void Converter::onMessageReceived(const sp<AMessage> &msg) {
break;
}
+ case kWhatRequestIDRFrame:
+ {
+ if (mIsVideo) {
+ ALOGI("requesting IDR frame");
+ mEncoder->requestIDRFrame();
+ }
+ break;
+ }
+
default:
TRESPASS();
}
@@ -306,5 +323,9 @@ status_t Converter::doMoreWork() {
return err;
}
+void Converter::requestIDRFrame() {
+ (new AMessage(kWhatRequestIDRFrame, id()))->post();
+}
+
} // namespace android