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

Commit c2953895 authored by Chong Zhang's avatar Chong Zhang Committed by The Android Automerger
Browse files

do not use paused postition if it's not available

bug: 18896133
bug: 18996505
Change-Id: I1e24fabe3fe8f2275b1ccc0df100cb2c4ba2264b
parent 96e3a95c
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ NuPlayer::Renderer::Renderer(
      mNotifyCompleteVideo(false),
      mSyncQueues(false),
      mPaused(false),
      mPausePositionMediaTimeUs(0),
      mPausePositionMediaTimeUs(-1),
      mVideoSampleReceived(false),
      mVideoRenderingStarted(false),
      mVideoRenderingStartGeneration(0),
@@ -210,7 +210,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;
@@ -1232,6 +1232,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);