summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2013-03-28 11:16:43 -0700
committerAndreas Huber <andih@google.com>2013-03-28 11:16:43 -0700
commitd477b8d071826c0768620f7ac302f31d8b12b1ca (patch)
treef0f1ef3e79628a776e07bad575fe713019eebd76 /media
parent681be0398a06da7e24db4ed934a92af64d1409b1 (diff)
downloadframeworks_av-d477b8d071826c0768620f7ac302f31d8b12b1ca.zip
frameworks_av-d477b8d071826c0768620f7ac302f31d8b12b1ca.tar.gz
frameworks_av-d477b8d071826c0768620f7ac302f31d8b12b1ca.tar.bz2
Make sure resume() and flush() are handled appropriately even if the codec
is in Idle->Executing state. Change-Id: I16a10791fae0e062a19299732c472cc93e4ed971 related-to-bug: 8347958
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/ACodec.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
index 1a2eeb1..c9f8741 100644
--- a/media/libstagefright/ACodec.cpp
+++ b/media/libstagefright/ACodec.cpp
@@ -3461,6 +3461,22 @@ bool ACodec::IdleToExecutingState::onMessageReceived(const sp<AMessage> &msg) {
return true;
}
+ case kWhatResume:
+ {
+ // We'll be active soon enough.
+ return true;
+ }
+
+ case kWhatFlush:
+ {
+ // We haven't even started yet, so we're flushed alright...
+ sp<AMessage> notify = mCodec->mNotify->dup();
+ notify->setInt32("what", ACodec::kWhatFlushCompleted);
+ notify->post();
+
+ return true;
+ }
+
case kWhatSignalEndOfInputStream:
{
mCodec->onSignalEndOfInputStream();