- 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 8 commits
-
-
-
If someone calls player.canPlayType() with HLS registered as a source handler, it would fail at runtime. Related to videojs/video.js#2709.
Gaurav Saxena committed -
Make sure that Uint8Array is available before registering Flash source handler
David LaPalomento committed -
-
Fire durationchange after the seekable range has been modified whether the MediaSource is ready immediately or the modification needs to occur after the current update finishes.
David LaPalomento committed -
Pick up fixes for the setting the live point and component-initialization.
David LaPalomento committed
- 15 Nov, 2015 3 commits
-
-
Use the experimental implementation of MediaSource.addSeekableRange_() to allow HLS to specify greater seekable ranges then the current buffered region. Requires https://github.com/videojs/videojs-contrib-media-sources/pull/55.
David LaPalomento committed -
Separate out the source handler object from the HLS namespace. Now, videojs.Hls is an object that is used to organize exports from this library. The actual source handler prototype is now HlsHandler. Intended to be defensive about the backwards-compatibility concerns in https://github.com/videojs/video.js/pull/2814.
David LaPalomento committed -
Use the dist version of contrib-media-sources on the example and stats pages.
David LaPalomento committed
-
- 12 Nov, 2015 1 commit
-
-
One test case was modifying the page-level hls options but failing to restore the old values. This leaked environment issues into other tests.
David LaPalomento committed
-
- 10 Nov, 2015 1 commit
-
-
Fixes #430. If drainBuffer is called after updating is reset on the sourceBuffer but before updateend fires, a segment could be appended twice. Check to make sure a segment hasn't already been appended before proceeding with draining the buffer.
David LaPalomento committed
-
- 06 Nov, 2015 1 commit
-
-