IE11: ⚠️ This release has an issue with IE11 which has been addressed in v0.10.1
. Please use that version instead if it concerns you.
TLDR
Many stability and efficiency fixes. Also, a lot of work done around subtitles.
Also: Improved alternate audio-track support, proper support for backup audio/video-track fallback behavior by media-group-IDs (so that e.g the same-level video-stream of the new group ID will be used in case of audio-fallback and vice-versa), support for various mp4 suffixes, no more unnecessary buffer-stall errors, and a few more things.
Note
While we didn't want to hold back on releasing the current stable state, issues related to gaps at start, seeking into gaps, and buffer-stall errors on seeking are still present in this release (regression from 0.8.x). We are planning to address them with the necessary time, as this requires a clean solution in order to avoid another regression in the area. We are hoping to release 0.10.1 asap with a fix for them:
API changes
- add
once
method of internal EventEmitter exposed on Hls API (see https://nodejs.org/api/events.html)
bugfixes
-
Fixed undefined vars assumed by linter as DOM globals (no more linter globals)
-
Fix memory leak in destruction of
TaskLoop
sub-classes -
Remove playbackRate factor for setting lastCurrentTime
-
Fixed FragmentTracker causing endless loading
-
Fix RemuxerTrackIdConfig as per iso/iec 14496-12 spec
-
Fall back to frag finding by SN if PDT search does not return a good fragment
-
Resolve partial frag loop loading
-
Activate level capping only when a video codec is found
-
Change example to use 'loadedmetadata' event rather than 'canplay' event
-
Fragment loading stuck issues resolved
-
TaskLoop: Clear timer when already set
features
-
Add a regex to check different mp4 suffix
-
Prevent excessive bufferStall errors through a 1 second debounce on reporting stalls
-
Refactor checkbuffer
-
Various subtitle bugfixes
-
Refactor timeline-controller to refer to 608/708 captions via name instead of number
-
Properly calculate the amount of sourcebuffers needed for streams with multiple non-alternate audio renditions
-
Redundant streams fallback behavior (backup) for alternate renditions with multiple media groups
dev-tooling / CI / releases
-
Use
Array.from
instead ofArray.prototype.slice.call
(where available) -
Canary releases
-
Add ability to load demo page with canary build
-
unit test source-maps
-
Make MP4 inspect CLI tool
-
fix(deps): update to esdoc@1.1.0
-
Dissolve "helper" folder and towards more self-contained components
-
Demo config parameters serialized B64/JSON
-
Curly brace ESLint rule changes
-
Update PR template
-
Add limitMetrics option for demo page to limit the total number of metric entries per class
-
add package-lock.json
-
Remove old & insecure (404) favicons in demo HTML pages
testing
-
Fix
stream
var not defined in top scope -
Browser tests setup: Replace deprecated method by
setTimeouts
-
Fixed chrome not autoplaying when performing functional tests
documentation
-
Fix Getting Started Documentation
-
fixed typo
-
correct fragLoadingTimeout doc according to config