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

Commit f22f6d5b authored by Ronghua Wu's avatar Ronghua Wu Committed by Android (Google) Code Review
Browse files

Merge "nuplayer: don't resume if player is reseting"

parents f8e21a06 64c2d171
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -188,6 +188,7 @@ NuPlayer::NuPlayer(pid_t pid)
      mPlaybackSettings(AUDIO_PLAYBACK_RATE_DEFAULT),
      mPlaybackSettings(AUDIO_PLAYBACK_RATE_DEFAULT),
      mVideoFpsHint(-1.f),
      mVideoFpsHint(-1.f),
      mStarted(false),
      mStarted(false),
      mResetting(false),
      mSourceStarted(false),
      mSourceStarted(false),
      mPaused(false),
      mPaused(false),
      mPausedByClient(false),
      mPausedByClient(false),
@@ -1156,6 +1157,8 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) {
        {
        {
            ALOGV("kWhatReset");
            ALOGV("kWhatReset");


            mResetting = true;

            mDeferredActions.push_back(
            mDeferredActions.push_back(
                    new FlushDecoderAction(
                    new FlushDecoderAction(
                        FLUSH_CMD_SHUTDOWN /* audio */,
                        FLUSH_CMD_SHUTDOWN /* audio */,
@@ -1238,7 +1241,8 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) {
}
}


void NuPlayer::onResume() {
void NuPlayer::onResume() {
    if (!mPaused) {
    if (!mPaused || mResetting) {
        ALOGD_IF(mResetting, "resetting, onResume discarded");
        return;
        return;
    }
    }
    mPaused = false;
    mPaused = false;
@@ -1942,6 +1946,7 @@ void NuPlayer::performReset() {
    }
    }


    mStarted = false;
    mStarted = false;
    mResetting = false;
    mSourceStarted = false;
    mSourceStarted = false;
}
}


+1 −0
Original line number Original line Diff line number Diff line
@@ -197,6 +197,7 @@ private:
    AVSyncSettings mSyncSettings;
    AVSyncSettings mSyncSettings;
    float mVideoFpsHint;
    float mVideoFpsHint;
    bool mStarted;
    bool mStarted;
    bool mResetting;
    bool mSourceStarted;
    bool mSourceStarted;


    // Actual pause state, either as requested by client or due to buffering.
    // Actual pause state, either as requested by client or due to buffering.