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

Commit d98913f7 authored by Dichen Zhang's avatar Dichen Zhang Committed by android-build-merger
Browse files

Merge "NuPlayer2: Call video flush on audio teardown"

am: bf430563

Change-Id: I7c83aed564ac4bb5b4e4a006958ceb87d198a32d
parents 436d9e9d bf430563
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -1884,11 +1884,21 @@ void NuPlayer2::restartAudio(
    closeAudioSink();
    mRenderer->flush(true /* audio */, false /* notifyComplete */);
    if (mVideoDecoder != NULL) {
        mRenderer->flush(false /* audio */, false /* notifyComplete */);
        mDeferredActions.push_back(
                new FlushDecoderAction(FLUSH_CMD_NONE /* audio */,
                                       FLUSH_CMD_FLUSH /* video */));
        mDeferredActions.push_back(
                new SeekAction(currentPositionUs,
                MediaPlayerSeekMode::SEEK_PREVIOUS_SYNC /* mode */));
        // After a flush without shutdown, decoder is paused.
        // Don't resume it until source seek is done, otherwise it could
        // start pulling stale data too soon.
        mDeferredActions.push_back(new ResumeDecoderAction(false));
        processDeferredActions();
    } else {
        performSeek(currentPositionUs, MediaPlayerSeekMode::SEEK_PREVIOUS_SYNC /* mode */);
    }

    performSeek(currentPositionUs, MediaPlayer2SeekMode::SEEK_PREVIOUS_SYNC /* mode */);

    if (forceNonOffload) {
        mRenderer->signalDisableOffloadAudio();
        mOffloadAudio = false;