-
Notifications
You must be signed in to change notification settings - Fork 2.6k
v0.13.0 Release Plan & Test Matrix
Rob Walch edited this page Dec 13, 2019
·
32 revisions
- Emit SEI packets with resolution payloadType 5 in
FRAG_PARSING_USERDATA
events https://github.com/video-dev/hls.js/pull/2126 - Expose Hls.js' bandwidth estimate (in bits per second) via
hls.bandwidthEstimate
getter on the Hls instance https://github.com/video-dev/hls.js/pull/2086 - Allow level capping (
config.capLevelToPlayerSize
) to be dynamically enabled/disabled https://github.com/video-dev/hls.js/pull/1986
- Fix React builds breaking with WebWorkers https://github.com/video-dev/hls.js/pull/2174
- Fix incorrect VTT cue offsets when
X-TIMESTAMP-MAP
is not present https://github.com/video-dev/hls.js/pull/2179 - Fix Hls not choosing the correct startup segment for fmp4 streams https://github.com/video-dev/hls.js/pull/2196
- Fix
info
anddescription
fields being merged in TXXX ID3 frames https://github.com/video-dev/hls.js/pull/2217 - Fix cue positioning in Firefox https://github.com/video-dev/hls.js/pull/2229
- Fix Hls throwing exceptions when trying to load in non-MSE environments https://github.com/video-dev/hls.js/pull/2305
- Fix Hls not playing after loading a stream with alt audio before attaching https://github.com/video-dev/hls.js/pull/2172
- Fix startup stalling caused by alt audio tracks not loading at the correct time https://github.com/video-dev/hls.js/pull/2067
- Fix null console reference when using the
logger
class in WebWorkers (affects Tizen 2.3) https://github.com/video-dev/hls.js/pull/2095 - Fix RangeError exceptions ("Source is too large") when remuxing TS https://github.com/video-dev/hls.js/pull/2096
- Fix ID3 timestamps causing exceptions in IE/Edge https://github.com/video-dev/hls.js/pull/2120
- Fix timescale conversion in the remuxer https://github.com/video-dev/hls.js/pull/2354
- Fix Calling
detatchMedia()
followed byattachMedia()
causes audio to not play https://github.com/video-dev/hls.js/issues/2099 - Fix Memory leak caused by VTT cues never being cleaned up, which caused long live streams to eventually crash https://github.com/video-dev/hls.js/pull/2309
- Fix various issues and regressions on gap-skipping and other "playback/buffer stall" handling (fixes wrongly emitted buffer-stall error on seeks into unbuffered regions) as well as other playhead-tracking related functionnality, done essentially on
GapController
: https://github.com/video-dev/hls.js/pull/2453 - Fix
RangeError
exception in TS demuxer https://github.com/video-dev/hls.js/issues/2415 - Fix unnecessary seek on start resulting in playback stalling and repeated logs of first segment loading https://github.com/video-dev/hls.js/issues/2438
- Huge strides have been made towards converting the codebase to TypeScript: #2144 #2130 #2129 #2119 #2107 #2106 #2097 #2076 #2075 #2073
- Remove IE8 code https://github.com/video-dev/hls.js/pull/2128
- Fix a bunch of ESLint warnings https://github.com/video-dev/hls.js/pulls/2116
Fix #2400 - Cues doesn't show up on browsers which addCue doesn't throw error with invalid structure (WebOS)
OS | Browser | Basic Playback 1 | Live 2 | Captions 3 | ID3 4 | Alt Audio 5 | Attach/Detach 6 |
---|---|---|---|---|---|---|---|
Desktop (MacOS/Windows) | Firefox |
|
|
|
|
|
|
Desktop (MacOS/Windows) | Chrome |
|
|
|
|
|
|
Android | Chrome |
|
|
|
|
|
|
Windows | IE11 |
|
|
|
|
|
|
Windows | Edge 18 |
|
|
|
|
|
|
- Tests for specific features/fixes
- Basic playback (mostly automated)
- Live (not automated)
- ID3
- TS changes (could be covered by other suites)
- Safari smoke test
- Bundle analysis
- Test with existing TS definitions
Things to look out for:
- Console warnings
- Console errors
- HLS errors
- Especially internal exceptions
- Begin playback
- Assert that playback begins at the configured start time (default 0)
- Unless otherwise noted, Hls.js should not seek on startup (e.g. to skip a gap)
- Allow Hls.js to play for at least three segments
- Assert that playback continues smoothly and without issue
- Switch renditions
- Test switching using both the Current Level and Next Level API
- Assert that Hls.js switches renditions smoothly and without issue
- Seek to at most three segments from the end
- Unless otherwise noted, Hls.js should begin playback immediately (e.g. it should not try to skip a gap)
- Allow the stream to end
- Assert that Hls.js has signaled end of stream
- video.ended should be true
- BUFFER_EOS should have been fired
- There should be no more network requests from Hls.js (check the Network tab)
- Begin playback
- Assert that playback begins at the default time (default 3 segment lengths)
- Allow playback to continue for at least one minute
- Assert that playback continues smoothly and without issue
- Switch renditions
- Assert that Hls.js switches renditions smoothly and without issue
- Allow playback to continue for at least one minute
- Assert that playback continues smoothly and without issue
- Stop playback
- Assert that Hls.js does not download media while paused
- Begin playback
- Enable any captions track
- Assert that captions are displayed
- Allow playback to continue
- Assert that the correct cue is displayed at the corresponding time
- VTT files can be inspected for the cue time
- Seek forwards
- Assert that the correct cue is displayed, and that the previous cue is no longer showing
- Set up Hls.js
- Attach a FRAG_PARSING_USERDATA to the Hls.js instance
- Begin playback
- Assert that ID3 cues are emitted at the expected time
- Begin playback
- Assert that current audio track is playing
- Select a different audio track
- Assert that the audio immediately switches to the new track
- Allow playback to continue
- Assert that audio continues to play on the same track
- Seek around
- Assert that audio continues to play on the same track
- Switch back to the original track
- Assert that the audio immediately switches to the new track
- Continue playback (and seek, etc)
- Assert that the correct audio track continues to play
Issues impacted:
- Begin playback
- Detach the player via
detachMedia
- Assert that there are no exceptions in the console
- Attach media with the existing media element
- Assert that playback resumes in the same state as before playback
- Ensure that features like alt audio and captions continue to work