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

Commit 5c1e96bb authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "Properly send a MEDIA_SEEK_COMPLETE notification for a seek request...

Merge "Properly send a MEDIA_SEEK_COMPLETE notification for a seek request while paused (legacy behaviour)." into froyo
parents 0a08b194 8e2b941e
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -395,6 +395,7 @@ void AwesomePlayer::reset_l() {
    mVideoTimeUs = 0;

    mSeeking = false;
    mSeekNotificationSent = false;
    mSeekTimeUs = 0;

    mUri.setTo("");
@@ -686,11 +687,20 @@ status_t AwesomePlayer::seekTo(int64_t timeUs) {

status_t AwesomePlayer::seekTo_l(int64_t timeUs) {
    mSeeking = true;
    mSeekNotificationSent = false;
    mSeekTimeUs = timeUs;
    mFlags &= ~AT_EOS;

    seekAudioIfNecessary_l();

    if (!(mFlags & PLAYING)) {
        LOGV("seeking while paused, sending SEEK_COMPLETE notification"
             " immediately.");

        notifyListener_l(MEDIA_SEEK_COMPLETE);
        mSeekNotificationSent = true;
    }

    return OK;
}

@@ -701,6 +711,7 @@ void AwesomePlayer::seekAudioIfNecessary_l() {
        mWatchForAudioSeekComplete = true;
        mWatchForAudioEOS = true;
        mSeeking = false;
        mSeekNotificationSent = false;
    }
}

@@ -869,7 +880,7 @@ void AwesomePlayer::onVideoEvent() {
            mAudioPlayer->seekTo(timeUs);
            mWatchForAudioSeekComplete = true;
            mWatchForAudioEOS = true;
        } else {
        } else if (!mSeekNotificationSent) {
            // If we're playing video only, report seek complete now,
            // otherwise audio player will notify us later.
            notifyListener_l(MEDIA_SEEK_COMPLETE);
@@ -877,6 +888,7 @@ void AwesomePlayer::onVideoEvent() {

        mFlags |= FIRST_FRAME;
        mSeeking = false;
        mSeekNotificationSent = false;
    }

    if (mFlags & FIRST_FRAME) {
@@ -984,7 +996,11 @@ void AwesomePlayer::onCheckAudioStatus() {

    if (mWatchForAudioSeekComplete && !mAudioPlayer->isSeeking()) {
        mWatchForAudioSeekComplete = false;

        if (!mSeekNotificationSent) {
            notifyListener_l(MEDIA_SEEK_COMPLETE);
            mSeekNotificationSent = true;
        }
    }

    status_t finalStatus;
+1 −0
Original line number Diff line number Diff line
@@ -132,6 +132,7 @@ private:
    int64_t mVideoTimeUs;

    bool mSeeking;
    bool mSeekNotificationSent;
    int64_t mSeekTimeUs;

    bool mWatchForAudioSeekComplete;