github video-dev/hls.js v0.14.0

latest releases: v1.5.8, v1.5.7, v1.5.6...
3 years ago

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
  • Add renderTextTracksNatively config option (defaults to true) 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 and CUES_PARSED events are emitted so that the application using hls.js can handle rendering of the track and its cue points.
  • Add support for #EXT-X-SESSION-DATA tag in master playlist
  • 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 and src files are included in releases moving forward
  • XHR loader and fetch loaders always read from globals window.XMLHttpRequest and window.fetch instead of once on script embed
  • Add support for DRM system options audioRobustness and videoRobustness in hls.config. drmSystemOptions for requestMediaKeySystemAccess audioCapabilities and videoCapabilities 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

Don't miss a new hls.js release

NewReleases is sending notifications on new releases.