Bug 1307677. Part 3 - move |mCurrentSeek.mPromise.Ensure| out of InitiateSeek(). This makes it easier to move more code into SeekingState. r=kaku

MozReview-Commit-ID: Id4PprPtJdX

--HG--
extra : rebase_source : e21c791f1ec88187f02b7079d6bfcfcf00de91e4
This commit is contained in:
JW Wang 2016-10-04 16:55:59 +08:00
parent c9a0e7e263
commit 9ead74a43f
2 changed files with 17 additions and 12 deletions

View File

@ -487,7 +487,8 @@ public:
SLOG("Changed state to SEEKING (to %lld)", aTarget.GetTime().ToMicroseconds());
SeekJob seekJob;
seekJob.mTarget = aTarget;
return mMaster->InitiateSeek(Move(seekJob));
mMaster->InitiateSeek(Move(seekJob));
return mMaster->mCurrentSeek.mPromise.Ensure(__func__);
}
private:
@ -597,7 +598,8 @@ public:
SLOG("Changed state to SEEKING (to %lld)", aTarget.GetTime().ToMicroseconds());
SeekJob seekJob;
seekJob.mTarget = aTarget;
return mMaster->InitiateSeek(Move(seekJob));
mMaster->InitiateSeek(Move(seekJob));
return mMaster->mCurrentSeek.mPromise.Ensure(__func__);
}
private:
@ -693,7 +695,8 @@ public:
SLOG("Changed state to SEEKING (to %lld)", aTarget.GetTime().ToMicroseconds());
SeekJob seekJob;
seekJob.mTarget = aTarget;
return mMaster->InitiateSeek(Move(seekJob));
mMaster->InitiateSeek(Move(seekJob));
return mMaster->mCurrentSeek.mPromise.Ensure(__func__);
}
};
@ -802,7 +805,8 @@ public:
SLOG("Changed state to SEEKING (to %lld)", aTarget.GetTime().ToMicroseconds());
SeekJob seekJob;
seekJob.mTarget = aTarget;
return mMaster->InitiateSeek(Move(seekJob));
mMaster->InitiateSeek(Move(seekJob));
return mMaster->mCurrentSeek.mPromise.Ensure(__func__);
}
private:
@ -879,7 +883,8 @@ public:
SLOG("Changed state to SEEKING (to %lld)", aTarget.GetTime().ToMicroseconds());
SeekJob seekJob;
seekJob.mTarget = aTarget;
return mMaster->InitiateSeek(Move(seekJob));
mMaster->InitiateSeek(Move(seekJob));
return mMaster->mCurrentSeek.mPromise.Ensure(__func__);
}
private:
@ -1972,10 +1977,11 @@ void MediaDecoderStateMachine::VisibilityChanged()
MediaDecoderEventVisibility::Suppressed,
true /* aVideoOnly */);
InitiateSeek(Move(seekJob))
->Then(AbstractThread::MainThread(), __func__,
[start, info, hw](){ ReportRecoveryTelemetry(start, info, hw); },
[](){});
InitiateSeek(Move(seekJob));
RefPtr<MediaDecoder::SeekPromise> p = mCurrentSeek.mPromise.Ensure(__func__);
p->Then(AbstractThread::MainThread(), __func__,
[start, info, hw](){ ReportRecoveryTelemetry(start, info, hw); },
[](){});
}
}
@ -2107,7 +2113,7 @@ MediaDecoderStateMachine::DispatchDecodeTasksIfNeeded()
}
}
RefPtr<MediaDecoder::SeekPromise>
void
MediaDecoderStateMachine::InitiateSeek(SeekJob aSeekJob)
{
MOZ_ASSERT(OnTaskQueue());
@ -2169,7 +2175,6 @@ MediaDecoderStateMachine::InitiateSeek(SeekJob aSeekJob)
MOZ_ASSERT(!mQueuedSeek.Exists());
MOZ_ASSERT(!mCurrentSeek.Exists());
mCurrentSeek = Move(aSeekJob);
return mCurrentSeek.mPromise.Ensure(__func__);
}
void

View File

@ -489,7 +489,7 @@ protected:
void EnqueueFirstFrameLoadedEvent();
// Clears any previous seeking state and initiates a new seek on the decoder.
RefPtr<MediaDecoder::SeekPromise> InitiateSeek(SeekJob aSeekJob);
void InitiateSeek(SeekJob aSeekJob);
void DispatchAudioDecodeTaskIfNeeded();
void DispatchVideoDecodeTaskIfNeeded();