diff options
author | Andreas Huber <andih@google.com> | 2012-09-13 16:43:51 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-09-13 16:43:51 -0700 |
commit | 496238cc7551d414067dcbbb4fe3bd801f205f95 (patch) | |
tree | 90e4402e792c22804bf42f6f773c97e57d06e5dc /media/libstagefright/wifi-display/source/Converter.cpp | |
parent | f4bca03d996b584030a80268f58cdb29dc7b7cde (diff) | |
download | frameworks_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.cpp | 21 |
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 |