Make sure the playlist loader is immediately disposed when the source is changed instead of waiting for sourceopen. Previously, it was possible that the source would be changed and fillBuffer() would run before the new set of playlists had been loaded. In that case, HLS would download a segment from the old playlist and block drainBuffer() from making progress because playlist.segments in the segmentBuffer element would be undefined. Switch from using timeupdate to trigger buffering to using straight window.timeout which fixes#160 and fixes#133.
Parse the elementary stream descriptor out of the PMT declaring the metadata stream, if present. Use those bytes to build the inBandMetadataDispatchType field on the generated text track.
Listen for metadata events during transmuxing and expose each ID3 frame as a cue at the appropriate time. Assume TXXX and WXXX frames will use UTF-8 encoded text. Start work on exposing the dispatch type for the generated text track.
On seeking to a discontinuity point, the buffer would not refill and
the player would stop working. This commit fixes that issue, and
adjusts the test to catch the previous failure.
On seeking to a discontinuity point, the buffer would not refill and
the player would stop working. This commit fixes that issue, and
adjusts the test to catch the previous failure.
The old headers were claiming full copyright and no license.
The videojs-hls.js header was modified to include a link to the main
license from the repo.
Multiply the bandwidth measurement from the master playlist by five to account for the higher ratio of latency to throughput for this request relative to segments. Using the bandwidth number directly was almost always resulting in very low initial bandwidth estimates and poorer quality startup than necessary. The scaling factor was obtained by testing a number of videos from a high throughput/low latency connection as an upper bound and the same connection throttled to "DSL" levels with Network Link Conditioner for the lower bound. Update the playlist switching simulator to apply initial bandwidth estimates and reduce the simulation duration a bit so that the early behavior is more visible.
only issue endOfStream in vod mode.
fix invalid index error.
add test for live endOfStream.
In some situation(such as slow downloading), (original.mediaSequence + mediaIndex) - update.mediaSequence may be < 0,
It will cause exceptions in place such as: videojs.Hls.prototype.fetchKeys = function(playlist, index)
Some tests failed in the previous build, mostly due to syntactic
errors. Also restored a section of code in translateMediaIndex whose
absence made a test fail.