Bug 1272964: P1. Only activate skip to next keyframe logic when next keyframe time is known. r=gerald draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Tue, 17 May 2016 22:26:34 +0800
changeset 369137 15fe980a02a561e5e6fbc680e99365a10ec734b7
parent 369022 c67dc1f9fab86d4f2cf3224307809c44fe3ce820
child 369138 697c20d0f07ea9166543ba1074df0fceb4c6a8d3
push id18758
push userbmo:jyavenard@mozilla.com
push dateFri, 20 May 2016 13:58:31 +0000
reviewersgerald
bugs1272964
milestone49.0a1
Bug 1272964: P1. Only activate skip to next keyframe logic when next keyframe time is known. r=gerald MozReview-Commit-ID: DoAstqSRnyc
dom/media/MediaFormatReader.cpp
--- a/dom/media/MediaFormatReader.cpp
+++ b/dom/media/MediaFormatReader.cpp
@@ -499,17 +499,17 @@ MediaFormatReader::ShouldSkip(bool aSkip
   media::TimeUnit nextKeyframe;
   nsresult rv = mVideo.mTrackDemuxer->GetNextRandomAccessPoint(&nextKeyframe);
   if (NS_FAILED(rv)) {
     return aSkipToNextKeyframe;
   }
   return (nextKeyframe < aTimeThreshold ||
           (mVideo.mTimeThreshold &&
            mVideo.mTimeThreshold.ref().mTime < aTimeThreshold)) &&
-         nextKeyframe.ToMicroseconds() >= 0;
+         nextKeyframe.ToMicroseconds() >= 0 && !nextKeyframe.IsInfinite();
 }
 
 RefPtr<MediaDecoderReader::MediaDataPromise>
 MediaFormatReader::RequestVideoData(bool aSkipToNextKeyframe,
                                     int64_t aTimeThreshold)
 {
   MOZ_ASSERT(OnTaskQueue());
   MOZ_DIAGNOSTIC_ASSERT(mSeekPromise.IsEmpty(), "No sample requests allowed while seeking");