Bug 1323931. Part 3 - remove mIsAudioQueueFinished/mIsVideoQueueFinished and finish queues in place. r?kaku draft
authorJW Wang <jwwang@mozilla.com>
Fri, 16 Dec 2016 15:28:09 +0800
changeset 450323 eeb81be28b8f21a3a266f2165ab3a4c0a081df6d
parent 450322 e67869b74620a3bcc726b9341a516c41634ca69c
child 450324 d5aaf086df264f02e5ea6536a1446d06e69fb10e
push id38830
push userjwwang@mozilla.com
push dateFri, 16 Dec 2016 10:01:24 +0000
reviewerskaku
bugs1323931
milestone53.0a1
Bug 1323931. Part 3 - remove mIsAudioQueueFinished/mIsVideoQueueFinished and finish queues in place. r?kaku MozReview-Commit-ID: CiCudi2F9WV
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -971,20 +971,20 @@ public:
       } else {
         RequestVideoData();
       }
       return;
     }
 
     if (aError == NS_ERROR_DOM_MEDIA_END_OF_STREAM) {
       if (aType == MediaData::AUDIO_DATA) {
-        mIsAudioQueueFinished = true;
+        AudioQueue().Finish();
         mDoneAudioSeeking = true;
       } else {
-        mIsVideoQueueFinished = true;
+        VideoQueue().Finish();
         mDoneVideoSeeking = true;
         if (mFirstVideoFrameAfterSeek) {
           // Hit the end of stream. Move mFirstVideoFrameAfterSeek into
           // mSeekedVideoData so we have something to display after seeking.
           mSeekedVideoData = mFirstVideoFrameAfterSeek.forget();
         }
       }
       MaybeFinishSeek();
@@ -1258,37 +1258,21 @@ private:
     }
 
     if (mSeekedVideoData) {
       mMaster->Push(mSeekedVideoData);
       mMaster->mDecodedVideoEndTime = std::max(
         mSeekedVideoData->GetEndTime(), mMaster->mDecodedVideoEndTime);
     }
 
-    if (mIsAudioQueueFinished) {
-      AudioQueue().Finish();
-    }
-
-    if (mIsVideoQueueFinished) {
-      VideoQueue().Finish();
-    }
-
     SeekCompleted();
   }
 
   void OnSeekTaskRejected(const MediaResult& aError)
   {
-    if (mIsAudioQueueFinished) {
-      AudioQueue().Finish();
-    }
-
-    if (mIsVideoQueueFinished) {
-      VideoQueue().Finish();
-    }
-
     mMaster->DecodeError(aError);
   }
 
   /*
    * Track the current seek promise made by the reader.
    */
   MozPromiseRequestHolder<MediaDecoderReader::SeekPromise> mSeekRequest;
 
@@ -1305,18 +1289,16 @@ private:
   // last frame in the media.
   RefPtr<MediaData> mFirstVideoFrameAfterSeek;
 
   /*
    * Information which are going to be returned to MDSM.
    */
   RefPtr<MediaData> mSeekedAudioData;
   RefPtr<MediaData> mSeekedVideoData;
-  bool mIsAudioQueueFinished = false;
-  bool mIsVideoQueueFinished = false;
 };
 
 class MediaDecoderStateMachine::NextFrameSeekingState
   : public MediaDecoderStateMachine::SeekingState
 {
 public:
   explicit NextFrameSeekingState(Master* aPtr) : SeekingState(aPtr)
   {