am 9e308de9: am 4d4ea7f7: Merge "do not use paused postition if it\'s not available" into lmp-mr1-dev

* commit '9e308de9214e55dd0d102484ea44b117ec050540':
  do not use paused postition if it's not available
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
index 57fcfe5..80b8493 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
@@ -77,7 +77,7 @@
       mNotifyCompleteVideo(false),
       mSyncQueues(false),
       mPaused(false),
-      mPausePositionMediaTimeUs(0),
+      mPausePositionMediaTimeUs(-1),
       mVideoSampleReceived(false),
       mVideoRenderingStarted(false),
       mVideoRenderingStartGeneration(0),
@@ -210,7 +210,7 @@
 
 // Called either with mLock acquired or on renderer's thread.
 bool NuPlayer::Renderer::getCurrentPositionIfPaused_l(int64_t *mediaUs) {
-    if (!mPaused) {
+    if (!mPaused || mPausePositionMediaTimeUs < 0ll) {
         return false;
     }
     *mediaUs = mPausePositionMediaTimeUs;
@@ -1232,6 +1232,12 @@
     if (getCurrentPositionFromAnchor(
             &currentPositionUs, ALooper::GetNowUs()) == OK) {
         mPausePositionMediaTimeUs = currentPositionUs;
+    } else {
+        // Set paused position to -1 (unavailabe) if we don't have anchor time
+        // This could happen if client does a seekTo() immediately followed by
+        // pause(). Renderer will be flushed with anchor time cleared. We don't
+        // want to leave stale value in mPausePositionMediaTimeUs.
+        mPausePositionMediaTimeUs = -1;
     }
     {
         Mutex::Autolock autoLock(mLock);