Bug 1307699. Part 9 - replace mCurrentSeek with mSeekJob.
MozReview-Commit-ID: KJVP7BExVEm
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -721,23 +721,22 @@ public:
[this] (const SeekTaskResolveValue& aValue) {
OnSeekTaskResolved(aValue);
},
[this] (const SeekTaskRejectValue& aValue) {
OnSeekTaskRejected(aValue);
}));
MOZ_ASSERT(!mMaster->mQueuedSeek.Exists());
- mCurrentSeek = Move(mSeekJob);
}
void Exit() override
{
mSeekTaskRequest.DisconnectIfExists();
- mCurrentSeek.RejectIfExists(__func__);
+ mSeekJob.RejectIfExists(__func__);
mSeekTask->Discard();
// Reset the MediaDecoderReaderWrapper's callbask.
mMaster->SetMediaDecoderReaderWrapperCallback();
}
State GetState() const override
{
@@ -745,26 +744,26 @@ public:
}
bool HandleDormant(bool aDormant) override
{
if (!aDormant) {
return true;
}
MOZ_ASSERT(!mMaster->mQueuedSeek.Exists());
- MOZ_ASSERT(mCurrentSeek.Exists());
+ MOZ_ASSERT(mSeekJob.Exists());
// Because both audio and video decoders are going to be reset in this
// method later, we treat a VideoOnly seek task as a normal Accurate
// seek task so that while it is resumed, both audio and video playback
// are handled.
- if (mCurrentSeek.mTarget.IsVideoOnly()) {
- mCurrentSeek.mTarget.SetType(SeekTarget::Accurate);
- mCurrentSeek.mTarget.SetVideoOnly(false);
+ if (mSeekJob.mTarget.IsVideoOnly()) {
+ mSeekJob.mTarget.SetType(SeekTarget::Accurate);
+ mSeekJob.mTarget.SetVideoOnly(false);
}
- mMaster->mQueuedSeek = Move(mCurrentSeek);
+ mMaster->mQueuedSeek = Move(mSeekJob);
SetState(DECODER_STATE_DORMANT);
return true;
}
bool HandleAudioDecoded(MediaData* aAudio) override
{
MOZ_ASSERT(false);
return true;
@@ -870,17 +869,17 @@ private:
// we report playback ended to the media element.
nextState = DECODER_STATE_COMPLETED;
} else {
nextState = DECODER_STATE_DECODING;
}
// We want to resolve the seek request prior finishing the first frame
// to ensure that the seeked event is fired prior loadeded.
- mCurrentSeek.Resolve(nextState == DECODER_STATE_COMPLETED, __func__);
+ mSeekJob.Resolve(nextState == DECODER_STATE_COMPLETED, __func__);
// Notify FirstFrameLoaded now if we haven't since we've decoded some data
// for readyState to transition to HAVE_CURRENT_DATA and fire 'loadeddata'.
if (!mMaster->mSentFirstFrameLoadedEvent) {
// Only MSE can start seeking before finishing decoding first frames.
MOZ_ASSERT(Reader()->ForceZeroStartTime());
mMaster->FinishDecodeFirstFrame();
}
@@ -897,17 +896,16 @@ private:
}
SetState(nextState);
}
SeekJob mSeekJob;
MozPromiseRequestHolder<SeekTask::SeekTaskPromise> mSeekTaskRequest;
RefPtr<SeekTask> mSeekTask;
- SeekJob mCurrentSeek;
};
class MediaDecoderStateMachine::BufferingState
: public MediaDecoderStateMachine::StateObject
{
public:
explicit BufferingState(Master* aPtr) : StateObject(aPtr) {}