summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-10-20 17:47:54 -0700
committerLajos Molnar <lajos@google.com>2014-10-20 21:04:33 -0700
commitd5923409bbcbb22954a92c2b497ef4492d7cb6a5 (patch)
treea1ace41b85fb97ea4e496e136abaacad91e69f09 /media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
parenteecb7805bbbb712925d4372c505f8c7f5c4fb5ed (diff)
downloadframeworks_av-d5923409bbcbb22954a92c2b497ef4492d7cb6a5.zip
frameworks_av-d5923409bbcbb22954a92c2b497ef4492d7cb6a5.tar.gz
frameworks_av-d5923409bbcbb22954a92c2b497ef4492d7cb6a5.tar.bz2
mediaplayer: limit scheduling video frames into the future
This addresses when video timestamps jumps before an audio timestamp, but still works on slideshow video clips (<=1fps). This, however, will not skip time-changes on video-only live video streams, as we cannot distinguish live slideshow video clips from non-slideshow ones. Bug: 18032127 Change-Id: I959a714edfe1c8cf3b84704c693dcd1b3e5b7855
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
index 7079f85..b15a266 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h
@@ -101,6 +101,7 @@ private:
enum {
kWhatDrainAudioQueue = 'draA',
kWhatDrainVideoQueue = 'draV',
+ kWhatPostDrainVideoQueue = 'pDVQ',
kWhatQueueBuffer = 'queB',
kWhatQueueEOS = 'qEOS',
kWhatFlush = 'flus',
@@ -119,6 +120,7 @@ private:
sp<AMessage> mNotifyConsumed;
size_t mOffset;
status_t mFinalResult;
+ int32_t mBufferOrdinal;
};
static const int64_t kMinPositionUpdateDelayUs;
@@ -169,6 +171,9 @@ private:
bool mAudioOffloadTornDown;
audio_offload_info_t mCurrentOffloadInfo;
+ int32_t mTotalBuffersQueued;
+ int32_t mLastAudioBufferDrained;
+
size_t fillAudioBuffer(void *buffer, size_t size);
bool onDrainAudioQueue();