diff options
author | Chong Zhang <chz@google.com> | 2014-09-30 13:12:22 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-10-02 15:15:44 -0700 |
commit | e47d44486f0a9f9b828b01d0fbaf84f5573f0aa2 (patch) | |
tree | 54b690557226ac4725e32f4ac2538aedda1da8b1 /media/libmediaplayerservice | |
parent | d8b03abf1d003e2940a19f0071ea2892689dd10e (diff) | |
download | frameworks_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')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp | 16 |
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(); |