Bug 1258627 - always schedule next cycle so MDSM has a chance to leave buffering state. r=cpearce.
MozReview-Commit-ID: 2XKpu0np700
--- 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;
}