v1.6.0-beta.3
Pre-release
Pre-release
Summary
HLS.js v1.6.0-beta.3 includes bug fixes and improvements over the last release. These changes focus on interstitials and playback stability.
Changes Since The Last Release
Interstitial changes
- Improved Interstitial fragment loading and buffering (#7002) @robwalch
- Fix live duration override by interstitials (#6991)
- Trigger INTERSTITIALS_PRIMARY_RESUMED after ending interstitial with CUE ONCE (#6915)
- Interstitials: Fix additional asset player creation between assets at start (#6914)
- Fix Interstitial asset inline buffering with other items buffered ahead (#6913)
Bug fixes
- Gap controller fixes (#6941) @robwalch
- Flush MSE rendering pipeline when crossing video buffer holes with audio (#6972)
- Fix seeking into and over multiple EXT-X-GAP segments (#6988)
- Make Fragment.stats enumerable (#6999)
- Split the _close method from mediaDetach (#6966) @JackPu
- Workaround Safari "ended" event not firing when EoS is marked before seek on start (#6980) @robwalch
- Fix reset of "ended" state after main muxed audio flush (#6921
- Fix audio track switch where only characteristics differ (#6963)
- Fix delta updates with discontinuity tags (#6950)
- Fix assumptions in multi-drm cases where only playready is available for playback. (#6946) @cjpillsbury
- Support HEVC VPS coming after SPS (#6940) @devoldemar
- Exclude AC3 and HEVC remuxing from light build (#6944) @robwalch
- Add shortcut for
light
version (#6925) @denisx - Do not adjust initPTS without accurate playlist time offset (#6922) @robwalch
- Replace non-null assertions in xhr-loader and gate evoking of loader callbacks (#6942)
Demo Page
https://e97fbb95.hls-js-dev.pages.dev/demo/
Additional features
- Flush back buffer when
backBufferLength
is set to 0 (#6781) (#6784) @tmiller02 - Configure
maxDevicePixelRatio
to limit browser value (#6825) @signalwerk - Additional key-system cleanup error details (#6807) @JackPu
- #EXT-X-BITRATE support (#6843) @robwalch
API
- Added
config.detectStallWithCurrentTimeMs
- Added
config.nudgeOnVideoHole
- Added
hls.pathways
getter (#6997) @grabofus - Added
hls.inFlightFragments
- Added
hjs.loadLevelObj
- Added
hls.loadingEnabled
(toggled withhls.startLoad()
andhls.stopLoad()
- for internal use) - Added
Events.EVENT_CUE_ENTER
(for internal use) - Added
levelInfo: Level
toLevelLoadingData
andLevelLoadedData
event data - Added
track: MediaPlaylist
toTrackLoadingData
andTrackLoadedData
event data (audio and subtitle events) - Added
withoutMultiVariant: boolean
toLevelLoadedData
event - Added
LevelDetais.expired: boolean
readonly getter - Added
LevelDetais.requestScheduled: number
property (for internal use) - Added readonly
Fragment.bitrate
andFragment.byteLength
getters - Several
Fragment
properties have been changed to readonly getters or getter/setters:get baseurl()
,get/set stats()
,get/set programDateTime()
. This impacts serialization and extension of these properties (stats
will not be copied with spread operator orObject.assign
).
Feedback
Please provide feedback via Issues in GitHub. For more details on how to contribute to HLS.js, see our CONTRIBUTING guide.