Version 0.14 adds API features found in the feature/v1.0.0 branch. This is intended to make transitioning to v1.0.0 easier and also provide API parity for A/B testing the current release and next major update of hls.js.
In addition to these features and bug fixes, we've made changes to how our CI versions preview builds which are published to npm to account for pre-releases while maintaining semver precedence. To do this, we have replaced the canary
channel with an alpha
channel. Previously, if we cut a beta or release candidate like 0.14.0-rc.2
the next commit would generate a canary, using the last release patch+1 - so 0.13.3-canary.5704
. That worked following 0.13.2
, but after 0.14.0-beta.1
, it ignores that we are already heading on to the next minor release. To fix this, we now generate an alpha, using the last tag. So in the case of a prerelease - 0.14.0-rc.2.0.alpha.5718. And for releases we still increment the patch - so following this release you will see CI builds versions like 0.14.1-0.alpha.5720.
Enhancements
- Add CEA-608 captions 4 channel support
- Adds config options for additional channels
captionsTextTrack3Label
,captionsTextTrack3LanguageCode
,captionsTextTrack4Label
,captionsTextTrack4LanguageCode
- Adds config options for additional channels
- Add
renderTextTracksNatively
config option (defaults totrue
) which allows for disabling the addition of captions/subtitle TextTracks to the video element for 608/VTT tracks- When set to
false
rather than a new TextTrack being added for captions and subtitles,NON_NATIVE_TEXT_TRACKS_FOUND
andCUES_PARSED
events are emitted so that the application using hls.js can handle rendering of the track and its cue points.
- When set to
- Add support for
#EXT-X-SESSION-DATA
tag in master playlist- Add
sessionData
property toHls.Events.MANIFEST_LOADED
event
- Add
- Add
removeLevel()
method to API- Can be used to remove a loaded level from the list of levels, or a level url in from a list of redundant level urls.
- Remove unnecessary files form the NPM distribution
- Only
dist
andsrc
files are included in releases moving forward
- Only
- XHR loader and fetch loaders always read from globals
window.XMLHttpRequest
andwindow.fetch
instead of once on script embed - Add support for DRM system options
audioRobustness
andvideoRobustness
inhls.config. drmSystemOptions
forrequestMediaKeySystemAccess
audioCapabilities
andvideoCapabilities
configuration - Media key sessions are closed and media keys cleared when media is detached
Bugfixes
- Fix EME controller async error
- Fix an exception in a stream with an end fragment that contained only ID3 data and no valid elementary video or audio streams
- Fix false positive ADTS probes
- Improve handling of large start gaps
- Fix exception in abr-controller with missing levels
- Fix player size evaluation in cap-level-controller when video element includes width and height attributes that do not match actual size
- Fix
Cannot read property 'realBitrate' of undefined
exception - Fix playback stops on short segment (DAI streams)
- Fix playback of audio-only streams (
EXT-X-STREAM-INF
) with with alternate audio tracks (EXT-X-MEDIA
)
Documentation
- Added entries for
fpsDroppedMonitoringPeriod
fpsDroppedMonitoringThreshold
bufferController
capLevelController
fpsController
emeEnabled
widevineLicenseUrl
drmSystemOptions
requestMediaKeySystemAccessFunc
- Mark
lowBufferWatchdogPeriod
as deprecated - Fix broken logo image urls and mixed content (insecure) urls
- Make the readme example work out of the box again
Logging enhancements
- Include buffer size in playback stall warnings
- Reduce log output for unknown elementary stream types
- Fix audio gap output when injecting audio frames
- Distinguish functional test logs from player logs (CI)
Misc
- Add Timeline chart tab to the demo page
- netlify CI improvements
- npm package updates
- TypeScript fixes
- Optional chaining
- Test improvements
- Functional tests run in a single browser session (CI)
- IE compatibility fixes
- "smooth switch" test improvements
- Add audio-only with alt audio track test streams