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

Commit 362db1ad authored by Wei Jia's avatar Wei Jia Committed by android-build-merger
Browse files

Merge "NuPlayerRenderer: handle fractional audio data before EOS"

am: 18c84ba4

Change-Id: I025ac75e18bfb29e1104154659a1c83176740086
parents d80c35a1 18c84ba4
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -1278,10 +1278,10 @@ void NuPlayer2::Renderer::postDrainVideoQueue() {
            mAnchorTimeMediaUs = mediaTimeUs;
        }
    }
    mNextVideoTimeMediaUs = mediaTimeUs + 100000;
    mNextVideoTimeMediaUs = mediaTimeUs;
    if (!mHasAudio) {
        // smooth out videos >= 10fps
        mMediaClock->updateMaxTimeMedia(mNextVideoTimeMediaUs);
        mMediaClock->updateMaxTimeMedia(mediaTimeUs + 100000);
    }

    if (!mVideoSampleReceived || mediaTimeUs < mAudioFirstAnchorTimeMediaUs) {
@@ -1415,10 +1415,16 @@ void NuPlayer2::Renderer::notifyEOS_l(bool audio, status_t finalResult, int64_t
        mHasAudio = false;
        if (mNextVideoTimeMediaUs >= 0) {
            int64_t mediaUs = 0;
            mMediaClock->getMediaTime(ALooper::GetNowUs(), &mediaUs);
            int64_t nowUs = ALooper::GetNowUs();
            status_t result = mMediaClock->getMediaTime(nowUs, &mediaUs);
            if (result == OK) {
                if (mNextVideoTimeMediaUs > mediaUs) {
                    mMediaClock->updateMaxTimeMedia(mNextVideoTimeMediaUs);
                }
            } else {
                mMediaClock->updateAnchor(
                        mNextVideoTimeMediaUs, nowUs, mNextVideoTimeMediaUs + 100000);
            }
        }
    }
}
+11 −5
Original line number Diff line number Diff line
@@ -1283,10 +1283,10 @@ void NuPlayer::Renderer::postDrainVideoQueue() {
            mAnchorTimeMediaUs = mediaTimeUs;
        }
    }
    mNextVideoTimeMediaUs = mediaTimeUs + 100000;
    mNextVideoTimeMediaUs = mediaTimeUs;
    if (!mHasAudio) {
        // smooth out videos >= 10fps
        mMediaClock->updateMaxTimeMedia(mNextVideoTimeMediaUs);
        mMediaClock->updateMaxTimeMedia(mediaTimeUs + 100000);
    }

    if (!mVideoSampleReceived || mediaTimeUs < mAudioFirstAnchorTimeMediaUs) {
@@ -1420,10 +1420,16 @@ void NuPlayer::Renderer::notifyEOS_l(bool audio, status_t finalResult, int64_t d
        mHasAudio = false;
        if (mNextVideoTimeMediaUs >= 0) {
            int64_t mediaUs = 0;
            mMediaClock->getMediaTime(ALooper::GetNowUs(), &mediaUs);
            int64_t nowUs = ALooper::GetNowUs();
            status_t result = mMediaClock->getMediaTime(nowUs, &mediaUs);
            if (result == OK) {
                if (mNextVideoTimeMediaUs > mediaUs) {
                    mMediaClock->updateMaxTimeMedia(mNextVideoTimeMediaUs);
                }
            } else {
                mMediaClock->updateAnchor(
                        mNextVideoTimeMediaUs, nowUs, mNextVideoTimeMediaUs + 100000);
            }
        }
    }
}