Skip to content

Releases: Dash-Industry-Forum/dash.js

Dash.js v2.6.2

12 Oct 18:18
Compare
Choose a tag to compare

Bug Fixes

#2226 add index_mediaplayerOnly to gruntfile (fix an issue with webpack/browserify an v2.6.1)

Dash.js v2.6.1

12 Oct 03:53
Compare
Choose a tag to compare

Bug Fixes

#2217 Bug fix for live with audio only
#2214 Drm today fix
#2198 Fix an assignment error at FactoryMaker.js, line 261
#2197 Fixed an assignment error at FactoryMaker.js, line 261
#2195 Fix BolaRule to not get newQuality from abandon event
#2194 Bug fix about start time
#2193 Bug fix issue #2192
#2189 Fix Safari backwards seek bug Bug
#2188 Safer DOMStorage.js
#2185 Fixes in management of the video size check timer of TextTracks
#2173 Remove duplicate default export
#2169 Xml 2 json firefox fix
#2166 Fix #2149 - webkitAddKey argument mistmatch
#2156 Fix a pb if realPeriodId is "".
#2144 Update getAdaptationForType function Bug

Enhancements

#2190 Abort management update
#2180 Report error code contained in PlayReady licenser server response body Feature Enhancement
#2168 [MSS] Processing moov pssh Feature Enhancement
#2165 [DRM] Ignore 'encrypted' event Feature Enhancement
#2164 Add unsupported codecs detection Feature Enhancement
#2151 Update audio track switch
#2140 New refactoring branch Code Refactor
#2132 Update subtitles management
#2200 Format and minor changes of recently merged PRs
#2154 Update module management

Unit Tests

#2183 by specify test folder for npm run test (makes Travis launch unit tests) Unit Testing
#2181 add a SwitchHistoryRule unit test Unit Testing
#2160 Update MediaController unit test Unit Testing
#2158 Update StreamController unit test Unit Testing
#2157 Update Isofile unit test Unit Testing
#2152 Add Jshint and Jscs to unit test folde
#2143 add test when data to parse is equal to null

Player & Samples

#2206 Fix samples and remove broken ones (eme)

Dash.js v2.6.0

02 Sep 00:23
Compare
Choose a tag to compare

Bug Fixes

#2135 bug fix for segment timeline streams Regression
#2128 BufferController isBufferingComplete cleared on seeking
#2130 generate ended event artificially when player element fails to do so
#2122 fix audio buffer target when videoTrackPresent
#2120 issue #2115 - do not disallow quality that did not cause drop
#2113 fix MediaPlayer documentation for getQualityFor()
#2108 Fix undefined fragData when using parsed manifest object
#2107 Fix Destroy in ControlBar.js
#2095 Don't let crazy rewind window be applied to mediaSource seekable range
#2092 Fix #2091 - relative baseurl at mpd level doesn't resolve correctly
#2087 fix handling of cached segments in ThroughputHistory
#2085 MSS Live Playing : fix a pb highlighted by integration of PR # 1991
#2078 Update representation controller
#2077 fixed: Cannot read property 'Location as Array' of undefined
#2076 Fix a problem on XLinkController unit tests
#2067 delayed XHR request should not count delay in latency
#2066 fix abandonment in AbrController (broken since #1871)
#2064 Update live edge finder management
#2056 detect if the manifest has only video or only audio track in order to…
#2040 Fix issue # 1938 - MSS with dvrWindowsSize = 0
#2038 Move STREAM_TEARDOWN_COMPLETE to MediaPlayerEvents
#2037 Fix return-type annotation in index.d.ts for setRobustnessLevel
#2030 Update setup and reset functions
#2029 bug fix #2028
#2016 Don't set initialized flag to false in MediaPlayer.reset()
#2015 Fix Issue #2014 : Bitrate doesn't change
#2009 MSS - Wrong representation id if StreamIndex has no 'name' attribute
#1999 bug fix on images CMAF subtitles
#1991 Fix segment timeline
#1990 Use dead time latency flag
#1981 bug fix #1975 on cea608 subtitles rendering
#1980 Make quota_exceed reset isFragmentProcessingInProgress
#1979 Fix a bug in ObjectUtils::areSimpleEquivalent method
#1962 a function named get_ should return something. if not it's better to …
#1961 update the use of streamProcessorDict in AbrController
#1957 Do not add SwitchRequests with NO_CHANGE to SwitchRequestHistory
#1950 Remove unused functions or parameters
#1941 Using Location as baseURL for segments [Fixes #1887]
#1933 Do not use latency to check if segment is from cache
#1927 Video model modification
#1923 Fix issue #1922: TextTrack::deleteTrackCues - Wrong object passed from TextController
#1911 Fix TypeError in the segments update code
#1910 fix(EventBus): add null check to handlers
#1907 Fix CC packet sorting
#1905 Fix over-zealous trimming
#1904 fix(TextBufferContoller): only export one default
#1891 fix(EventBus): Fix faulty logic for off, caused by #1774
#1888 Ensure ABR Rules are cleaned up correctly when player is reset
#1878 Smooth Streaming Support : TTML Captions Bug
#1848 Remove unnecessary references to manifest

