Set active data channel per-field instead of globally for CEA-608
Fixed an issue with captions being placed in the wrong CC
5.12.0 (2017-10-19)
use lastSegmentDuration + 2 * targetDuration for safe live point instead of 3 segments #1271
do not let back buffer trimming remove within target duration of current time
increase threshold for stuck playlist checking
Fix video corruption on rendition switches in IE11 Win 8.1+ and Edge #1259
segment-time-mapping event
update contrib-media-sources to 4.6.0
prioritize user enabled playlists over blacklist #1269
never allow playlist selector to select a playlist that has been permanently blacklisted due to incompatible configuration
When filtering playlists within the playlist selectors, if there are no enabled playlists (i.e. not blacklisted internally AND not disabled by the user) available, then fall back to using the list of playlists not disabled by the user regardless of blacklist state.
make sure playlists blacklisted from an illegal media switch is permanently blacklisted, as there is no reason to try it again at a later time.
The representation api will return a list that filters out just incompatible playlists instead of both incompatible playlists and temporary blacklisted playlists.
5.11.1 (2017-10-11)
update videojs-contrib-media-sources to 4.5.3 #1278
update mux.js to 4.2.2
Use the first audio and video tracks in the PMT
fix InvalidStateError for live playback in IE11 #1266
5.11.0 (2017-09-20)
Update videojs-contrib-media-sources to 4.5.2 #1262
let video.js remoteTextTrack auto cleanup take care of text track cleanup
Blacklist incompatible playlists on probe if codec information not in master manifest #1257
Seek to seekable start when seeking before the seekable window #1260
Removes the Firefox 48 check for for supporting a change in audio info
Fix delayed switching between audio tracks and intermittent desync.
5.10.1 (2017-08-28)
fix: flv metadata tags now appened when audio info changes #1245
5.10.0 (2017-08-22)
CEA608: support for cc2-cc4, special/extended characters, formatting #1096
All four CC tracks are now available
If CLOSED-CAPTIONS are specified in the master manifest, the corresponding CC text tracks will be labled appropriately, otherwise will be labled CC1 - CC4
Use a starting bandwidth value of 0.0625 MB/s on Android devices
Do not allow an up-switch in quality until a certain amount of forward buffer has been filled, BUFFER_LOW_WATER_LINE
Dynamically increase the BUFFER_LOW_WATER_LINE and GOAL_BUFFER_LENGTH from 0 - > 30 and 30 -> 60 respectively during the first 30 seconds of playback
Abort segment requests before completion if bandwidth reported by the XHR progress event shows that network conditions are not fast enough to complete the request without causing rebuffering
5.7.0 (2017-06-27)
update mux.js to 4.1.5 and videojs-contrib-media-sources to 4.4.6 #1180
Only flush PES packets from TS parsing front end when they are complete
Complete is defined as any time PES_packet_length matches the data’s length OR is a video packets
Works around an issue with incomplete packets getting sent down the pipeline when the source has audio PES packets split between segments
Usage tracking events are fired when we detect a certain HLS feature, encoding setting, or API is used. Note that although these usage events are listed in the README, they may change at any time without a major version change.
For QoS measurement purposes, it may be useful to know how often the playback watcher is activating. Add new events for when the player falls off the back of the live window or stalls due to a video buffer gap.
5.1.0 (2017-01-31)
Updated videojs-contrib-media-sources to v4.2.0
Added support for inserting silence when appending a new segment will introduce a gap in the audio SourceBuffer
Remove hls-audio-track.js as this file was no longer being used #985
Stop blacklisting audio codecs as there is now wide support for switching between audio codecs on-the-fly among all modern browsers #981
Fix qualityLevels setup for videos with a source element #979
If the segment request triggers progress events (that is, XHR2 is supported), bubble those up to the tech. This makes it clearer that buffering is happening even on very slow connections.
Use webcrypto for aes-cbc segment decryption when supported #4
3.6.13 (2016-11-17)
Added the concept of systemBandwidth - a measure of the bandwidth (in mb/s) of the entire system from download through transmuxing and appending data to a flash or native media source
Adaptive bitrate selection is now based on the performance of the entire system
3.6.12 (2016-11-14)
Changed resolveUrl to use javascript only
3.6.11 (2016-11-11)
Updated the reloadSourceOnErrors plugin:
Don't try to set the source if getSource returns undefined or null
resolve-url.js now uses an iframe to contain the base and anchor elements used to resolve relateive urls
3.6.10 (2016-11-10)
Updated the reloadSourceOnErrors plugin:
Option to pass a getSource function that can be used to provide a new source to load on error
Added the ability to override the default minimum time between errors in seconds
Plugin now cleans up event bindings when initialized multiple times
Fix trimBuffer to compare correct segments and correctly trim in the live case
3.6.9 (2016-11-09)
Add a plugin that can be used to automatically reload a source if an
error occurs
Fix an error when checking if the lowest quality level is currently
in use
3.6.8 (2016-11-09)
Enhance gap skipper to seek back into the live window if playback
slips out of it. Renamed GapSkipper to PlaybackWatcher.
3.6.7 (2016-11-03)
Update videojs-contrib-media-sources to 4.0.5
Fix an issue with ID3 and 608 cue translation
3.6.6 (2016-10-21)
Use setTimeout in gap skipper instead of relying on timeupdate events
Updated videojs-contrib-media-sources to 4.0.4
Append init segment to video buffer for every segmentw
3.6.4 (2016-10-18)
Fix 'ended' event not firing after replay
Updated videojs-contrib-media-sources to 4.0.2
Only trim FLV tags when seeking to prevent triming I frames
Updated Mux.js to 3.0.2
Set h264Frame to null after we finish the frame
3.6.3 (2016-10-18)
Update videojs-contrib-media-sources to 4.0.1
Fix flash fallback
3.6.2 (2016-10-17)
Update videojs-contrib-media-sources to 4.0.0
Append init segment data on audio track changes
Normalize ID3 behavior to follow Safari's implementation
3.6.1 (2016-10-13)
Allow for initial bandwidth option of 0
Added support for MAAT in Firefox 49
Corrected deprecation warning for player.hls
3.6.0 (2016-09-27)
Updated Mux.js to 2.5.0
Added support for generating version 1 TFDT boxes
Added TS inspector
Added bundle-collapser to create smaller dist files
Added fMP4 support
Fixed a bug that resulted in us loading the first segment on a live stream
3.5.3 (2016-08-24)
Updated videojs-contrib-mediasources to 3.1.5
Updated Mux.js to 2.4.2
Fixed caption-packet sorting to be stable on Chromium
3.5.2 (2016-08-17)
Changes to the underflow-detection in the gap-skipper to remove restrictions on the size of the gaps it is able to skip
3.5.1 (2016-08-16)
Fixes an issue where playback can stall when going in/out of fullscreen
3.5.0 (2016-08-15)
Updated support for #ext-x-cue-out, #ext-x-cue-in, and #ext-x-cue-out-cont to create a single cue spanning the range of time covered by the ad break
Updated to videojs-media-sources 3.1.4
Increased the values of the FlashConstants to push more data into flash per chunk-interval
3.4.0 (2016-07-29)
Added support for #ext-x-cue-out, #ext-x-cue-in, and #ext-x-cue-out-cont via a special TextTrack
Added the ability to skip gaps caused by video underflow behavior in Chrome
3.3.0 (2016-07-25)
No longer timeout segment requests if there is only one playlist left or if we are on the lowest rendition available
Fixed a bug where sometimes the first segment was not fetched when it should have been
3.2.0 (2016-07-15)
Added an algorithm to seek over gaps in the video element's buffer when they are created because of missing video or audio frames
Moved the AES decryption logic to it's own project
3.1.0 (2016-06-09)
Added manual rendition selection API via the representations() function on each instance of the HlsHandler class
Fixed a bug where the adaptive bitrate selection algorithm would not switch to media playlists that had already been fetched from the server previously
3.0.4 (2016-05-31)
Added support for multiple alternate audio tracks
New class SegmentLoader contains all buffer maintenence and segment fetching logic
New class SourceUpdater tracks the state of asynchronous operations on a SourceBuffer and queues operations for future execution if the SoureBuffer is busy
New class MasterPlaylistController now encapsulates operations on the master playlist and coordinates media playlists and segment loaders
Bug fixes related to fetching and buffer maintenance
2.0.1 (2016-03-11)
First release of the ES6 version of the SourceHandler