Bug 1378085 p5 - override HandleWaitingForAudio(), HandleAudioCanceled(), and HandleEndOfAudio(); r?jwwang draft
authorKaku Kuo <kaku@mozilla.com>
Thu, 06 Jul 2017 11:47:21 +0800
changeset 604566 bff39df072a685569fddac86b922db24bb88fefa
parent 604565 60c8a9666acfc2032da4a36e184e6ce5e5b9d2cc
child 604567 851fffe47b4aa406d2ef36e3bdf74c6dab3e9b41
push id67123
push userbmo:kaku@mozilla.com
push dateThu, 06 Jul 2017 03:57:15 +0000
reviewersjwwang
bugs1378085
milestone56.0a1
Bug 1378085 p5 - override HandleWaitingForAudio(), HandleAudioCanceled(), and HandleEndOfAudio(); r?jwwang MozReview-Commit-ID: Jyw3yyutGjn
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1101,38 +1101,32 @@ public:
       RequestVideoData();
       return;
     }
     MaybeFinishSeek();
   }
 
   void HandleWaitingForAudio() override
   {
-    if (!mSeekJob.mTarget->IsVideoOnly()) {
-      MOZ_ASSERT(!mDoneAudioSeeking);
-      mMaster->WaitForData(MediaData::AUDIO_DATA);
-    }
+    MOZ_ASSERT(!mDoneAudioSeeking);
+    mMaster->WaitForData(MediaData::AUDIO_DATA);
   }
 
   void HandleAudioCanceled() override
   {
-    if (!mSeekJob.mTarget->IsVideoOnly()) {
-      MOZ_ASSERT(!mDoneAudioSeeking);
-      RequestAudioData();
-    }
+    MOZ_ASSERT(!mDoneAudioSeeking);
+    RequestAudioData();
   }
 
   void HandleEndOfAudio() override
   {
-    if (!mSeekJob.mTarget->IsVideoOnly()) {
-      MOZ_ASSERT(!mDoneAudioSeeking);
-      AudioQueue().Finish();
-      mDoneAudioSeeking = true;
-      MaybeFinishSeek();
-    }
+    MOZ_ASSERT(!mDoneAudioSeeking);
+    AudioQueue().Finish();
+    mDoneAudioSeeking = true;
+    MaybeFinishSeek();
   }
 
   void HandleWaitingForVideo() override
   {
     MOZ_ASSERT(!mDoneVideoSeeking);
     mMaster->WaitForData(MediaData::VIDEO_DATA);
   }
 
@@ -1786,16 +1780,22 @@ public:
     MOZ_ASSERT(aAudio);
 
     // Video-only seek doesn't reset audio decoder. There might be pending audio
     // requests when AccurateSeekTask::Seek() begins. We will just store the
     // data without checking |mDiscontinuity| or calling
     // DropAudioUpToSeekTarget().
     mMaster->PushAudio(aAudio);
   }
+
+  void HandleWaitingForAudio() override { }
+
+  void HandleAudioCanceled() override { }
+
+  void HandleEndOfAudio() override { }
 };
 
 RefPtr<MediaDecoder::SeekPromise>
 MediaDecoderStateMachine::DormantState::HandleSeek(SeekTarget aTarget)
 {
   if (aTarget.IsNextFrame()) {
     // NextFrameSeekingState doesn't reset the decoder unlike
     // AccurateSeekingState. So we first must come out of dormant by seeking to