Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +14 −1 Original line number Original line Diff line number Diff line Loading @@ -463,11 +463,24 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { { { ALOGV("kWhatReset"); ALOGV("kWhatReset"); if (mRenderer != NULL) { // There's an edge case where the renderer owns all output // buffers and is paused, therefore the decoder will not read // more input data and will never encounter the matching // discontinuity. To avoid this, we resume the renderer. if (mFlushingAudio == AWAITING_DISCONTINUITY || mFlushingVideo == AWAITING_DISCONTINUITY) { mRenderer->resume(); } } if (mFlushingAudio != NONE || mFlushingVideo != NONE) { if (mFlushingAudio != NONE || mFlushingVideo != NONE) { // We're currently flushing, postpone the reset until that's // We're currently flushing, postpone the reset until that's // completed. // completed. ALOGV("postponing reset"); ALOGV("postponing reset mFlushingAudio=%d, mFlushingVideo=%d", mFlushingAudio, mFlushingVideo); mResetPostponed = true; mResetPostponed = true; break; break; Loading media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +6 −1 Original line number Original line Diff line number Diff line Loading @@ -628,11 +628,16 @@ void NuPlayer::Renderer::onPause() { mAudioSink->pause(); mAudioSink->pause(); } } ALOGV("now paused audio queue has %d entries, video has %d entries", mAudioQueue.size(), mVideoQueue.size()); mPaused = true; mPaused = true; } } void NuPlayer::Renderer::onResume() { void NuPlayer::Renderer::onResume() { CHECK(mPaused); if (!mPaused) { return; } if (mHasAudio) { if (mHasAudio) { mAudioSink->start(); mAudioSink->start(); Loading Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +14 −1 Original line number Original line Diff line number Diff line Loading @@ -463,11 +463,24 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { { { ALOGV("kWhatReset"); ALOGV("kWhatReset"); if (mRenderer != NULL) { // There's an edge case where the renderer owns all output // buffers and is paused, therefore the decoder will not read // more input data and will never encounter the matching // discontinuity. To avoid this, we resume the renderer. if (mFlushingAudio == AWAITING_DISCONTINUITY || mFlushingVideo == AWAITING_DISCONTINUITY) { mRenderer->resume(); } } if (mFlushingAudio != NONE || mFlushingVideo != NONE) { if (mFlushingAudio != NONE || mFlushingVideo != NONE) { // We're currently flushing, postpone the reset until that's // We're currently flushing, postpone the reset until that's // completed. // completed. ALOGV("postponing reset"); ALOGV("postponing reset mFlushingAudio=%d, mFlushingVideo=%d", mFlushingAudio, mFlushingVideo); mResetPostponed = true; mResetPostponed = true; break; break; Loading
media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +6 −1 Original line number Original line Diff line number Diff line Loading @@ -628,11 +628,16 @@ void NuPlayer::Renderer::onPause() { mAudioSink->pause(); mAudioSink->pause(); } } ALOGV("now paused audio queue has %d entries, video has %d entries", mAudioQueue.size(), mVideoQueue.size()); mPaused = true; mPaused = true; } } void NuPlayer::Renderer::onResume() { void NuPlayer::Renderer::onResume() { CHECK(mPaused); if (!mPaused) { return; } if (mHasAudio) { if (mHasAudio) { mAudioSink->start(); mAudioSink->start(); Loading