|
|
@ -558,8 +558,14 @@ export class MasterPlaylistController extends videojs.EventTarget { |
|
|
|
// we want to switch down to lower resolutions quickly to continue playback, but
|
|
|
|
// ensure we have some buffer before we switch up to prevent us running out of
|
|
|
|
// buffer while loading a higher rendition
|
|
|
|
// If the playlist is live, then we want to not take low water line into account
|
|
|
|
// If the playlist is live, then we want to not take low water line into account.
|
|
|
|
// This is because in LIVE, the player plays 3 segments from the end of the
|
|
|
|
// playlist, and if `BUFFER_LOW_WATER_LINE` is greater than the duration availble
|
|
|
|
// in those segments, a viewer will never experience a rendition upswitch.
|
|
|
|
// For the same reason as LIVE, we ignore the low waterline when the VOD duration
|
|
|
|
// is below the waterline
|
|
|
|
if (!currentPlaylist.endList || |
|
|
|
this.duration() < Config.BUFFER_LOW_WATER_LINE || |
|
|
|
nextPlaylist.attributes.BANDWIDTH < currentPlaylist.attributes.BANDWIDTH || |
|
|
|
forwardBuffer >= Config.BUFFER_LOW_WATER_LINE) { |
|
|
|
this.masterPlaylistLoader_.media(nextPlaylist); |
|
|
|