Bug 1299072: P17. Return last decoding error once threshold reached. r?gerald draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Tue, 13 Sep 2016 13:03:21 +1000
changeset 412882 22b7bd3cf3aa8302147c2d95be517f914a1fa55b
parent 412881 838e0c63e017bd15ba3a6d20ff84cd76ec1eb3ef
child 412883 20f4c23e0b481997dcddfcd5eedccd2adb61c06f
push id29276
push userbmo:jyavenard@mozilla.com
push dateTue, 13 Sep 2016 03:29:20 +0000
reviewersgerald
bugs1299072
milestone51.0a1
Bug 1299072: P17. Return last decoding error once threshold reached. r?gerald MozReview-Commit-ID: JbZkoErRFla
dom/media/MediaFormatReader.cpp
--- a/dom/media/MediaFormatReader.cpp
+++ b/dom/media/MediaFormatReader.cpp
@@ -1244,21 +1244,21 @@ MediaFormatReader::Update(TrackType aTra
 
   if (decoder.mNeedDraining) {
     DrainDecoder(aTrack);
     return;
   }
 
   if (decoder.mError && !decoder.HasFatalError()) {
     decoder.mDecodePending = false;
-    decoder.mError.reset();
     if (++decoder.mNumOfConsecutiveError > decoder.mMaxConsecutiveError) {
-      NotifyError(aTrack);
+      NotifyError(aTrack, decoder.mError.ref());
       return;
     }
+    decoder.mError.reset();
     LOG("%s decoded error count %d", TrackTypeToStr(aTrack),
                                      decoder.mNumOfConsecutiveError);
     media::TimeUnit nextKeyframe;
     if (aTrack == TrackType::kVideoTrack && !decoder.HasInternalSeekPending() &&
         NS_SUCCEEDED(decoder.mTrackDemuxer->GetNextRandomAccessPoint(&nextKeyframe))) {
       SkipVideoDemuxToNextKeyFrame(decoder.mLastSampleTime.refOr(TimeInterval()).Length());
       return;
     }