diff options
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayer.cpp | 6 | ||||
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp index 8e3e460..bfdb1ad 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp @@ -1474,8 +1474,10 @@ void NuPlayer::determineAudioModeChange() { sp<AMessage> format = mSource->getFormat(true /*audio*/); tryOpenAudioSinkForOffload(format, hasVideo); } else { - mRenderer->signalDisableOffloadAudio(); - mOffloadAudio = false; + if (mOffloadAudio) { + mRenderer->signalDisableOffloadAudio(); + mOffloadAudio = false; + } } } diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index 767417b..e9f3799 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -1422,12 +1422,18 @@ void NuPlayer::Renderer::onDisableOffloadAudio() { Mutex::Autolock autoLock(mLock); mFlags &= ~FLAG_OFFLOAD_AUDIO; ++mAudioDrainGeneration; + if (mAudioRenderingStartGeneration != -1) { + prepareForMediaRenderingStart_l(); + } } void NuPlayer::Renderer::onEnableOffloadAudio() { Mutex::Autolock autoLock(mLock); mFlags |= FLAG_OFFLOAD_AUDIO; ++mAudioDrainGeneration; + if (mAudioRenderingStartGeneration != -1) { + prepareForMediaRenderingStart_l(); + } } void NuPlayer::Renderer::onPause() { |