Skip to content

dash.js v4.5.0

Compare
Choose a tag to compare
@dsilhavy dsilhavy released this 28 Sep 06:37
· 177 commits to master since this release

Features

#4031 Adds support for content steering as defined in the IOP specification - @dsilhavy
#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. - @dsilhavy
#4024 Allow requests to be modified in an async manner. - @littlespex
#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. - @stschr

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. - @dsilhavy
#3996 Pass url to RequestModifier.modifyRequestHeader for example to add additional headers - @lkinasiewicz
#4004 Fix stalling issue when using buffer.fastSwitchEnabled is enabled. - @lkinasiewicz
#4001 Add ua-parser-js to enable reliable browser name and version parsing - @dsilhavy
#4002 Add hashtag mechanism to sample menu selection. Allows to send direct links to specific sample sections - @dsilhavy
#4039 WPE fix: Avoid pruning buffered ranges already enqueued for playback - @eocanha
#4028 Add an example how to define robustness levels for DRM playback - @dsilhavy
Link Add popup to low latency testplayer and fix catchup mechanism "enabled" checkbox - @dsilhavy

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. - @dsilhavy
#4025 Remove check in getValidTimeAheadOfTargetTime that caused stall in stream with gaps in the previous period and the upcoming period - @dsilhavy
#4048 Add missing streamId to DroppedFramesHistory.js - @dsilhavy
#4026 Fix B64 generation of KID to be compliant with EME spec - @dsilhavy
#4019 Fix wrong call to _abortBeforeAppend - @dsilhavy
Link Fix wrong link to controlbar in Low Latency testplayer - @dsilhavy
#4051 Only consider buffer replacements in the GapController.js for audio and video to avoid stalling on gaps due to texttracks. - @dsilhavy

Operation

#4041 Adds a Github action to automatically deploy to nightly and latest on the Akamai CDN - @dsilhavy