Enhancements

#2139 [MSS] Update saio offset field for encrypted fragments
#2137 Robustness levels
#2136 store throughput in localStorage, not bitrate of last quality
#2125 Detect xmldecl (or lack of) correctly when resolving xlink
#2114 Enable to set and get playback rate.
#2110 Mss widevine pssh
#2094 add EWMA moving average option to ThroughputHistory, default remains sliding window
#2083 dynamically choose between ThroughputRule and BolaRule
#2081 FactoryMaker exports
#2068 update BOLA, now works better alongside other rules
#2057 Custom Abr Rules v2
#2039 Add getter for average throughput on MediaPlayer's API
#2022 use the good specific error class
#2020 Controller creation merge
#2003 split ThroughputHistory out of ThroughputRule, update InsufficientBufferRule
#1996 Add string constants file
#1989 old quality should be reported to droppedFrameHistory onQualityChangeRendered
#1985 Added typings to package
#1982 Update subtitles management
#1974 update emsg box management
#1967 expose manifest retry function
#1958 Update access to isDynamic attribute
#1954 allow multiple moofs per segment
#1953 ABR Rules Collection creation
#1951 Mss live playing
#1936 Replacing TTML parsing with imscJS library
#1932 Add support for SMPTE-TT base64-encoded subtitles images.
#1929 grunt: add watch task on dash.mss package
#1918 Update cea608-parser to version 1.0.1
#1913 Update codem-isoboxer version
#1914 Enhanced debug
#1902 Metrics controller for all streams
#1899 Set the seekable range on the mediaSource
#1897 Update reset functions
#1882 Added scanType field
#1877 Abr AbrController accessors
#1871 Controllers creation modifications
#1846 Custom abr rules
#1843 Create index handler in stream processor

Unit Test

#2147 fix typo in unit test
#2141 add EventBus unit test
#2138 Update unit tests
#2119 update MediaSourceController unit test for #2095
#2086 TextController - Initializes unit tests
#2074 first version for AbandonRequestsRule unit test
#2073 TextBufferController Unit Tests
#2072 NotFragmentTextBufferController Unit Tests
#2071 first version for ThroughputRule unit test
#2070 first version for InsufficientBufferRule unit test
#2069 Add custom time ranges unit test
#2065 first version for VTTParser unit test
#2062 Streaming Controllers unit testing
#2061 first version for DOMStorage unit test
#2058 first version for BaseURLSelector unit test
#2054 first version for DashParser unit test
#2033 Stream tests
#2032 BufferController tests
#2031 WebmSegmentBaseLoader tests
#2027 SegmentBaseLoader tests
#2007 Mediaplayer unit tests
#1997 Improve unit tests
#1956 Functional test suite added.

Player & Samples

#2134 Update reference player link in ISSUE_TEMPLATE.md
#2060 Example code uses HTTPS
#2043 Added v8-MultiContent to Axinom test vectors
#2042 Removing non-responsive test vectors from sources.json
#2026 Axinom license server URLs to HTTPS
#2023 Axinom URLs to HTTPS
#2001 Updating readme to point at new home for archived players
#2000 Removing hard-coded protocol on github buttons
#1986 Adding new example file to show manual load with custom settings
#1983 Server certificate
#1943 Fix to center subtitles in reference player [#1942]
#1930 Adding IRT CMAF live stream sample to reference player
#1917 Fix up getting-started samples so they work on more platforms

Known Issue

Axinom’s test vectors are failing because Dash.js is defaulting to hevc codec not avc in a multi-codec MPD.

