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

Commit 2e3e9c6e authored by Wei Jia's avatar Wei Jia Committed by Android (Google) Code Review
Browse files

Merge "NuPlayerRenderer: update max media time when audio EOS is reached."

parents 59d9a363 dc293e34
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -110,6 +110,7 @@ NuPlayer::Renderer::Renderer(
      mAnchorTimeMediaUs(-1),
      mAnchorNumFramesWritten(-1),
      mVideoLateByUs(0ll),
      mNextVideoTimeMediaUs(-1),
      mHasAudio(false),
      mHasVideo(false),
      mNotifyCompleteAudio(false),
@@ -301,6 +302,7 @@ void NuPlayer::Renderer::flush(bool audio, bool notifyComplete) {

        mMediaClock->clearAnchor();
        mVideoLateByUs = 0;
        mNextVideoTimeMediaUs = -1;
        mSyncQueues = false;
    }

@@ -1277,9 +1279,10 @@ void NuPlayer::Renderer::postDrainVideoQueue() {
            mAnchorTimeMediaUs = mediaTimeUs;
        }
    }
    mNextVideoTimeMediaUs = mediaTimeUs + 100000;
    if (!mHasAudio) {
        // smooth out videos >= 10fps
        mMediaClock->updateMaxTimeMedia(mediaTimeUs + 100000);
        mMediaClock->updateMaxTimeMedia(mNextVideoTimeMediaUs);
    }

    if (!mVideoSampleReceived || mediaTimeUs < mAudioFirstAnchorTimeMediaUs) {
@@ -1411,6 +1414,13 @@ void NuPlayer::Renderer::notifyEOS_l(bool audio, status_t finalResult, int64_t d
        // Video might outlive audio. Clear anchor to enable video only case.
        mAnchorTimeMediaUs = -1;
        mHasAudio = false;
        if (mNextVideoTimeMediaUs >= 0) {
            int64_t mediaUs = 0;
            mMediaClock->getMediaTime(ALooper::GetNowUs(), &mediaUs);
            if (mNextVideoTimeMediaUs > mediaUs) {
                mMediaClock->updateMaxTimeMedia(mNextVideoTimeMediaUs);
            }
        }
    }
}

+1 −0
Original line number Diff line number Diff line
@@ -177,6 +177,7 @@ private:
    int64_t mAnchorTimeMediaUs;
    int64_t mAnchorNumFramesWritten;
    int64_t mVideoLateByUs;
    int64_t mNextVideoTimeMediaUs;
    bool mHasAudio;
    bool mHasVideo;