Skip to content

v1.3.0-beta.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 15 Dec 22:36
· 1563 commits to master since this release
800c35f

Summary

HLS.js v1.3.0-beta.1 is a preview release highlighting improved DRM support coming to HLS.js version 1.3.

This release introduces support for FairPlay Streaming with modern EME, PlayReady support, and improved Widevine support.

Changes Since The Last Release

v1.2.9...v1.3.0-beta.1

Demo Page

https://hls-js-b1cb1eb0-2e11-40ac-808b-56bf07ffda6a.netlify.app/demo/

API Changes

See https://github.com/video-dev/hls.js/blob/v1.3.0-beta.1/docs/API.md for API details and examples.

Config changes

  • Added drmSystems for defining key-system specific license urls and certificates
    • drmSystems['com.widevine.alpha'].licenseUrl replaces widevineLicenseUrl (deprecated but still supported)
  • drmSystemOptions takes additional optional arguments used for defining MediaKeySystemConfiguration
  • licenseXhrSetup
    • includes additional keyContext and licenseChallenge arguments
    • is optionally async: takes a return value of a Uint8Array, a Promise which resolves with a Uint8Array or undefined (returning a value transforms the licenseChallenge license request body)
  • licenseResponseCallback includes an additional keyContext argument
  • Changes to the integration of EMEController and KeyLoader may impact custom config.emeController implementations
    • A new keyLoader constructor argument has been added to StreamController, AudioStreamController, and SubtitleStreamController via BaseStreamController (this allows all stream controllers to share a common KeyLoader instance)
    • KeyLoader utilizes an instance of EMEController for handling HLS Keys

New Error Event ErrorDetails constants have been added to help with identifying issues when negotiating with CDMs

  • New KEY_SYSTEM_ERROR type error details:
    • KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED
    • KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED
    • KEY_SYSTEM_NO_INIT_DATA
    • KEY_SYSTEM_SESSION_UPDATE_FAILED
    • KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED
    • KEY_SYSTEM_STATUS_INTERNAL_ERROR

Event object additions

  • MANIFEST_LOADED event data includes sessionKeys
  • MANIFEST_PARSED event data includes sessionData and sessionKeys
  • KEY_LOADED event data includes keyInfo

Fragment object changes

  • The levelkey property has been replaced by an array: levelkeys
    • (levelkey has been deprecated and will not be supported)

LevelDetails object additions

  • encryptedFragments property has been added (assists in dealing with "clear-lead" streams where initial segments are not encrypted)

Feedback

Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.