2.1.0 (2017-04-25)
New features:
- Add basic HLS support
- VOD only
- Widevine & clear content only
- No support for CEA-708
- #279
- Tolerate gaps in the presentation timeline and jump over them
- Add an indicator for critical errors
- Do not retry on HTTP 401/403 errors
- Expand player stats and track metadata
- Add loadLatency stat
- Add mimeType to tracks
- Track state changes (buffering, playing, paused, ended)
- DASH trick mode support
- Expose license expiration times through Player
- Add support for EventStream elements in DASH
- Add support for Chromecast Media Playback messages from generic senders
- Add config to ignore key system and init data in DASH manifest
- Add support for asynchronous response filters
- Filter duplicate initData from manifest by key ID
- Optionally adjust start time to segment boundary
- StringUtils and Uint8ArrayUtils are now exported, to make filters easier
- Add audio adaptation to default AbrManager
- Add an API to force the Chromecast to disconnect
- Add possibility to delay license request until playback is started
- Add API to get live stream position as Date
- Don't clear buffer if switching to the same stream
- Demo app permalink support through URL hash parameters
- Add a flag so scheme plugins can ask us to ignore cache hits for ABR
- Allow passing durations from scheme plugins to compute throughput
- Make ES6 imports easier
- Add separate restrictions to AbrManager
- Allow network plugins to see the request type
Bugfixes:
- Make language selection explicit
- Make text track visibility explicit
- Fix firing of 'trackschanged' event for multi-Period content
- Correct time parsing for MP4 VTT subtitles
- Fix playback of live when segments do not extend to the end of the Period
- Allow seeking to 0 in live streams
- Add explicit timestamps to 'emsg' events
- Fix playback of YouTube demo assets
- Allow text parsers to change during playback
Docs:
- Add offline storage to v2 upgrade guide
- Add additional docs for AbrManager
- Add manifest parser plugin tutorial
Broken Compatibility:
- Track types 'video' and 'audio' have been combined into 'variant'.
- Any application looking at track.type will need to be updated.
- Removed useRelativeCueTimestamps option
- All segmented WebVTT cue timestamps are now segment-relative
- #726
- Plugin interface for text parsers has changed
- Both old & new interfaces still supported
- Support for old interface will be removed in v2.2
- Plugin interface for ManifestParser.start has changed
- Now takes an object with named parameters instead of positional params
- Both old & new interfaces still supported
- Support for old interface will be removed in v2.2
- Retired the INVALID_TTML error code
- Folded into the INVALID_XML error code