Bug 1307677. Part 2 - add some assertion to DecodingFirstFrameState::HandleSeek(). draft
authorJW Wang <jwwang@mozilla.com>
Tue, 04 Oct 2016 16:36:42 +0800
changeset 421048 baac81f5fae2bba25154d82719cbafbe3e07d9b8
parent 421047 9301f2f96a0d77e21da399c7e176d804a84a1eb7
child 421049 ad2212940c6cd0627ccd784516345b8463b9372e
push id31369
push userjwwang@mozilla.com
push dateWed, 05 Oct 2016 07:51:53 +0000
bugs1307677
milestone52.0a1
Bug 1307677. Part 2 - add some assertion to DecodingFirstFrameState::HandleSeek(). MozReview-Commit-ID: 2RbAHFocwGy
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -490,17 +490,20 @@ public:
 
     if (!Reader()->ForceZeroStartTime()) {
       SLOG("Not Enough Data to seek at this stage, queuing seek");
       mMaster->mQueuedSeek.RejectIfExists(__func__);
       mMaster->mQueuedSeek.mTarget = aTarget;
       return mMaster->mQueuedSeek.mPromise.Ensure(__func__);
     }
 
-    mMaster->mQueuedSeek.RejectIfExists(__func__);
+    // Since ForceZeroStartTime() is true, we should've transitioned to SEEKING
+    // in Enter() if there is any queued seek.
+    MOZ_ASSERT(!mMaster->mQueuedSeek.Exists());
+
     SLOG("Changed state to SEEKING (to %lld)", aTarget.GetTime().ToMicroseconds());
     SeekJob seekJob;
     seekJob.mTarget = aTarget;
     return mMaster->InitiateSeek(Move(seekJob));
   }
 
 private:
   // Notify FirstFrameLoaded if having decoded first frames and