Bug 1297265: P5. Rework Blank Decoder use of InputExhausted. r?kamidphish draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Tue, 30 Aug 2016 15:20:40 +1000
changeset 407293 15fd9ac2134437b2fd9b005c87ae581d1d02d22c
parent 407292 0eb31c3fae3cd377aed647ba2701f0f40912716e
child 407294 930d42c5c5d8b1435b46bd8b99a61e3ef9b65443
push id27921
push userbmo:jyavenard@mozilla.com
push dateTue, 30 Aug 2016 07:23:20 +0000
reviewerskamidphish
bugs1297265
milestone51.0a1
Bug 1297265: P5. Rework Blank Decoder use of InputExhausted. r?kamidphish MozReview-Commit-ID: KEfWo1cdRkG
dom/media/platforms/agnostic/BlankDecoderModule.cpp
--- a/dom/media/platforms/agnostic/BlankDecoderModule.cpp
+++ b/dom/media/platforms/agnostic/BlankDecoderModule.cpp
@@ -88,24 +88,23 @@ private:
     if (!aData) {
       mCallback->Error(MediaDataDecoderError::FATAL_ERROR);
       return;
     }
 
     // Frames come out in DTS order but we need to output them in PTS order.
     mReorderQueue.Push(aData);
 
-    while (mReorderQueue.Length() > mMaxRefFrames) {
-      mCallback->Output(mReorderQueue.Pop().get());
-    }
-
     if (mReorderQueue.Length() <= mMaxRefFrames) {
       mCallback->InputExhausted();
+    } else {
+      while (mReorderQueue.Length() > mMaxRefFrames) {
+        mCallback->Output(mReorderQueue.Pop().get());
+      }
     }
-
   }
 
 private:
   nsAutoPtr<BlankMediaDataCreator> mCreator;
   MediaDataDecoderCallback* mCallback;
   const uint32_t mMaxRefFrames;
   ReorderQueue mReorderQueue;
   TrackInfo::TrackType mType;