Dash.js v2.5.0

27 Apr 20:17
Compare
Choose a tag to compare

Bug Fixes

#1781 Bug fix undefined objects
#1774 Fix bug where EventBus handlers are removed before execution
#1788 BUFFER_LEVEL_STATE_CHANGED event is already registered above
#1791 Fixes #1762 where VTT subtitle positioning was omitted
#1805 Fixes parsing of subs box for IMSC 1 image subtitles after update of isoboxer library.
#1810 undefined object when switching of period.
#1812 Fix try/catch for append and remove
#1826 Don't use decodeURI when parsing cue text
#1836 Fix trailing commas, update JSCS and JSHint configs
#1849 Fix typo in TTMLParser
#1851 bug fix in big endian conversion #1850
#1863 Fix #1862 - correctly handle scheme-relative URLs in IE11
#1864 Fix bug with z-index for image subtitles
#1869 Fix issue #1868 : crash on TextTracks
#1874 Fix #1873 - supply correct args to trigger for VIDEO_CHUNK_RECEIVED

Features / Enhancements

#1801 feat(TextTrackInfo) Passthrough roles even if dash can't parse them
#1802 Added setMinAllowedBitrateFor
#1807 Mss package management
#1819 Adding typescript definitions for MediaPlayer
#1830 Support XML parsing when node.childNodes is Array

Refactoring

#1813 Audio switch management update
#1816 Move check video presence call
#1822 Code refactoring
#1828 move files BasicSelector and DVBSelector, no reference to rules
#1829 Remove unused reference
#1831 Code simplification : remove an unnecessary reference
#1844 Text Management refactoring
#1857 Remove unused RulesController

Project / Player

#1794 Create .codeclimate.yml
#1777 Add .editorconfig
#1782 the chart is drawn only for video and audio data
#1785 Update the video.js plugin to just point to the project
#1815 Improve Web app robustness
#1859 Remove OLD_TEMP ref player
#1860 Remove old webmjs - we support webm natively now and this only works with pre-v2
#1861 Fixed units for Bitrate and Ratio in reference player.

Dash.js v2.4.1

01 Feb 22:50
Compare
Choose a tag to compare

#1768 fix for all live edge issues mentioned in #1729
#1761 Fix #1759 (regression) resume correctly after seek
#1760 Fix #1672, #1254 - use XHRLoader for SegmentBase requests
#1758 fix for #1729 - segmenttimeline live start
#1754 full update to charting in player and updated assets for jquery, flot
#1750 Fix #1749 - do not fail to build if not a git repo
#1737 Fix #1726 - remove explicit amd support from xml2json fork
#1736 Fix #1722: Wait for dashjs before creating element(s) if loaded asynchronously
#1732 Fix #1731 - ensure BaseURLs are resolved properly for SegmentBase
#1730 [MS Edge bug] Response header string starts with new line \n
#1725 fix initial textrack display mode loop
#1724 Sample player: add auto loaded stream as param url
#1720 Use recent node versions in travis builds

Dash.js v2.4.0

21 Dec 20:01
Compare
Choose a tag to compare

Features/Enhancements
#1360 Dynamic Multiperiod Stream Support
#1418 Support IMSC-1 image subtitle profile
#1667 Allow immediate switching when top quality index changes
#1612 get BOLA to work with fast switching
#1674 Update TTML subtitles management.
#1267 Update externals/xml2json.js
#1607 Allow xhr.withCredentials to be set per request type
#1604 Adds getLiveDelay to MediaPlayer API

Bug Fixes
#1588 Multi-representation video-only OR audio-only streams throw TypeError
#1638 Uncaught TypeError in StreamController occurs when video loops
#1583 getFastSwitchEnabled missing jsdoc references
#1435 Event String names should be consistently cased
#1224 Encrypted audio only packages doesn't request key from license server or respect setProtectionData() EME/DRM
#869 minRefreshDelay is not honored
#1704 Fail properly when BaseURL Resolution fails
#1703 Fix #1702 - ensure replacements are re-requested on failure
#1701 [BaseURL] serviceLocation is a request attribute, not an event attribute
#1594 Resolve relative BaseURLs more in line with the spec
#1696 Report MediaError.message if it exists (eg Firefox)
#1685 Metrics Reporting: fix List type serialisation and add a couple of tests
#1683 Bug fix image subtitles
#1687 CEA-608 rendering broken
#1690 Fix cea608 scaling
#1623 Bugfix for rendering CEA608 captions embedded in H264 SEI
#1613 Only check element clientWidth on window resize
#1602 only set non-empty MediaCapabilities on MediaKeySystemConfiguration
#1593 Fix Edge malformed start tag warning
#1591 Add check in pruneBufferif SourceBuffer is defined
#1585 Removes forcing preload to auto
#1577 additional undefined checks before referencing window
#1575 MPD xs:string parse fix

