Bug 1322800 part 11 - use SeekingState::mSeekJob.mTarget to replace NextFrameSeekTask::mTarget; r?jwwang draft
authorKaku Kuo <kaku@mozilla.com>
Wed, 14 Dec 2016 15:48:22 +0800
changeset 450339 337900aa0f40f68ceb495f4775b4fce358243133
parent 450338 04a12b0bf770991e2670e4db2054233b5485d541
child 450340 5d222dd4abb4382bc06e036b66e8cbce92982477
push id38836
push userbmo:kaku@mozilla.com
push dateFri, 16 Dec 2016 10:40:27 +0000
reviewersjwwang
bugs1322800
milestone53.0a1
Bug 1322800 part 11 - use SeekingState::mSeekJob.mTarget to replace NextFrameSeekTask::mTarget; r?jwwang MozReview-Commit-ID: DkkOoAEgNfH
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1540,17 +1540,17 @@ private:
       MOZ_ASSERT_UNREACHABLE("We cannot handle RAW_DATA or NULL_DATA here.");
     }
   }
 
   int64_t CalculateNewCurrentTime() const override
   {
     // The HTMLMediaElement.currentTime should be updated to the seek target
     // which has been updated to the next frame's time.
-    return mTask->mTarget.GetTime().ToMicroseconds();
+    return mSeekJob.mTarget.GetTime().ToMicroseconds();
   }
 
   void OnSeekTaskResolved(const SeekTaskResolveValue& aValue)
   {
     mSeekTaskRequest.Complete();
 
     if (aValue.mSeekedAudioData) {
       mMaster->Push(aValue.mSeekedAudioData);
@@ -1624,32 +1624,32 @@ private:
   }
 
   // Update the seek target's time before resolving this seek task, the updated
   // time will be used in the MDSM::SeekCompleted() to update the MDSM's position.
   void UpdateSeekTargetTime()
   {
     RefPtr<MediaData> data = VideoQueue().PeekFront();
     if (data) {
-      mTask->mTarget.SetTime(TimeUnit::FromMicroseconds(data->mTime));
+      mSeekJob.mTarget.SetTime(TimeUnit::FromMicroseconds(data->mTime));
     } else if (mTask->mSeekedVideoData) {
-      mTask->mTarget.SetTime(TimeUnit::FromMicroseconds(mTask->mSeekedVideoData->mTime));
+      mSeekJob.mTarget.SetTime(TimeUnit::FromMicroseconds(mTask->mSeekedVideoData->mTime));
     } else if (mTask->mIsVideoQueueFinished || VideoQueue().AtEndOfStream()) {
-      mTask->mTarget.SetTime(mTask->mDuration);
+      mSeekJob.mTarget.SetTime(mTask->mDuration);
     } else {
       MOZ_ASSERT(false, "No data!");
     }
   }
 
   void MaybeFinishSeek()
   {
     if (IsAudioSeekComplete() && IsVideoSeekComplete()) {
       UpdateSeekTargetTime();
 
-      auto time = mTask->mTarget.GetTime().ToMicroseconds();
+      auto time = mSeekJob.mTarget.GetTime().ToMicroseconds();
       DiscardFrames(AudioQueue(), [time] (int64_t aSampleTime) {
         return aSampleTime < time;
       });
 
       mTask->Resolve(__func__); // Call to MDSM::SeekCompleted();
     }
   }