diff options
author | Andy Hung <hunga@google.com> | 2015-09-03 15:13:01 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2015-10-13 16:03:25 -0700 |
commit | a5b4642220b810d8f044171c7c05aed0597a1812 (patch) | |
tree | 3e4c6f9e508e33cb102998dcb3efff6afb0fa926 /media/libmediaplayerservice | |
parent | 95c3a43ae474f327289670c8fc61a0ec003810af (diff) | |
download | frameworks_av-a5b4642220b810d8f044171c7c05aed0597a1812.zip frameworks_av-a5b4642220b810d8f044171c7c05aed0597a1812.tar.gz frameworks_av-a5b4642220b810d8f044171c7c05aed0597a1812.tar.bz2 |
NuPlayerRenderer: do not send rendering started message when paused
Delay until resume.
Bug: 23669269
Change-Id: I0a805812d80b1aad561425442bca0fc05a05752f
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 11 | ||||
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h | 1 |
2 files changed, 11 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index 8053245..4d25294 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -111,6 +111,7 @@ NuPlayer::Renderer::Renderer( mVideoRenderingStarted(false), mVideoRenderingStartGeneration(0), mAudioRenderingStartGeneration(0), + mRenderingDataDelivered(false), mAudioOffloadPauseTimeoutGeneration(0), mAudioTornDown(false), mCurrentOffloadInfo(AUDIO_INFO_INITIALIZER), @@ -648,11 +649,16 @@ void NuPlayer::Renderer::postDrainAudioQueue_l(int64_t delayUs) { void NuPlayer::Renderer::prepareForMediaRenderingStart_l() { mAudioRenderingStartGeneration = mAudioDrainGeneration; mVideoRenderingStartGeneration = mVideoDrainGeneration; + mRenderingDataDelivered = false; } void NuPlayer::Renderer::notifyIfMediaRenderingStarted_l() { if (mVideoRenderingStartGeneration == mVideoDrainGeneration && mAudioRenderingStartGeneration == mAudioDrainGeneration) { + mRenderingDataDelivered = true; + if (mPaused) { + return; + } mVideoRenderingStartGeneration = -1; mAudioRenderingStartGeneration = -1; @@ -1504,7 +1510,10 @@ void NuPlayer::Renderer::onResume() { { Mutex::Autolock autoLock(mLock); mPaused = false; - + // rendering started message may have been delayed if we were paused. + if (mRenderingDataDelivered) { + notifyIfMediaRenderingStarted_l(); + } // configure audiosink as we did not do it when pausing if (mAudioSink != NULL && mAudioSink->ready()) { mAudioSink->setPlaybackRate(mPlaybackSettings); diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h index 87bcbf9..9479c31 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h @@ -176,6 +176,7 @@ private: bool mVideoRenderingStarted; int32_t mVideoRenderingStartGeneration; int32_t mAudioRenderingStartGeneration; + bool mRenderingDataDelivered; int64_t mLastPositionUpdateUs; |