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

Commit ae03031a authored by Andreas Huber's avatar Andreas Huber
Browse files

DO NOT MERGE: Fix a race condition when playing an audio-only stream and seeking before starting.

Change-Id: I70dfdfb7c27e3c713079c359ef89a570eb600dc7
related-to-bug: 4039068
parent 427f147c
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -750,8 +750,6 @@ status_t AwesomePlayer::play_l() {
    mFlags |= PLAYING;
    mFlags |= FIRST_FRAME;

    bool deferredAudioSeek = false;

    if (mDecryptHandle != NULL) {
        int64_t position;
        getPosition(&position);
@@ -767,10 +765,11 @@ status_t AwesomePlayer::play_l() {

                mTimeSource = mAudioPlayer;

                deferredAudioSeek = true;

                mWatchForAudioSeekComplete = false;
                mWatchForAudioEOS = true;
                // If there was a seek request before we ever started,
                // honor the request now.
                // Make sure to do this before starting the audio player
                // to avoid a race condition.
                seekAudioIfNecessary_l();
            }
        }

@@ -808,12 +807,6 @@ status_t AwesomePlayer::play_l() {
        }
    }

    if (deferredAudioSeek) {
        // If there was a seek request while we were paused
        // and we're just starting up again, honor the request now.
        seekAudioIfNecessary_l();
    }

    if (mFlags & AT_EOS) {
        // Legacy behaviour, if a stream finishes playing and then
        // is started again, we play from the start...