Skip to content

dash.js v4.0.0

Compare
Choose a tag to compare
@dsilhavy dsilhavy released this 25 Jun 13:52
· 436 commits to master since this release

Features

#3413 Major improvements for multiperiod playback (stability, gap handling, baseURL resolution, race conditions)
#3413 Enable audio track switch with different codecs (different AdaptationSets)
#3413 Enable seeking between periods for multiperiod livestreams
#3660 AAST based approach for measurement and estimation of throughput calculation in LL CTE streaming
#3630 Rework sample Section and provide additional samples
#3641 Reworked text track handling
#3596 Replace grunt with Webpack
#3596 Replace JSHint by ESLint
#3624 Rework buffer and scheduling logic
#3413 Enable usage of availabilityTimeOffset
#3635 Automatically fall back to Timeline based DVR window calculation if no segment is found in the "standard" DVR window
#3633 Add parameter in MediaPlayer.setQualityFor() to force quality switch

Improvements

#3663 Improved Lol+ based throughput calculation for low latency streaming
#3413 Separate DVR window and AST/AET calculation
#3631 Cleanup errors and add missing JSDoc
Link Remove iron-mocha and iron-node dependencies
#3635 Optimize memory usage
#3646 Add settings attribute to control setting the stall state in the videomodel
#3647 Remove outdated mediaInfo objects from StreamProcessor after MPD updates
#3644 Updated _applyServiceDescription(): only enable LL on critical SupplementalProperty, correct min/maxDrift
Link Add settings attribute to enable/disable MediaCapabilities API
Link Set stable buffer time equal to live delay for low latency streams
#3655 Use promises for updating the internal info after an MPD update to avoid race conditions
#3653 Allow configuration of additional ABR rules like InsufficientBufferRule via settings and reference U
#3653 Add settings to disable/enable ServiceDescription
#3658 Support legacy devices by polyfilling promises
#3659 Allow DRM configuration in reference UI (server, header, priority)
#3665 Add missing fields in index.d.ts
Link Add settings to configure retry attempts and retry interval for license requests
Link Adjust InsufficientBufferRule.js. Apply switch to lowest quality if buffer is empty
#3671 Dependencies update and replacement of deprecated code coverage tool

Bugfixes

#3608 Git hooks: Fix path problem on Windows
Link: Fix a bug for dynamic streams with multiple video AdaptationSets. MPD update lead to selection of wrong MediaInfo
Link: Fix a bug when switching between multiple thumbnail tracks
Link: Fix for BUFFER_LOADED event never triggered when minBufferTime > stableBufferTime
Link: Do not hide time display in ControlBar.js whenever liveThresholdSecs is reached to avoid seeking problems
#3625 Fix seek to DVRWindow.start
Link: Fix a bug in the playFromTime.js functional tests. stream url was overwritten and not restored
Link: Fix a bug in the calculation of the segment availability end time when the value is set to Infinite
Link: Remove unnecessary protectionController.setMediaElement call
Link Do not apply strong comparison in the EventController.js when checking a value
Link Do not handle abandoned fragments in case the abort was triggered by a representation switch
#3643 Fix segmented text track selection
Link Abort requests when deactivating a stream
Link Fix config bitrate when using configRatio. Value needs to be specified in kbps
#3652 Fix offline module
#3654 Fix a bug that lead to starting the the schedule timer twice
Link Fix wrong reference to streamInfo once buffering is completed. Due to this, signalEndOfStream was not called for multiperiod VoD streams and playback stalled some frames before the end.
Link Check if we can start prebuffering after an MPD update. New periods might have been added
Link Use type for calls to getCurrentDVRInfo if required. Otherwise audio only is not working properly.
[Link] Delete texttracks based on period boundaries and do not disable track when period switches
#3669 Fixes the error on entering/leaving full screen on Chrome
Link Fix a bug in the TimeSyncController.js which causes time syncs to be blocked once the sync attempt failed
Link Fix xhr check in setup function of functional tests
Link Fix a bug in the low latency demos
#3680 Update/fix typings in index.d.ts