- 11 Dec, 2015 6 commits
-
-
Firefox doesn't allow you to seek until 'canplay' is fired and doesn't fire canplay until after playback has begun. As a result, seeking to the right point in a live stream requires setupFirstPlay to wait for 'canplay' and check that the readyState signifies that we can finally seek.
jrivera committed -
The state of the player can change between fillBuffer and drainBuffer so we should decide where to place a segment when we decided which segment to fetch
jrivera committed -
There is no guarantee that different playlists have the same media-sequence number in a live stream. This would throw off expired calculations and make all our times useless. The fetcher should eventually fetch a segment with timing information and that will bring our expired calculation back in line.
jrivera committed -
-
- 09 Dec, 2015 2 commits
- 08 Dec, 2015 1 commit
-
-
- 07 Dec, 2015 1 commit
- 05 Dec, 2015 2 commits
-
-
(development branch) fix calling abort on a sourceBuffer whose mediaSource.readyState != open
David LaPalomento committed -
-
- 04 Dec, 2015 1 commit
-
-
- 01 Dec, 2015 1 commit
-
-
- 30 Nov, 2015 3 commits
-
-
…allback is no longer valid In XHR, aborts eventually cause timeouts which cause the callback to be issued again later. We would see that it was a timeout and clear two important state holding properties on the Hls object which could cause problems processing the current segment
jrivera committed -
We can simplify this code since we no longer try to store segment start information We also try to be more conservative in what data we save. If the last append somehow resulted in more than one change we can't be sure which end-point is the one that belongs to the segment so save nothing.
jrivera committed -
We are no longer storing start information in the segments which allows us to greatly simplify this function
jrivera committed
-
- 27 Nov, 2015 5 commits
-
-
-
Track player events and display counts on the stats page. Add a toggle to force Flash mode.
David LaPalomento committed -
getMediaIndexForTime() looks to have a boundary issue that is causing seeks to be unreliable in live streams. While we track that down, add a tiny delta to seeks to avoid the problem.
David LaPalomento committed -
When we switch playlists in a live video, we have to find the right place in the new playlist to continue buffering. This is complicated because we can't guarantee the two variants are segmented at the same time positions or that the windows of time they represent are exactly in sync. Most of the time, they're pretty close to one another and we can use that fact to make better guesses at which segment to download when switching. This PR adds back tracking of expired content in the playlist loader, which can then be used to estimate the seekable window for live playlists even before we've buffered any segments from them. This also allows seekable to be accurate even when the player has paused for a long time and all the segment timing information we gathered has gone out of date. To make rejoining or seeking in a live stream even more robust, we detect when a seek "misses" the live window and seek again to a safe position.
David LaPalomento committed
-
- 21 Nov, 2015 2 commits
-
-
- 20 Nov, 2015 6 commits
-
-
Make the default bandwidth estimate a bit less conservative. On bad connections, this may lead to slower startups but it can be overridden through options or by setting the bandwidth property early.
David LaPalomento committed -
Look forward and backward through the playlist to find an anchor to base seekable calculations on. This is helpful for live playlists in particular, where the only way to determine the correct starting position for the seekable range is to look at where future segments have ended up in the buffer. Without this change, the start of seekable was always zero, even if the live sliding window had moved forward.
David LaPalomento committed -
* Moved blacklisting to above the rendition selection line so that we don't try to select the rendition that was just blacklisted * Playlist Loader now emits the playlist it was trying to load so that it can be blacklisted when initial load was unsuccessful
jrivera committed -
-
- 19 Nov, 2015 2 commits
- 18 Nov, 2015 2 commits
-
- 17 Nov, 2015 5 commits
-
-
-
Increased the bandwidthVariance based on similar constraints in other projects Added a fudge factor of half a frame to account for TimeRanges rounding Don't try to cancel a fetch in the middle of an append operation
jrivera committed -
Allow h.264 codecs to mingle with one another. Only exclude variants based on audio if one or the other is using HE-AAC.
David LaPalomento committed -
Media Source Extensions is very picky about the type of media data fed to it. If you stop passing video because you've switched to an audio-only rendition, for instance, MSE will stall until video data is provided. Since we don't have a good way of reconfiguring a Media Source once we've started adding SourceBuffers to it yet, filter out variant playlists that we know are incompatible with the current SourceBuffer configuration.
David LaPalomento committed
-
- 16 Nov, 2015 1 commit