Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cec7febc authored by Chong Zhang's avatar Chong Zhang
Browse files

do not use paused postition if it's not available

bug: 18896133
bug: 18996505
Change-Id: I1e24fabe3fe8f2275b1ccc0df100cb2c4ba2264b
parent ad019236
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ NuPlayer::Renderer::Renderer(
      mNotifyCompleteVideo(false),
      mSyncQueues(false),
      mPaused(false),
      mPausePositionMediaTimeUs(0),
      mPausePositionMediaTimeUs(-1),
      mVideoSampleReceived(false),
      mVideoRenderingStarted(false),
      mVideoRenderingStartGeneration(0),
@@ -200,7 +200,7 @@ status_t NuPlayer::Renderer::getCurrentPositionOnLooper(

// 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;
@@ -1222,6 +1222,12 @@ void NuPlayer::Renderer::onPause() {
    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);