summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorChong Zhang <chz@google.com>2015-07-15 01:31:30 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-15 01:31:30 +0000
commit1bc88814f530bf67e425cfb8cea0f2b8dce3c03f (patch)
tree6c642e16897de47cd787ad56485489f87715d2d3 /media/libmediaplayerservice
parent7f4e78fedf1dbcd175a52b17d46a658218ed7453 (diff)
parentfcf044a9c5624395d24eb6181e67163ce169458b (diff)
downloadframeworks_av-1bc88814f530bf67e425cfb8cea0f2b8dce3c03f.zip
frameworks_av-1bc88814f530bf67e425cfb8cea0f2b8dce3c03f.tar.gz
frameworks_av-1bc88814f530bf67e425cfb8cea0f2b8dce3c03f.tar.bz2
Merge "NuPlayer: pull more video buffers in advance in GenericSource" into mnc-dev
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/nuplayer/GenericSource.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
index 64d172e..7dc9be7 100644
--- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
@@ -1005,7 +1005,9 @@ status_t NuPlayer::GenericSource::dequeueAccessUnit(
status_t result = track->mPackets->dequeueAccessUnit(accessUnit);
- if (!track->mPackets->hasBufferAvailable(&finalResult)) {
+ // start pulling in more buffers if we only have one (or no) buffer left
+ // so that decoder has less chance of being starved
+ if (track->mPackets->getAvailableBufferCount(&finalResult) < 2) {
postReadBuffer(audio? MEDIA_TRACK_TYPE_AUDIO : MEDIA_TRACK_TYPE_VIDEO);
}
@@ -1458,6 +1460,8 @@ void NuPlayer::GenericSource::readBuffer(
track = &mVideoTrack;
if (mIsWidevine) {
maxBuffers = 2;
+ } else {
+ maxBuffers = 4;
}
break;
case MEDIA_TRACK_TYPE_AUDIO: