npm shaka-player 5.1.0
v5.1.0

8 hours ago

5.1.0 (2026-04-15)

Features

  • ABR: Inform the ABR whether the stream is low latency or not (#9882) (6805b55)
  • ABR: Monitor dropped frames to influence decisions (#9918) (c3d82be)
  • Add basic support for TiVo OS (#9758) (5dbb298)
  • Add basic support to Titan OS (#9696) (123d665)
  • Add clampAppendWindowToDuration option (#9699) (2e732b5), closes #9674
  • add emsgregions, timelineregions, timelineregions as public functions for easy ID3 parsing (#9786) (b61a368)
  • Add HDR and screen size detection on Titan OS (#9700) (02f579f)
  • Add requestType and context to download events (#9723) (5abd49c)
  • Add subtitleDelay config for manual subtitle timing offset (#9939) (4706d5f)
  • Ads: Add _HLS_start_offset support for X-ASSET-LIST in HLS Interstitials (#9967) (657f31a)
  • Ads: Add ad-interstitial-preloaded event (#9853) (ea95bef)
  • Ads: Add ad-playing event to signal real ad playback start (#9855) (feae1d1)
  • Ads: Add startedAt param to ad-break-started event (#9858) (d604cc2)
  • CEA: Implement raw CEA-608 packet extraction (#9730) (6826ffa)
  • DASH: Add json format support (#9788) (c92c3bd)
  • DASH: Enable automatic XLink processing with fast detection and performance improvements (#9764) (e3781c4)
  • Demo: offer UI configuration in the demo app (#9807) (ef6c1fe)
  • HLS: Add CAN-SKIP-DATERANGES support (#9679) (943a5f5)
  • HLS: Add chapter images (#9738) (e59b8b4)
  • MSF: Add authorizationToken support (#9916) (83cc351)
  • MSF: Add CMSF contentProtection signaling support (#9972) (aa2dfae)
  • MSF: Add FETCH support for catalog (#9965) (d435f9b)
  • MSF: Add MoQT draft-16 support (#9966) (90a7379)
  • MSF: Make subscribe filter type configurable (#9941) (0522d0b)
  • net: Add commonAccessTokenHeaderName config (#9949) (ccb4b14)
  • Queue: Add metadata support in queue items (#9952) (51d3256)
  • Remove com.widevine.alpha.experiment from probeSupport (#9687) (9cef117)
  • Remove testing of MSS support (#9733) (42a88bc)
  • UI: Add fastSeek support for MediaSession seekTo (#9884) (f7f28be)
  • UI: Add mediaSession.allowAutoPiP config (#9885) (c03026f)
  • UI: Add new TrackLabelFormat: LABEL_OR_LANGUAGE and LANGUAGE_OR_LABEL (#9719) (652f391)
  • UI: Add showMenusOnTheRight config (#9838) (268fb19)
  • UI: Add showUIOnPaused config (#9751) (5b2eb37)
  • UI: Add support for chapter images in MediaSession (#9761) (fd5dac0)
  • UI: Display additional information when using TrackLabelFormat.LABEL for audio tracks (#9714) (f9db524)
  • UI: Enable seekOnTaps on touch-enabled desktop devices (#9935) (8ef8334)
  • UI: Enable volume adjustment via mouse wheel on VolumeBar (#9888) (01165e5)
  • UI: Enrich the chapter selection menu with thumbnails if the chapter does not have an image (#9811) (00f5cf6)
  • UI: Modernize Watermark (#9759) (df3caa4)
  • UI: Show chapter images on seek bar hover if there are no thumbnails (#9741) (3c45ae0)
  • UI: Show thumbnails in Chapters button (#9740) (04c96f9)

Bug Fixes

  • Ads: Fix ended detection when using supportsMultipleMediaElements = false (#9798) (3f4339d)
  • Ads: Fix getting uri of InsertPresentation and ReplacePresentation (#9766) (70441a3)
  • Ads: Fix playback of X-ASSET-LIST with X-PLAYOUT-LIMIT on Live (#9915) (b6a2d55)
  • Ads: Improvements to the use of ASSET-LIST on devices with single-element video support (#9810) (87ac4cb)
  • Ads: Synchronize the audio between ad and main content when using interstitials (#9767) (be8014e)
  • Allow MSE ended in canPerformOperations_ (#9683) (f9ce5ce)
  • Call endOfStream when no data available close to duration (#9866) (a62e87b)
  • Check end time when getting next segment reference (#9752) (99c4184)
  • ci: Update release for trusted publishing (#9768) (f6c99d4), closes #9132
  • Correctly extract file extension from URLs with dots in query params (#9946) (14821c3)
  • delay appending vtt subtitles depending on presence of discontinuity sequence and timestamp offset (#9676) (8b86ba5), closes #9470
  • Do not update the player position with negative playback rates if the video is paused (#9732) (ab09d4d)
  • Fix CryptoKey definition (#9686) (7d0422d)
  • Fix HDR detection in some devices (#9908) (7e80575)
  • Fix MIME type detection for uppercase types (#9976) (7e18f8c)
  • Fix suspend caption rendering when captions container is not visible (#9959) (d689f69)
  • Fix usage of mediaElement in shaka.Player constructor (#9698) (59f3831)
  • Fix video freezes when seeking to the end when the audio and video duration are slightly different (#9695) (5c8ffe4)
  • Handle ID3 EMSG duration according to AOM spec (#9757) (7a32fa2)
  • HLS: Add support for DTS and DTS-HD audio codec variants (#9863) (dd5b2da)
  • HLS: Fix timing of EMSG boxes when using HLS (#9744) (04c5b10)
  • HLS: Prevent infinite manifest update delay (#9867) (45a86ca)
  • HLS: Support external chapters (chaptersUri config) when load a Media Playlist (#9720) (08eb22f)
  • Honors streaming.retryParameters for segments (#9796) (90f5921)
  • Improve NativeTextDisplayer robustness, track-kind issues and enhance cleanup logic (#9776) (e35ab38)
  • Include isSwitchingContent in UnloadingEvent when load replaces existing content (#9934) (6c286b6)
  • include unencrypted decodingConfigs in preferredKeySystems loop (#9975) (0f322b0)
  • Increase tolerance for duplicate segment detection (#9865) (12f7296)
  • LCEVC: Fix live support when using DASH dual track (#9841) (72a8e94)
  • LCEVC: Fix multi-period VOD support (#9837) (b9abb39)
  • Limit recursion depth in TXml to prevent stack overflow DoS (#9964) (f48bd96)
  • MSF: Add PUBLISH_NAMESPACE_OK response to server PUBLISH_NAMESPACE (#9909) (e85e74a)
  • MSF: Add support for moqtail relay (#9819) (c2bd00a)
  • MSF: Correct handling of PUBLISH_DONE (#9893) (c272e0b)
  • MSF: Correct parsing of publishDone message (#9890) (47ed5ac)
  • MSF: fall back to session namespace for media subscribes (#9808) (0db1349)
  • MSF: Fix CMSF catalog parsing (#9710) (48b553a)
  • MSF: fix namespace tuple encoding in SUBSCRIBE message (#9803) (6630340)
  • MSF: Fix target latency support (#9825) (59c41c1)
  • MSF: handle SUBSCRIBE_NAMESPACE (0x11) control message (#9871) (313d1ce)
  • MSF: Improve buffer management (#9831) (ecfccbb)
  • MSF: move catalog typedefs to externs to prevent property mangling (#9804) (2682367)
  • MSF: prevent video segment eviction during initial buffering (#9809) (04eab23)
  • MSF: Remove "Possible encoding problem detected!" (#9814) (5c6b1c9)
  • MSF: Remove minimum segment availability duration (#9812) (4eec222)
  • MSF: support draft-14 SubgroupHeader types (0x10-0x1D) (#9802) (184ae48)
  • MSF: Use bigint natively (#9826) (0c0a47c)
  • net: Avoid duplicate progressUpdated in HttpXHRPlugin onload (#9726) (ff7cea5)
  • Prevent live stream infinite buffering when isAudioMuxedInVideo is present (#9835) (941d165)
  • prevent negative times in Stats (#9784) (cca8f50)
  • Properly clone nested cues and CueRegion in Cue.clone() (#9940) (845b6bd)
  • Set IntersectionObserver root to null (document not supported in Chrome 63) (#9782) (26ecc07)
  • StreamingEngine: correct variable reference in discardReferenceByBoundary_() (#9943) (93290d2)
  • TTML: sanitize backgroundImage URL to prevent CSS injection (#9929) (b6bc406)
  • TTML: Update position alignment map (#9735) (548fe29)
  • tXml: Return default value for a missing attribute (#9734) (5b81f70)
  • UI: Add a gap to settings menu to avoid overlapping with the edge of the video (#9765) (93080cd)
  • UI: Close overflow and settings menus when user seeks (#9834) (7669984)
  • UI: Ensure consistent language names with languageDisplay 'standard' (#9887) (59afe8a)
  • UI: Fix chapter marker issues (#9708) (3948908)
  • UI: Fix chapters markers size (#9728) (e8c8e0c)
  • UI: Fix delay updating the styles after seeks (#9846) (2e266d6)
  • UI: Fix delay updating the styles while seeking (#9847) (3419e29)
  • UI: Fix display "live" label on streams without seek bar (#9891) (1407596)
  • UI: Fix display chapter images on chapter selector. (#9889) (ab317c0)
  • UI: fix presentation time display when display time is larger than duration (#9712) (1d57fc4), closes #9711
  • UI: Fix seek using keyboard when the UI is hidden (#9933) (f205d4e)
  • UI: Fix tooltip text on subtitle position and size buttons (#9886) (b41d79c)
  • UI: Improve touch handling for single and double tap actions (#9937) (b6a0c05)
  • UI: Improve touch handling for single and double tap actions (#9944) (8d5f33e)
  • UI: Player automatically enters fullscreen on single tap on mobile (#9709) (5a6f1c6)
  • UI: Prevent hidden seek button from interfering with double-tap (#9748) (a3f4fd4), closes #9705
  • UI: Slight delay in removing chapter title labeling (#9707) (ffb67bc)
  • UI: sync seek position with hover and onChange timestamp using consistent position calculation (#9827) (3de29d4)
  • UI: sync seek position with hover timestamp using consistent position calculation (#9818) (6ee5d38)
  • UI: sync seekbar on timestamp position value between mousemove and onChange in firefox (#9840) (a7a37f5)
  • UITextDisplayer: avoid ResizeObserver loop warning (#9722) (1139a4e)
  • Use resize event to look for resolution change (#9951) (9e0bf22)
  • util: Add support for MPEG-2 video codec (#9860) (d15a070)
  • Validate that mediaElement.getStartDate returns a Date (#9701) (e57a509)
  • wrong variable reference in discardReferenceByBoundary_() causing (93290d2)

Performance Improvements

  • DASH: Add period caching to speed up manifest parsing (#9353) (1c83a69)
  • DASH: drop array operations on unique IDs when parsing periods (#9870) (3a5d588)
  • DASH: loop over adaptation sets using the partition method (#9862) (c9f8057)
  • Eliminate DataViewReader allocation and use native clz32 in ExpGolomb (#9779) (9575e2a)
  • hls: optimize playlist newline parsing to reduce memory overhead in text parser (#9775) (a789c89)
  • HLS: parse tag string directly instead of creating an array (#9856) (8819786)
  • HLS: reduce GC pressure when parsing HLS manifest tags (#9857) (79d29e0)
  • Improve performance of TsParser (#9783) (ac010c4)
  • media: replace filter calls in SegmentIndex with binary search (#9880) (c86ce86)
  • MSF: Improve compatibility with the draft-14 (#9895) (76d655b)
  • MSF: Reduce live latency to one segment (#9947) (2db061d)
  • MSF: Reduce startup latency changing the type of subscribe (#9903) (40e46d5)
  • net: avoid array allocations in XHR header parsing to reduce GC pressure (#9874) (c2531a8)
  • net: Optimize getExtension URI parsing (#9816) (e7b6d10)
  • player: stop recreating functions on video time update (#9854) (39cc2bd)
  • Remove redundant base64/xml conversions in PlayReady (#9778) (15c6022)
  • replace shift lpop with binary search (#9936) (6f57772)
  • S2T: Improve SpeechToText code (#9718) (56ac70d)
  • transmuxer: Reduce allocations in the h264 transmuxer (#9963) (d2ba9fb)
  • Transmuxer: replace identical object literals with named constants (#9852) (e687a6c)
  • TS: Eliminate per-PES wrapper array allocations in parse loop (#9883) (2c8cfd2)
  • UI: Optimization of chapter operations (#9739) (442ff14)
  • VTT: reduce GC pressure in VTT text parser (#9869) (503234e)

Don't miss a new shaka-player release

NewReleases is sending notifications on new releases.