summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaCodec.cpp
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2014-10-03 06:19:50 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-10-03 06:19:50 +0000
commit36a7f5b2971f9125e908388113d5e52ddcb8822c (patch)
treefc5227fb5de1aa664b8dbfa823da5e7860cd48a6 /media/libstagefright/MediaCodec.cpp
parent07ea94c589ea6d6ee3aeb1e9ef9d4100217738c8 (diff)
parent9b68037c1f3fcf2a390dd796fb31b1d873fe4bea (diff)
downloadframeworks_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.cpp17
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();
}