Bug 1347480 - flush decoder after draining to make it accept more input. r?jya draft
authorJohn Lin <jolin@mozilla.com>
Wed, 15 Mar 2017 18:38:51 +0800
changeset 500327 4aaf22ad79e69cd9bdb6e5f163d2291368c52f7f
parent 499818 db380de11c75dd6679763a743153ff266e94f554
child 549606 568dc426a12405c15d4354caa4e69e505ed5faae
push id49687
push userbmo:jolin@mozilla.com
push dateFri, 17 Mar 2017 02:38:08 +0000
reviewersjya
bugs1347480
milestone55.0a1
Bug 1347480 - flush decoder after draining to make it accept more input. r?jya MediaCodec doesn't take any input after EOS unless it is flushed. MozReview-Commit-ID: LoHlN753e8J
dom/media/platforms/android/RemoteDataDecoder.cpp
--- a/dom/media/platforms/android/RemoteDataDecoder.cpp
+++ b/dom/media/platforms/android/RemoteDataDecoder.cpp
@@ -651,16 +651,18 @@ RemoteDataDecoder::DrainComplete()
     return;
   }
   AssertOnTaskQueue();
   if (mShutdown) {
     return;
   }
   mDrainStatus = DrainStatus::DRAINED;
   ReturnDecodedData();
+  // Make decoder accept input again.
+  mJavaDecoder->Flush();
 }
 
 void
 RemoteDataDecoder::Error(const MediaResult& aError)
 {
   if (!mTaskQueue->IsCurrentThreadIn()) {
     mTaskQueue->Dispatch(
       NewRunnableMethod<MediaResult>(this, &RemoteDataDecoder::Error, aError));