summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2014-09-30 13:12:22 -0700
committerChong Zhang <chz@google.com>2014-10-02 15:15:44 -0700
commite47d44486f0a9f9b828b01d0fbaf84f5573f0aa2 (patch)
tree54b690557226ac4725e32f4ac2538aedda1da8b1 /media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
parentd8b03abf1d003e2940a19f0071ea2892689dd10e (diff)
downloadframeworks_av-e47d44486f0a9f9b828b01d0fbaf84f5573f0aa2.zip
frameworks_av-e47d44486f0a9f9b828b01d0fbaf84f5573f0aa2.tar.gz
frameworks_av-e47d44486f0a9f9b828b01d0fbaf84f5573f0aa2.tar.bz2
send available codec buffer count with codec notification
Bug: 14679336 Change-Id: Id927c96a9a14dd6ecd72540f0037d5841aa32154
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
index 7814bf1..601f6b5 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
@@ -604,13 +604,21 @@ void NuPlayer::Decoder::onMessageReceived(const sp<AMessage> &msg) {
case kWhatCodecNotify:
{
if (!isStaleReply(msg)) {
- if (!mPaused) {
- while (handleAnInputBuffer()) {
- }
+ int32_t numInput, numOutput;
+
+ if (!msg->findInt32("input-buffers", &numInput)) {
+ numInput = INT32_MAX;
}
- while (handleAnOutputBuffer()) {
+ if (!msg->findInt32("output-buffers", &numOutput)) {
+ numOutput = INT32_MAX;
}
+
+ if (!mPaused) {
+ while (numInput-- > 0 && handleAnInputBuffer()) {}
+ }
+
+ while (numOutput-- > 0 && handleAnOutputBuffer()) {}
}
requestCodecNotification();