Bug 1258627 - always schedule next cycle so MDSM has a chance to leave buffering state. r=cpearce. draft
authorJW Wang <jwwang@mozilla.com>
Tue, 22 Mar 2016 16:08:52 +0800
changeset 343321 8234c86097f38f6ec3a64e86e205688d2c020e9e
parent 343320 a2d202512b159de863214b214054a91ee914da77
child 516738 e5fc5de1e29f6dee48e7cb3ba82380164051f110
push id13584
push userjwwang@mozilla.com
push dateTue, 22 Mar 2016 08:11:46 +0000
reviewerscpearce
bugs1258627
milestone48.0a1
Bug 1258627 - always schedule next cycle so MDSM has a chance to leave buffering state. r=cpearce. MozReview-Commit-ID: 2XKpu0np700
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -827,16 +827,21 @@ MediaDecoderStateMachine::OnNotDecoded(M
   }
   switch (mState) {
     case DECODER_STATE_BUFFERING:
     case DECODER_STATE_DECODING: {
       if (MaybeFinishDecodeFirstFrame()) {
         return;
       }
       CheckIfDecodeComplete();
+
+      // Schedule next cycle to see if we can leave buffering state.
+      if (mState == DECODER_STATE_BUFFERING) {
+        ScheduleStateMachine();
+      }
       return;
     }
     case DECODER_STATE_SEEKING: {
       if (!mCurrentSeek.Exists()) {
         // We've received a sample from a previous decode. Discard it.
         return;
       }