Bug 1407243 - Don't immediately fire canplaythrough for infinite/live streams. r?jwwang
MozReview-Commit-ID: 2LQFa8PHvO5
--- a/dom/media/mediasource/MediaSourceDecoder.cpp
+++ b/dom/media/mediasource/MediaSourceDecoder.cpp
@@ -305,21 +305,17 @@ MediaSourceDecoder::CanPlayThroughImpl()
}
if (IsNaN(mMediaSource->Duration())) {
// Don't have any data yet.
return false;
}
TimeUnit duration = TimeUnit::FromSeconds(mMediaSource->Duration());
auto currentPosition = CurrentPosition();
- if (duration.IsInfinite()) {
- // We can't make an informed decision and just assume that it's a live
- // stream
- return true;
- } else if (duration <= currentPosition) {
+ if (duration <= currentPosition) {
return true;
}
// If we have data up to the mediasource's duration or 10s ahead, we can
// assume that we can play without interruption.
TimeIntervals buffered = GetBuffered();
buffered.SetFuzz(MediaSourceDemuxer::EOS_FUZZ / 2);
TimeUnit timeAhead =
std::min(duration, currentPosition + TimeUnit::FromSeconds(10));