Bug 1299714 - Add back the missing timeout protection back to |VideoTrackEncoder::Init|. r?pehrsons,jesup draft
authorChia-hung Tai <ctai@mozilla.com>
Thu, 01 Sep 2016 11:51:11 +0800
changeset 408503 f859a740ae540c8057450bab7f4aac7217a7d591
parent 406450 1a5b53a831e5a6c20de1b081c774feb3ff76756c
child 408504 1210d3efdc20172bc7d78bfd32a42af0c314bf8e
child 409023 3cd29560c1903a9495859a36746d8f7f22a62a81
child 409024 501a368748027d3d163419d07f3940f1a93a5f03
child 409796 3e99b16d9b374a5c5ee32194c4866beacf7e48ac
child 410022 3797a005c4349118bbfda889590d31d2f71c7593
child 410091 dc5df905917d673ba0aac9427cbb21037910ff2e
child 410120 fd69c1bc1007b3d812e18372bb6f38f6f5e8fad7
push id28230
push userbmo:ctai@mozilla.com
push dateThu, 01 Sep 2016 07:49:46 +0000
reviewerspehrsons, jesup
bugs1299714
milestone51.0a1
Bug 1299714 - Add back the missing timeout protection back to |VideoTrackEncoder::Init|. r?pehrsons,jesup MozReview-Commit-ID: AhgikMTvxAE
dom/media/encoder/TrackEncoder.cpp
--- a/dom/media/encoder/TrackEncoder.cpp
+++ b/dom/media/encoder/TrackEncoder.cpp
@@ -214,16 +214,25 @@ VideoTrackEncoder::Init(const VideoSegme
        LOG("[VideoTrackEncoder]: Fail to initialize the encoder!");
        NotifyCancel();
      }
      break;
    }
 
    iter.Next();
   }
+
+  mNotInitDuration += aSegment.GetDuration();
+  if ((mNotInitDuration / mTrackRate > INIT_FAILED_DURATION) &&
+      mInitCounter > 1) {
+    LOG("[VideoTrackEncoder]: Initialize failed for %ds.", INIT_FAILED_DURATION);
+    NotifyEndOfStream();
+    return;
+  }
+
 }
 
 void
 VideoTrackEncoder::SetCurrentFrames(const VideoSegment& aSegment)
 {
   if (mCanceled) {
     return;
   }