Loading media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +18 −1 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ NuPlayer::Renderer::Renderer( mHasVideo(false), mSyncQueues(false), mPaused(false), mPauseStartedTimeRealUs(-1), mVideoSampleReceived(false), mVideoRenderingStarted(false), mVideoRenderingStartGeneration(0), Loading Loading @@ -574,8 +575,10 @@ void NuPlayer::Renderer::postDrainVideoQueue() { if (!mHasAudio) { mAnchorTimeMediaUs = mediaTimeUs; mAnchorTimeRealUs = nowUs; if (!mPaused || mVideoSampleReceived) { notifyPosition(); } } realTimeUs = nowUs; } else { realTimeUs = Loading Loading @@ -645,6 +648,10 @@ void NuPlayer::Renderer::onDrainVideoQueue() { } } else { mVideoLateByUs = 0ll; if (!mHasAudio && !mVideoSampleReceived) { mAnchorTimeMediaUs = -1; mAnchorTimeRealUs = -1; } } entry->mNotifyConsumed->setInt64("timestampNs", realTimeUs * 1000ll); Loading Loading @@ -830,6 +837,9 @@ void NuPlayer::Renderer::onFlush(const sp<AMessage> &msg) { { Mutex::Autolock autoLock(mLock); syncQueuesDone_l(); if (!mHasAudio) { mPauseStartedTimeRealUs = -1; } } ALOGV("flushing %s", audio ? "audio" : "video"); Loading Loading @@ -980,6 +990,9 @@ void NuPlayer::Renderer::onPause() { ++mVideoQueueGeneration; prepareForMediaRenderingStart(); mPaused = true; if (!mHasAudio) { mPauseStartedTimeRealUs = ALooper::GetNowUs(); } } mDrainAudioQueuePending = false; Loading Loading @@ -1008,6 +1021,10 @@ void NuPlayer::Renderer::onResume() { Mutex::Autolock autoLock(mLock); mPaused = false; if (!mHasAudio && mPauseStartedTimeRealUs != -1) { mAnchorTimeRealUs += ALooper::GetNowUs() - mPauseStartedTimeRealUs; mPauseStartedTimeRealUs = -1; } if (!mAudioQueue.empty()) { postDrainAudioQueue_l(); Loading media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h +1 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ private: bool mSyncQueues; bool mPaused; int64_t mPauseStartedTimeRealUs; bool mVideoSampleReceived; bool mVideoRenderingStarted; int32_t mVideoRenderingStartGeneration; Loading Loading
media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +18 −1 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ NuPlayer::Renderer::Renderer( mHasVideo(false), mSyncQueues(false), mPaused(false), mPauseStartedTimeRealUs(-1), mVideoSampleReceived(false), mVideoRenderingStarted(false), mVideoRenderingStartGeneration(0), Loading Loading @@ -574,8 +575,10 @@ void NuPlayer::Renderer::postDrainVideoQueue() { if (!mHasAudio) { mAnchorTimeMediaUs = mediaTimeUs; mAnchorTimeRealUs = nowUs; if (!mPaused || mVideoSampleReceived) { notifyPosition(); } } realTimeUs = nowUs; } else { realTimeUs = Loading Loading @@ -645,6 +648,10 @@ void NuPlayer::Renderer::onDrainVideoQueue() { } } else { mVideoLateByUs = 0ll; if (!mHasAudio && !mVideoSampleReceived) { mAnchorTimeMediaUs = -1; mAnchorTimeRealUs = -1; } } entry->mNotifyConsumed->setInt64("timestampNs", realTimeUs * 1000ll); Loading Loading @@ -830,6 +837,9 @@ void NuPlayer::Renderer::onFlush(const sp<AMessage> &msg) { { Mutex::Autolock autoLock(mLock); syncQueuesDone_l(); if (!mHasAudio) { mPauseStartedTimeRealUs = -1; } } ALOGV("flushing %s", audio ? "audio" : "video"); Loading Loading @@ -980,6 +990,9 @@ void NuPlayer::Renderer::onPause() { ++mVideoQueueGeneration; prepareForMediaRenderingStart(); mPaused = true; if (!mHasAudio) { mPauseStartedTimeRealUs = ALooper::GetNowUs(); } } mDrainAudioQueuePending = false; Loading Loading @@ -1008,6 +1021,10 @@ void NuPlayer::Renderer::onResume() { Mutex::Autolock autoLock(mLock); mPaused = false; if (!mHasAudio && mPauseStartedTimeRealUs != -1) { mAnchorTimeRealUs += ALooper::GetNowUs() - mPauseStartedTimeRealUs; mPauseStartedTimeRealUs = -1; } if (!mAudioQueue.empty()) { postDrainAudioQueue_l(); Loading
media/libmediaplayerservice/nuplayer/NuPlayerRenderer.h +1 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ private: bool mSyncQueues; bool mPaused; int64_t mPauseStartedTimeRealUs; bool mVideoSampleReceived; bool mVideoRenderingStarted; int32_t mVideoRenderingStartGeneration; Loading