NuPlayer: set mPausedByClient correctly when calling setPlaybackSettings().
Also reset mPendingBufferingFlag when seeking.
Bug: 25727912
Change-Id: I1b6ec51b22f981c1701ac7eab572f95e6874c3a0
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
index 765ceff..2528777 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
@@ -736,6 +736,7 @@
if (err == OK) {
if (rate.mSpeed == 0.f) {
onPause();
+ mPausedByClient = true;
// save all other settings (using non-paused speed)
// so we can restore them on start
AudioPlaybackRate newRate = rate;
@@ -743,6 +744,7 @@
mPlaybackSettings = newRate;
} else { /* rate.mSpeed != 0.f */
onResume();
+ mPausedByClient = false;
mPlaybackSettings = rate;
}
}
@@ -1208,6 +1210,8 @@
break;
}
+ mPendingBufferingFlag = PENDING_BUFFERING_FLAG_NONE;
+
mDeferredActions.push_back(
new FlushDecoderAction(FLUSH_CMD_FLUSH /* audio */,
FLUSH_CMD_FLUSH /* video */));
@@ -1908,6 +1912,7 @@
}
mPreviousSeekTimeUs = seekTimeUs;
mSource->seekTo(seekTimeUs);
+ mPendingBufferingFlag = PENDING_BUFFERING_FLAG_NONE;
++mTimedTextGeneration;
// everything's flushed, continue playback.