Controls/Player
#1579 Updated Axinom conservative test vectors
#1600 Fixed link for v7 encrypted single-key (audio only)
#1608 Enable HTML-rendered TTML in ref player if Firefox is at least v49
#1521 Nightly Machine Builds
#1580 Audio only stream causes exception in ControlBar.js that prevents playback
#1653 Cannot type URL in Reference Player. Looses focus after angular update
#1596 Choice of subtitle language broken in 2.3
#1571 manual video bitrate change in dash.js 2.3 on every dynamic abr manifest is faulty
#1587 Multi-representation video-only OR audio-only streams throw TypeError

Known Issues

  • Dynamic Multiperiod is NOW supported and implemented. Note we only had one test vector to develop with and there are intermittent failures. We need some more test content to verify if it is content of player related. Please test with your own live multiperiod content and report bugs to the tracker.
  • Streams using high profile codecs may not play properly.
  • Only streams with segmentAlignment='true' will work with abr.

Dash.js v2.3.0

02 Sep 21:22
Compare
Choose a tag to compare

New Features

#1541 MediaPlayer should trigger an Event if user gesture is needed to play
#1530 Prevent Throughput Rule oscillation and cache pollution.
#1439 Single QUALITY_CHANGE_COMPLETE event triggered when multiple expected
#1365 Refactor Virtual Buffer out of Dash.js
#1557 Remove CSDBI tags in source.json
#1546 MediaPlayer.time() method improvement Bug
#1543 implemented Event MediaPlayerEvents.PLAYBACK_NOT_ALLOWED
#1498 Add and fix switchRequest reason for multiple rules
#1527 Actually report the manifest parsing error
#1536 Image subtitles with layout
#1564 Updated Support Player and contorlbar.js
#1547 Publish ES5 files for node.js import.
#1538 Major BOLA ABR updates.

Bug Fixes

#1526 Streams not playing on IE/Edge Bug
#1518 ScheduleController still listens to PLAYBACK_TIME_UPDATED after reset, throws TypeError
#1514 ThroughputRule wrong calculation and duplicate loads of same fragment
#1494 Uncaught TypeError: Cannot read property 'msExtendedCode' of null
#1491 Loadstart event is triggered twice
#1482 latest 2.2.0 won't play wowza generated stream (2.1.1 works)
#1258 Playing unexpectedly stops before end
#1205 Last segment doesn't get appended at times if we seek
#521 Relative URIs with absolute paths are not resolved correctly
#1524 Don't fire progress events when deliberately aborting xhrs
#1517 don't assume sidx is at offset zero in byte range

Known Issues

  • Dynamic Multiperiod is not currently supported.
  • Static Multiperiod has intermittent issues depending on the content/user-agent.
  • Streams using high profile codecs may not play properly.
  • Only streams with segmentAlignment='true' will work with abr.

Notes:

  • Major improvements with fragment scheduling and ABR heuristics.
  • New Streams added to source.json
  • Updated ControlBar.js - Please read README.md for changes needed for old code.

Dash.js v2.2.0

06 Jul 18:53
Compare
Choose a tag to compare

New Feature / Feature Enhancement
#382 Event for switch requested and switch complete.
#1006 Player is not sending cookies if we attachSource.
#1122 Faster switching by replacing segments close to the playhead.
#1301 webm.js not compatible with current dash.js.
#1361 Support for MPD Anchors (Partial in 2.2).
#1423 Add audio-only test vectors to reference player.

