Bug 1324371. Part 6 - assert |VideoQueue().AtEndOfStream()|. r?kaku draft
authorJW Wang <jwwang@mozilla.com>
Mon, 19 Dec 2016 17:40:10 +0800
changeset 451476 d835107e7491c5a01469c7aa9b944478e738843f
parent 451475 536df1369e59f78e656b1dbbb6f8f50ac21dceb0
child 451477 3fadecee89e97b9cf9ffe464265c682ad5c5d28b
push id39197
push userjwwang@mozilla.com
push dateTue, 20 Dec 2016 12:45:19 +0000
reviewerskaku
bugs1324371
milestone53.0a1
Bug 1324371. Part 6 - assert |VideoQueue().AtEndOfStream()|. r?kaku UpdateSeekTargetTime() is called only when NeedMoreVideo() is false. if |data| is null, both |VideoQueue().IsFinished()| and |VideoQueue().GetSize() == 0| must be true and therefore |VideoQueue().AtEndOfStream()| must also be true. MozReview-Commit-ID: DZKiVtt6iIM
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1442,20 +1442,19 @@ 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) {
       mSeekJob.mTarget->SetTime(TimeUnit::FromMicroseconds(data->mTime));
-    } else if (VideoQueue().AtEndOfStream()) {
+    } else {
+      MOZ_ASSERT(VideoQueue().AtEndOfStream());
       mSeekJob.mTarget->SetTime(mDuration);
-    } else {
-      MOZ_ASSERT(false, "No data!");
     }
   }
 
   void FinishSeek()
   {
     MOZ_ASSERT(!NeedMoreVideo());
     UpdateSeekTargetTime();
     auto time = mSeekJob.mTarget->GetTime().ToMicroseconds();