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

Commit b75de9d4 authored by Ronghua Wu's avatar Ronghua Wu
Browse files

nuplayer: don't resume if player is reseting

Bug: 24712426
Change-Id: I58cca0bde708a5c3b073ed77e18b62fe81d6c017
parent acd2186a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -188,6 +188,7 @@ NuPlayer::NuPlayer(pid_t pid)
      mPlaybackSettings(AUDIO_PLAYBACK_RATE_DEFAULT),
      mVideoFpsHint(-1.f),
      mStarted(false),
      mResetting(false),
      mSourceStarted(false),
      mPaused(false),
      mPausedByClient(false),
@@ -1139,6 +1140,8 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) {
        {
            ALOGV("kWhatReset");

            mResetting = true;

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

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

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

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

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