Bug 1307699. Part 9 - replace mCurrentSeek with mSeekJob. draft
authorJW Wang <jwwang@mozilla.com>
Wed, 05 Oct 2016 15:33:44 +0800
changeset 421421 80d36879f55b36b36503c1b4d66e33fd208660ca
parent 421420 cd716e04e07d818808f5a04bcf42bd67c01a9f66
child 421422 94fcf349132bf0ed097f665bc309f71d32e4d935
push id31488
push userjwwang@mozilla.com
push dateThu, 06 Oct 2016 02:31:05 +0000
bugs1307699
milestone52.0a1
Bug 1307699. Part 9 - replace mCurrentSeek with mSeekJob. MozReview-Commit-ID: KJVP7BExVEm
dom/media/MediaDecoderStateMachine.cpp
--- 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) {}