TLDR
This new release should now support HLS/fMP4 Widevine encrypted content
bugfixes
- RemuxVideo method called with incorrect number of parameters; accurateTimeOffset is lost #1513
- Remove PKCS7 padding in AESDecryptor #1447
- does not support MPEGTS and fMP4 segments in the same HLS stream #1510
- loader.abort is not a function #1517 #1523
- Update audio-stream-controller to respect maxMaxBufferLength. #1524
- Player stop playing and loading after second seek #1469
- fix monitor playback progress on StreamController #1547
- ensure Hidden subtitles on hidden TextTrack #1527
- Get right language code from config like 'Label' parameter #1552 #1553
- Fixes handling network error on loading chunklist + Exception on Object.keys in FragmentTracker #1585
- Testbench: Fix missing argument in switchToHighestLevel function #1593
- Fix text track change edge cases #1582
- avoid repeated request for init segment on live fmp4 playlist and fix regression introduced by FragmentTracker #1611
functional improvements
- DRM / EME - Widevine - Support for Shaka-packager fMP4 Widevine content #1442
- Add Fragment Tracker #1466
- Improve
StreamController#_checkAppendedParsed
performance #1528 - PDT switch for EXT-X-DISCONTINUITY manifests #1455 #1601
non-functional improvements
- Webpack bundle analyzer plugin #1465
- Move to eslint with idempotent configuration & ensure lint in CI #1475
- Improve the demo page #1476 #1498
- Decoder unit tests added #1507
- test: add BufferHelper tests #1525
- Add StreamController unit tests #1538
- Auto generated docs + full Hls.js API jsdoc info #1540
- add level controller unit test, update eme controller unit test #1575
- functional test / smooth switch : use currentTime instead of readyState as test condition #1608
- fix(travis): introduce build stage #1574
- refactor StreamController and FragmentTracker logics #1545
API change
- deprecate LEVEL_SWITCH/AUDIO_TRACK_SWITCH #1606