diff options
author | Chong Zhang <chz@google.com> | 2014-10-03 06:19:50 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-10-03 06:19:50 +0000 |
commit | 36a7f5b2971f9125e908388113d5e52ddcb8822c (patch) | |
tree | fc5227fb5de1aa664b8dbfa823da5e7860cd48a6 /media/libstagefright/MediaCodec.cpp | |
parent | 07ea94c589ea6d6ee3aeb1e9ef9d4100217738c8 (diff) | |
parent | 9b68037c1f3fcf2a390dd796fb31b1d873fe4bea (diff) | |
download | frameworks_av-36a7f5b2971f9125e908388113d5e52ddcb8822c.zip frameworks_av-36a7f5b2971f9125e908388113d5e52ddcb8822c.tar.gz frameworks_av-36a7f5b2971f9125e908388113d5e52ddcb8822c.tar.bz2 |
am 9b68037c: am f0d98899: am aaa527fb: Merge "send available codec buffer count with codec notification" into lmp-dev
* commit '9b68037c1f3fcf2a390dd796fb31b1d873fe4bea':
send available codec buffer count with codec notification
Diffstat (limited to 'media/libstagefright/MediaCodec.cpp')
-rw-r--r-- | media/libstagefright/MediaCodec.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp index cb461f8..6b3958a 100644 --- a/media/libstagefright/MediaCodec.cpp +++ b/media/libstagefright/MediaCodec.cpp @@ -2151,11 +2151,24 @@ void MediaCodec::postActivityNotificationIfPossible() { return; } - if ((mFlags & (kFlagStickyError + bool isErrorOrOutputChanged = + (mFlags & (kFlagStickyError | kFlagOutputBuffersChanged - | kFlagOutputFormatChanged)) + | kFlagOutputFormatChanged)); + + if (isErrorOrOutputChanged || !mAvailPortBuffers[kPortIndexInput].empty() || !mAvailPortBuffers[kPortIndexOutput].empty()) { + mActivityNotify->setInt32("input-buffers", + mAvailPortBuffers[kPortIndexInput].size()); + + if (isErrorOrOutputChanged) { + // we want consumer to dequeue as many times as it can + mActivityNotify->setInt32("output-buffers", INT32_MAX); + } else { + mActivityNotify->setInt32("output-buffers", + mAvailPortBuffers[kPortIndexOutput].size()); + } mActivityNotify->post(); mActivityNotify.clear(); } |