Bug Fixes
#521 Properly support path-absolute BaseURLs (Regression)
#887 Live audio-only stream show incorrect time info.
#1340 DASH-IF player cannot properly render ttml with multiple lines.
#1353 ControlBar uses deprecated method on MediaPlayer API.
#1369 All segments from time zero are reloaded when switching track (Regression).
#1370 Download errors have no id (Regression).
#1372 Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().
#1375 Switching audio track on LIVE stream stops the playback.
#1379 Fragment request URLs incorrect when using a SegmentList (Regression).
#1380 Partial fix for Suspicious-looking URL handling in XlinkController.
#1393 IE11 API issue.
#1406 Paused video keeps writing log lines about buffer pruning.
#1409 Ondemand audio-only stream fails to play with dev reference player (Regression).
#1432 TTML Parser incorrectly scales root container region by cellResolution.
#1437 Uncaught TypeError when quality is -1.
#1457 Cannot play manifest with SegmentTimeline inside of SegmentList.
#1461 Reference live stream fails to replay correctly in dev (Regression).
#1463 setScheduleWhilePaused default value documentation incorrect.

Known Issues
Seeking Multiperiod test stream on FireFox for Windows is failing. (Since 1.5.1)
Streams using high profile codecs may not play properly.
Only streams with segmentAlignment='true' will work with abr.
Live Multiperiod is failing. Regression

Dash.js v2.1.1

21 Apr 18:40
Compare
Choose a tag to compare

Summary
This release is a patch release of 2.1.0, which had a major startup issue for some streams on all browsers.
Please use this release over the 2.1.0.

Bug Fixes
#1338 Only seek forward on PST check

Known Issues
Seeking Multiperiod test stream on FireFox for Windows is not failing. Since 1.5.1
Streams using high profile codecs may not play properly.
Only streams with segmentAlignment='true' will work with abr.
Live Multi-Period is failing. Regression

Dash.js v2.1.0

15 Apr 18:50
Compare
Choose a tag to compare

New Features
#1048 Refactor Loader Classes into LoaderBase Code Refactor
#992 Add support for segmented WebVTT subtitles
#571 Support for the tag Feature Enhancement

Bug Fixes
#1089 Live stream delay under Firefox ignores setLiveDelayFragmentCount value Bug
#900 setMaxAllowedBitrateFor can take a long time/never apply if not done before startup Bug Investigate
#866 btoa and atob declarations break native browser implementations for other libraries Bug Pri-Critical
#841 Wrong index returned for AbrController.getQualityForBitrate Bug Pri-Critical
#1314 [Updated] Always use computeLiveDelay to get bound logic. ATSC logic for postponement needs to be updated
#1298 IE only: Ended doesn't seem to fire Bug Investigate
#1290 Glitches since 2.0.0 Bug Pri-Critical
#1275 Non 0 PST for SegmentTimeline VOD will fail Bug
#1261 No seeked events when seek to unbeffered position on pause Feature Request question
#1257 MediaPlayerEvents.BUFFER_EMPTY not triggering Bug Investigate
#1243 Nightly build no longer works Automation
#1219 Remove Console.log and use internal log Debug.js class. Code Refactor Pri-High
#1218 Seek back to 0 may cause stream failure Bug Pri-High
#1217 s fragment arg is failing. Bug Pri-High
#1212 Presentation duration is shown as 00:00:00 Bug Investigate
#1207 Remove complexity of calling rulecontroller for scheduling. Code Refactor
#1203 validate loop in schedule controller never stops if scheduleWhilePaused is true Bug
#1198 Firefox stops after 2 minutes of play Bug CLOSE PENDING
#1174 Player hangs in MSEdge Investigate
#1172 MediaPlayer#setTextTrack() call resumes player when paused Bug
#1166 Dash 2.0 sometimes fails to replay Bug Investigate
#1164 Subtitles requiring .attachTTMLRenderingDiv(TTMLRenderingDiv) fail in Firefox
#1154 Remove getVideoModel and add API for the two calls that should be public Code Refactor PENDING PR MERGE
#1153 resetAndIntializePlayback method not robust after a failed playback Bug
#1141 [RC2_v2.0.0] Inconsistent behavior with SegmentTimeline live stream Bug
#1130 Cannot read property 'pause' of null (playbackController) Bug
#1100 Updates for ATSC-DASH type of content (2nd)
#1331 Prevent low values attempting to use representation -1
#1316 Adding new live delay sample

Known Issues
Seeking Multiperiod test stream on FireFox for Windows is not failing. Since 1.5.1
Streams using high profile codecs may not play properly.
Only streams with segmentAlignment='true' will work with abr.
Live Multiperiod is failing. Regression