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 368153 302d2588aa769fa261c583dc61b33c75a2c26e44
parent 368119 3d399336c4534f705a53c8fdbf4301f8f7120d92
child 368154 1fdf721568c6c9e37b216b2b55ded61bcce18302
child 368164 234bf252b1cbfaefd6f10f4f415481c512962824
child 368690 dde1ddd66a5ce7856d939ad7a79507f4aa07af43
push id18436
push userbmo:jyavenard@mozilla.com
push dateWed, 18 May 2016 03:52:44 +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");