Bug 1238343 - Update MDSM::mIsAudioPrerolling/mIsVideoPrerolling when playback rate changes. r=cpearce. draft
authorJW Wang <jwwang@mozilla.com>
Sun, 10 Jan 2016 19:11:59 +0800
changeset 320334 7ef56dda0d074bc6819149a52a96947a5b466976
parent 320333 a55b2226cc22e058d76497140a05aeb1b1ebb932
child 320335 bcfa8145cff388644453df36b8891c40cff8d3c0
push id9172
push userjwwang@mozilla.com
push dateSun, 10 Jan 2016 22:43:12 +0000
reviewerscpearce
bugs1238343
milestone46.0a1
Bug 1238343 - Update MDSM::mIsAudioPrerolling/mIsVideoPrerolling when playback rate changes. r=cpearce.
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -2763,16 +2763,23 @@ MediaDecoderStateMachine::LogicalPlaybac
   if (mLogicalPlaybackRate == 0) {
     // This case is handled in MediaDecoder by pausing playback.
     return;
   }
 
   mPlaybackRate = mLogicalPlaybackRate;
   mMediaSink->SetPlaybackRate(mPlaybackRate);
 
+  if (mIsAudioPrerolling && DonePrerollingAudio()) {
+    StopPrerollingAudio();
+  }
+  if (mIsVideoPrerolling && DonePrerollingVideo()) {
+    StopPrerollingVideo();
+  }
+
   ScheduleStateMachine();
 }
 
 void MediaDecoderStateMachine::PreservesPitchChanged()
 {
   MOZ_ASSERT(OnTaskQueue());
   mMediaSink->SetPreservesPitch(mPreservesPitch);
 }