NuPlayerRenderer: Ensure cancelAudioOffloadPauseTimeout cancels timeout
Bug: 28121584
Change-Id: Ic8887851544f769e0cd0717d97075931ab73df3f
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
index c38a23b..4ae8e82 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
@@ -1722,10 +1722,16 @@
}
void NuPlayer::Renderer::cancelAudioOffloadPauseTimeout() {
- if (offloadingAudio()) {
- mWakeLock->release(true);
- ++mAudioOffloadPauseTimeoutGeneration;
- }
+ // We may have called startAudioOffloadPauseTimeout() without
+ // the AudioSink open and with offloadingAudio enabled.
+ //
+ // When we cancel, it may be that offloadingAudio is subsequently disabled, so regardless
+ // we always release the wakelock and increment the pause timeout generation.
+ //
+ // Note: The acquired wakelock prevents the device from suspending
+ // immediately after offload pause (in case a resume happens shortly thereafter).
+ mWakeLock->release(true);
+ ++mAudioOffloadPauseTimeoutGeneration;
}
status_t NuPlayer::Renderer::onOpenAudioSink(