Hello all,
we are pleased to announce that version 4.5.0 of dash.js has officially been released.
A big thank you to all the contributors that made this possible, especially Stephan Schreiner, Casey Occhialini and lkinasiewicz!
The release info can be found here:
Features
#4003 New playback catchup seeking/pausing logic: Adjust the liveDelay when the user seeks/pauses. Then catchup mode is applied with the new live delay as target value.By calling player.seekToLive() the app can jump back to this original live delay.
#4024 Allow requests to be modified in an async manner.
#4036 #4015 Implements a "matcher" for the XML parser; it checks @lang attributes read from MPDs and normalizes them into a BCP-47 compliant format. In addition, normalize language tags provided through dash.js' setInitialMediaSettingsFor()-API as Strings, while using RegExp through this API is maintained.
Improvements
#4020 Lower minPlaybackRateChange for non Safari browsers depending on the maximum catchup rate. Otherwise the target live delay is not reached for low catchup rates.
#3996 Pass url to RequestModifier.modifyRequestHeader for example to add additional headers
#4004 Fix stalling issue when using buffer.fastSwitchEnabled is enabled.
#4001 Add ua-parser-js to enable reliable browser name and version parsing
#4002 Add hashtag mechanism to sample menu selection. Allows to send direct links to specific sample sections
#4039 WPE fix: Avoid pruning buffered ranges already enqueued for playback
#4028 Add an example how to define robustness levels for DRM playback
Link Add popup to low latency testplayer and fix catchup mechanism "enabled" checkbox
Bugfixes
#4023 Fixes the selection of a key system with parameters specified by the application. As an example, the robustnessLevel can be specified individually for audio and video tracks. Before this PR, only one of the provided values was used, either audio or video.
#4025 Remove check in getValidTimeAheadOfTargetTime that caused stall in stream with gaps in the previous period and the upcoming period
#4048 Add missing streamId to DroppedFramesHistory.js
#4026 Fix B64 generation of KID to be compliant with EME spec
#4019 Fix wrong call to _abortBeforeAppend
Link Fix wrong link to controlbar in Low Latency testplayer
#4051 Only consider buffer replacements in the GapController.js for audio and video to avoid stalling on gaps due to texttracks.
Operation
#4041 Adds a Github action to automatically deploy to nightly and latest on the Akamai CDN