npm dashjs 5.2.0
dash.js v5.2.0

8 hours ago

Features

  • Introduces comprehensive support for CMCD (Common Media Client Data) Version 2, significantly expanding the player's capabilities for media analytics and client-side data reporting. The implementation leverages the @svta/cml-cmcd library's CmcdReporter to centralize reporting mechanisms, reducing complexity and improving maintainability while aligning with the latest CMCD specifications by @cotid-qualabs, @sebastianpiq , @littlespex,@dsilhavy in #4816
  • Add support for Certurl element by @gorkemg and @dsilhavy in #4876, #4973
  • Add Apple FairPlay Streaming (FPS) DRM support by @tobbee in #4941
  • Add a new reference UI by @dsilhavy (Claude Opus 4.6 was used in this PR) in #4974
  • Add a limitBitrateByPortalMinimum setting to prevent limiting too much by @robertbryer in #4950
  • Update 608 library to support H.265/H.266 payloads by @littlespex in #4954
  • Add a new method getRepresentationsByTypeUnfiltered. This allows applications to get all Representations regardless of any filter settings by @dsilhavy in #4963
  • Enable mapping of Supplemental and Essential Properties from AdaptationSet to all Representations, but exclude those needed for URLQueryParams according to Annex I. by @stschr in #4901
  • Add a setting blacklistExpiryTime to expire blacklisted service locations by @robertbryer in #4983

Improvements

  • Performance: reduce Object.keys allocations in hot paths by @PascalThuet in #4937
  • Performance: make GapController interval configurable and reduce hot-path allocations by @PascalThuet in #4943
  • Apply npm audit fixes by @dsilhavy in #4899, #4994, #5023
  • Allow preload to work even when the setting cacheInitSegments is false by @robertbryer in #4957
  • Adds a warning message when an AdaptationSet is filtered because of unsupported EssentialProperties by @dsilhavy in #4961
  • Add Agents.md with information for AI agents by @dsilhavy in #4965
  • Improve track equality check by @stschr in #4966
  • Low Latency Improvements by @ryanmccartney in #4916
  • Refactors the GitHub actions to make specific parts reusable and avoid code duplication by @dsilhavy in #4975
  • Add notification pane in reference UI by @dsilhavy in #4977
  • Refactor: replace bcp-47-normalize with lightweight BCP-47 normalization (-185 KB) by @PascalThuet in #4970
  • Adds options to set the persistentState and the distinctiveIdentifier via the reference UIby @dsilhavy in #4991
  • Replace ua-parser-js with lightweight browser detection (-26 KB) by @PascalThuet in #4972, #5007
  • Dynamically read out request timeout in case settings are updated during runtime by @dsilhavy in #4997
  • Abort retrieveManifest requests after reset by @robertbryer in #5027

Bugfixes

  • Fix an issue with AdaptationSets linking to themself in a SupplementalProperty by @dsilhavy in #4918
  • Remove karma-webdriver-launcher because of insecurities and add buffe… by @dsilhavy in #4920
  • Check K value when determining whether to enable low latency mode by @ryanmccartney in #4915
  • Fix an issue that lead to exponential Increase in Concurrent Segment Requests for low latency streaming by @dsilhavy in #4921
  • changing media asset location by @stschr in #4928
  • Fix downloads of WebVTT segments in multiperiod MPD by @dsilhavy in #4925
  • Fix a bug in the L3D implementation when playing livesim2 content by @dsilhavy in #4927
  • Fix(steering): Fix incorrect splice/indexOf arguments in blacklist timer cleanup by @PascalThuet in #4946
  • Fix(mss): prevent crash when all DVR segments are removed by @PascalThuet in #4947
  • Fix addressing changed codecs at Period boundaries by @stschr in #4949
  • Adds missing NEW_TRACK_SELECTED to Typescript file. Fixes #4940 by @dsilhavy in #4952
  • Change StreamProcessor bandwidth check for scalable LCEVC by @v-nova-romas in #4951
  • Fix/nullpointer accessibility by @dsilhavy in #4955
  • Fix(streaming): add LRU cache limit to InitCache by @PascalThuet in #4935
  • Fix(core): prevent memory leaks in EventBus and XHRLoader by @PascalThuet in #4934
  • Replace Edgeware with Eyevinn in reference player contributors by @tobbee in #4968
  • jsdoc fix + verbose logger by @stschr in #4980
  • Fix: make MediaPlayerFactory SSR-safe to prevent 'window is not defined' error by @PascalThuet in #4929
  • Fix(dvb): correct off-by-one in DVBSelector weighted BaseURL selection by @PascalThuet in #4982
  • Fix(ttml): use endTimeSegment as fallback for last cue end time by @PascalThuet in #4986
  • Fix a bug that causes selection of the wrong certificate server url by @dsilhavy in #4989
  • Use responseStart for resourceTiming.responseStart by @dsilhavy in #5024
  • Fix a bug in the refrence UI causing loop for multiperiod content before period transition by @dsilhavy in #5029
  • Fix unreachable code warning in MediaController, update eslint config by @davemevans in #5020
  • Fix vulnerability issues in simple express server by @dsilhavy #5031
  • Change description of test vector in list of smoke vectors by @dsilhavy

Don't miss a new dashjs release

NewReleases is sending notifications on new releases.