5.0.0 (2026-02-06)
� BREAKING CHANGES
- Require apps to call updateStartTime instead of setting media element currentTime directly during startup (#9668)
- Remove setTextTrackVisibility from the public API (#9664)
- UI: Remove airplay button from uncompiled version (#9663)
- UI: Remove airplay button (#9654)
- UI: Change buttons order (#9651)
- UI: Add bigButtons config and remove addBigPlayButton config (#9636)
- UI: Enable customContextMenu by default on desktop browsers (#9635)
- UI: Add documentPictureInPicture config (#9634)
- Remove shaka.util.XmlUtils (#9616)
- Remove codem-isoboxer dependency (#9608)
- Use shared logic for MediaError details (#9594)
- Text displayers should receive a shaka.Player pointer (#9515)
- Move speech to text to the accessibility section in config (#9507)
- ABR: Remove abr.removeLatencyFromFirstPacketTime config (#9496)
- Remove autoShowText and simplify initial text track selection (#9435)
- UI: Improve Media Session management (#9483)
- Simplify shaka.ads.AdManager interface (#9357)
- Remove LRC, SBV, SSA support (#9330)
- Remove MSS support (#9329)
- Remove setSequenceMode from TextParser plugins (#9326)
- Remove
enableTextDisplayerfromTextDisplayerplugins (#9311) - Remove all deprecated things (#9162)
Features
- ABR: Remove abr.removeLatencyFromFirstPacketTime config (#9496) (687f0ee)
- Add a bufferAppending event (#9377) (d79d001), closes #9328
- Add application/mp4 as valid mimetype on MoQ (#9558) (f1de698)
- Add automatic subtitles (#9123) (61d80f6)
- Add configurationchanged event (#9531) (909655f)
- Add getMimeType method to shaka.Player (#9592) (55b0681)
- Add isDynamic method to shaka.Player (#9471) (a7919e4)
- Add listenMulti and listenOnceMulti to shaka.util.EventManager (#9652) (bd167c3)
- Add MoQT draft-14 + WARP/MSF draft-1 experimental support (#9409) (ef361ed)
- Add native chapters support (#9208) (9aed4df)
- Add new config to allow stop fetching new segments on pause (#9567) (e96442c)
- Ads: Add basic SVTA2053-2 support (#9172) (840ca96)
- Ads: Add getCurrentAd method (#9291) (6c683d7)
- Ads: Add new interstitials events (#9444) (2e124ba)
- ads: Add option to disable snapback behavior in ad settings (#9188) (a09d18e)
- Ads: Add support for SVTA2053-2 in HLS Interstitial with ASSET-LIST Carriage (#9159) (7dd132d)
- Ads: Add support for tracking urls (#9144) (e6dfa90)
- Ads: Add SVTA2053-2 support when using native HLS (#9310) (9a85fca)
- Ads: Allow auto init MediaTailor (#9351) (470d01c)
- Ads: Allow configure interstitial preload ahead time (#9464) (f690503)
- Ads: Allow init Media Tailor without container (#9294) (3996872)
- Ads: Allow preload post-roll interstitials (#9467) (be921e6)
- Ads: Apply disableTrackingEvents config to MediaTailor (#9189) (454a285)
- Ads: Support multi tracking urls in VAST (#9157) (1c941d7)
- Ads: Support noJump and skipAfter on Alternative Media Presentations (#9246) (822dc0c)
- Allow detect Fairplay on shaka.media.SegmentUtils (#9585) (eda2429)
- Allow override subtitle position (#9522) (c6e6082)
- Cast: Support getCurrentAd while casting (#9306) (02a2bb5)
- Change dvvC box to free box for Dolby Vision workarounds (#9101) (729cea8)
- CMCDv2: Response Received (#9362) (ac2d390)
- DASH: Add programinformation event (#9202) (0ecc68c)
- DASH: Add support for SegmentTimeline@Pattern (#9669) (4082ed7)
- Derive frameRate from fMP4 samples and improve MP4 parsing in SegmentUtils (#9626) (1debeb8)
- Disable remote usage on TV, CONSOLE and CAST devices (#9375) (b1a7e7b)
- Disable streams from MSE errors (#9097) (57229da)
- EME: Add retryLicensing() and failureCallback for manual license retry (#9638) (d98169b)
- EME: Implement MediaKeySessionClosedReason handling (#9540) (2bfb798)
- FairPlay: Add support for Gumlet (#9396) (49a4d56)
- Handle AdManager in CastProxy, CastSender and CastReceiver (#9266) (76cea8d)
- Handle forced subtitles automatically by default (configurable) (#9497) (1ace441)
- HLS: Add a
mediaTypesfield toshaka.extern.DrmInfo(#9198) (1ad3497) - HLS: Add AES-256-GCM support (#9562) (e5d9471)
- HLS: Add support for com.apple.hls.chapters (#9195) (7ccb20a)
- HLS: Detect new chapter streams added after initial load (#9573) (c4a506a)
- HLS: Remove enableAudioGroups usage (#9228) (e7c0a01)
- HLS: Support chapters on Live and custom config to add it (#9561) (bdfd028)
- Improve management of processLocally when using Speech To Text (#9449) (8f62320)
- Move speech to text to the accessibility section in config (#9507) (86bfea0)
- MSF: Add support for custom namespaces via config (#9586) (4c945af)
- net: Allow request filters to be called multiple times (#9129) (6d04f7f)
- Only disallow SourceBuffer.changeType on PlayReady when using Edge browser (#9603) (71af24f)
- Preload Manager update language configuration for audio and text (#9244) (7a70998)
- Queue: Allow set a custom player (#9256) (f20c5e4)
- Remove
enableTextDisplayerfromTextDisplayerplugins (#9311) (7f662a1) - Remove all deprecated things (#9162) (945c57a)
- Remove alwaysStreamText config (#9053) (dc235fc)
- Remove autoShowText and simplify initial text track selection (#9435) (73ee27b)
- Remove codem-isoboxer dependency (#9608) (12b9a9f)
- Remove LRC, SBV, SSA support (#9330) (4bc2518)
- Remove MSS support (#9329) (e85b648)
- Remove setSequenceMode from TextParser plugins (#9326) (8e0e0d8)
- Remove setTextTrackVisibility from the public API (#9664) (2db6038)
- Remove shaka.util.XmlUtils (#9616) (d452350)
- Require apps to call updateStartTime instead of setting media element currentTime directly during startup (#9668) (a10287e)
- Simplify shaka.ads.AdManager interface (#9357) (643e2c8)
- SRT: Improve SRT to WebVTT conversion and color handling (#9624) (afd2422)
- Support HLS live chapters using PDT or relative to start time of the stream (#9563) (6557fee)
- Suspend caption rendering when not visible using IntersectionObserver + Page Visibility + PiP (#9545) (14ebd65)
- Temporarily increase of segmentPrefetchLimit at high playback rates (#9231) (3c91c16)
- Text displayers should receive a shaka.Player pointer (#9515) (d5be5d6)
- UI: Add bigButtons config and remove addBigPlayButton config (#9636) (3fd73ce)
- UI: Add chapters marks to seek bar (#9643) (0542863)
- UI: Add copy video frame button (#9384) (ad64dba)
- UI: Add default config for CAST devices (#9257) (500672f)
- UI: Add documentPictureInPicture config (#9634) (023111f)
- UI: Add enableVrDeviceMotion config (#9303) (081beff)
- UI: Add new config to keep the menu open until user closes it (#9245) (ea72a74)
- UI: Add PiP placeholder with poster and exit icon (#9653) (333a941)
- UI: Add showUIAlways config (#9648) (60366e7)
- UI: Add showUIAlwaysOnAudioOnly config (#9390) (83d63d5)
- UI: Add subtitle size button (#9530) (6ba19b2)
- UI: Add support to nexttrack, previoustrack and skipad Media Session actions (#9218) (ffcbd4e)
- UI: Add translations for qaa and qad languages (#9501) (7ae5328)
- UI: Add video type button (#9107) (c0b85c7)
- UI: Adjust context menu positioning to avoid overflow (#9632) (a0384a1)
- UI: Allow all items registered in overflow to be in the context menu (#9527) (2d02ae3)
- UI: Allow configure the key name for shortcuts and add some new ones (#9105) (9d7b37b)
- UI: Allow display remaining time in the presentation time (#9249) (5be5289)
- UI: Allow show the content title (#9206) (179f7e8)
- UI: Change buttons order (#9651) (fbbfb11)
- UI: Enable customContextMenu by default on desktop browsers (#9635) (0c0c2ff)
- UI: Enable doubleClickForFullscreen for mobile (#9566) (6e23b40)
- UI: Improve Media Session management (#9483) (ff72abc)
- UI: Improve overflow menu style (#9631) (4b679d8)
- UI: Improve title management via MediaSession (#9203) (77e7f77)
- UI: Increase interactive area of seek bar and volume bar (#9124) (e9afbba), closes #9120
- UI: Modernize style of big play button (#9630) (7c42832)
- UI: Remove airplay button (#9654) (514246c)
- UI: Remove airplay button from uncompiled version (#9663) (be208dd)
- UI: Setup chapter information in Media Session (#9417) (955edba)
- UI: Show chapter name on seek bar when hovering (#9413) (978c0ed)
- UI: Support ad events when casting (#9280) (879f927)
- UI: Support sub menus on context button (#9526) (0d3f3d0)
- UI: Use audio description label when accessibility purpose is visually impaired (#9537) (9e5c1a9)
- UI: Use com.apple.hls.poster for poster setup (#9216) (d540658)
- UI: Use Intl.DisplayNames to show the language name (#9440) (fd2112b)
- Unify text track selection and visibility by allowing null to disable text. (#9048) (48b1f09)
- Update catalog format to MSF/CMSF v0 and standardize MOQ terminology (#9614) (c3b8461)
- Use shared logic for MediaError details (#9594) (5c05132)
Bug Fixes
- ABR: Check for the existence of variables (#9201) (aa7a9fc)
- ABR: Safeguard calls to this.switch_ (#9565) (ae971d0)
- Add cue fontSize fallback when using fontScaleFactor (#9117) (badaafc)
- add guards to prevent errors removing already detached media sources (#9599) (b226f80)
- Add usage of AccessibilityPurpose.VISUALLY_IMPAIRED when using src= (#9255) (cdf5f6d)
- Ads: Avoid duplicated HLS interstitials request when using ASSET-LIST (#9168) (9df740a)
- Ads: Avoid fire an error when calling to onHLSMetadata when it's not necessary (#9286) (1f20652)
- Ads: Do not start interstitials when the main video paused (#9242) (b2a946d)
- Ads: Don't allow change supportsMultipleMediaElements while an ad is playing (#9460) (4a657a3)
- Ads: Fix back to live when using X-RESUME-OFFSET (#9171) (97b549e)
- Ads: Fix bad detection of support multiple media elements on interstitials (#9145) (5f9ba4d)
- Ads: Fix LL HLS with interstitials pre-roll ad is played slightly after primary content when using ASSET-LIST (#9183) (194af00)
- Ads: Fix overlays when the base stream is live (#9040) (b65f685)
- Ads: Fix playback of overlays ads on mobile devices (#9078) (2179c6a)
- Ads: Fix playback of post roll-ads when using interstitials (#9428) (a8311da)
- Ads: Fix send _HLS_primary_id on HLS interstitials (#9581) (dbfe560)
- Ads: Fix start time of the interstitial when playing a pre/post-roll (#9459) (50610f8)
- Ads: Fix TypeError: null is not an object (evaluating 'b.mimeType.startsWith') (#9060) (45a82ac)
- Ads: Fix wrong interstitial id when deleting old interstitials (#9146) (67782e3)
- Ads: Handle bad HTTP status errors as specified, play main content (#9612) (eefc8c2)
- Ads: Harden MediaTailorAdManager state and cuepoint handling (#9619) (674e71d)
- Ads: Only support mutipleMediaElements when not using native controls (#9217) (772b557)
- Ads: Populate getTimeOffset for insterstitials (#9140) (468b84f)
- Ads: Remove duplicate listener on IMA CS integration (#9367) (388548f)
- Ads: Returns VAST <Ad> tag's id attribute in getAdId() (#9200) (b4252a6)
- Ads: Update HLS ad skip control (#9276) (c08f27d)
- Allow calculate the segment size from partials segments (#9094) (81344a8)
- Always detect framerate as positive (#9133) (75dc75e)
- Attach mediaKeys when the device does not force us to wait for the encrypted event (#9059) (4e1e9e6)
- Audit all usage of readBytes for memory leaks (#9027) (849bff1)
- Avoid audio streams filtering and use AdaptationSetCriteria instead (#9457) (2c1ab30)
- Avoid create a cast sender on Cast devices (#9258) (de5ff7b)
- Avoid download init segments again when not necessary (#9042) (f5fa1da)
- Avoid InvalidStateError when getting buffering when MSE is closed (#9437) (72132f5)
- Avoid null pointer exception on MSE reset (#9089) (5726c6a)
- Bad init segment size calculation when using byte ranges (#9092) (8dbd074)
- Bad segment size calculation when using byte ranges (#9090) (26c4b0d)
- build: Fix build compat with mac homebrew java (#9225) (8f5770c)
- Cast: Add missing player methods while casting (#9309) (dd95d45)
- Cast: Allow serialize arrays (#9277) (1916b22)
- Cast: Allow serialize nested events (#9281) (de4c7b6)
- Cast: Allow serialize nested events (#9283) (b376cc9)
- Cast: Fix propagation of currentAd while casting (#9307) (51ef883)
- Cast: Fix propagation of currentAd while casting (#9308) (747578a)
- CEA: Remove closed captions only on video update (#9125) (98fc330)
- ci: Fix Firefox tests running on Windows (#9670) (8db8d7a)
- CMCDv2: Memory leaks with ts param on request mode (#9193) (f526136)
- CMCDv2: Prevent processing when target is disabled in response mode (#9065) (c79b66b)
- ContentWorkarounds: Insert PSSH boxes for fake init encryption (#9600) (482117f)
- Correctly destroy enqueue blocking operations (#9677) (ebcf0fe)
- DASH: Fix can't access property "delete", unusedStreamsPerPeriod[(i - periodsMissing)] is undefined (#9038) (2ca6810)
- DASH: Fix stall on multiperiod streams (#9030) (bc6a7f2)
- DASH: Handle external SegmentBase BaseURL and SIDX offset fallback (#9477) (42df30a)
- DASH: Memory leak on DASH streams (#9369) (219c733)
- DASH: Shift segment timeline with cached presentationTimeOffset (#9481) (0bc7a96)
- Delay position change during codec switch (#9293) (2cd7bd7)
- demo: Fix assets metadata (#9609) (302e14b)
- Demo: Fix report bug button (#9161) (c691bc6)
- Disable smooth codec switching for Hisense VIDAA (#9601) (7d857b5)
- Dispatch metadata events when stream is paused and the user seeks (#9628) (9de4a98)
- Do not exclude time to first byte from measurements by default (#9476) (a84c6b5)
- Don't cancel trick play on VOD end (#9239) (c52b51b)
- don't clear text displayer cache for vtt if we're clearing cea cache (#9538) (2d23ea4)
- DRM: Apply initDataTransform before deduping (#9393) (1aa2903)
- DRM: Fix cache keys to include encryption scheme (#9392) (37b952d)
- DRM: Fix multikey playback on devices with SW DRM only (#9443) (dfbcc64)
- Ensure that the ABR has all the updated variants after making the initial selection (#9344) (f18c393)
- FairPlay: Fix FairPlay compatibility with DASH (#9436) (2a45491)
- Fire segmentappended event when adding a dependency data (#9382) (2ad4306)
- Fix access violation in TimedMetadata handler (#9431) (39758c8)
- Fix alignItems usage on old devices (#9544) (c4de8f1)
- Fix audio/video bandwidth calculation when only one of them is provided (#9091) (cd8285f)
- Fix blink subtitles when using NativeTextDisplayer in Safari (#9082) (2d8056a)
- Fix CANNOT_ADD_EXTERNAL_CHAPTERS_TO_LIVE_STREAM error code (#9138) (c94a34f)
- Fix case-insensitive MIME type matching in ManifestParser (#9416) (a5e262f)
- Fix default modifyCueCallback config (#9322) (856cb53)
- Fix exception reading audio-only content (#9465) (8d7a15b)
- Fix external text track timing when using HLS (#9511) (84dccd3)
- Fix getAudioTracks for HLS with multiplexed streams (#9047) (948a5f7)
- Fix getAudioTracks() return twice the same track (#9588) (125badc)
- Fix getLiveLatency when using Apple's native HLS (#9083) (5bd55ce)
- Fix HDLR box parsing (#9582) (32c8911)
- Fix HDR detection on WebOS on compiled builds (#9185) (1e0dcee)
- Fix infinite evict loop on text unload (#9331) (5c5c72e)
- Fix infinity initial loop when no autoplay and there is a initial gap (#9372) (91b2f51)
- Fix playback of muxed(audio+video) mp4 (#9412) (e90c782)
- Fix selectAudioTrack doesn't keep the same video stream when ABR is disabled (#9116) (fca4df7)
- Fix some data population on shaka.media.SegmentUtils.BasicInfo when the segment is encrypted (#9406) (da14c9c)
- Fix some EMSG events missing (#9064) (e2f8254)
- Fix startAtSegmentBoundary config when using a live stream (#9640) (9fd0be1)
- Fix usage of isRemotePlayback when casting (#9251) (9741079)
- HLS: Allow calculate stream bandwidth using segment size (#9093) (bfec94d)
- HLS: Allow get better segment size estimations (#9043) (06d92a5)
- HLS: closeSegmentIndex of EXT-X-IMAGE-STREAM-INF when not necessary (#9070) (9a6cba1)
- HLS: Determine the duration of an HLS content when it ends live (#9153) (17e3529)
- HLS: Fix bandwidth detection (#9230) (a384e0c)
- HLS: Fix handling of multiple audio groups (#9220) (c3ccf8f)
- HLS: Fix infinite buffering instead of end of stream for live (#9150) (7fa6b95)
- HLS: Fix label name for audio-only content without EXT-X-MEDIA (#9520) (691e7b5)
- HLS: Fix playback of EVENT playlist when transition from live to vod (#9054) (830b863)
- HLS: Fix subtitle codec detection when using MP4 (#9473) (3ab6a96)
- HLS: Fix support DATERANGE from 1970-01-01T00:00:00.000Z (#9580) (33cf09c)
- HLS: Improve abort decision logic (#9041) (3205235)
- HLS: Keep syncTime continuous by using previous value, if available (#9135) (d9e9da3), closes #9086
- HLS: Remove label for video streams (#9176) (afd9427)
- HLS: Support PATHWAY-ID (Content Steering) for subtitles (#9442) (2100fd1)
- HLS: Support playback with gaps (#9506) (25c4539)
- Improve handling of in-progress content (#9414) (ab16b73)
- Improve quota exceeded handler (#9130) (99d4a1e)
- Increase tolerance of completion ratio calculation (#9366) (4b1c3fe), closes #9365
- LCEVC: Add remove buffer functionality for LCEVCdecJS (#9163) (afd2577)
- LCEVC: Return early if playerInterface object is destroyed (#9621) (dde661f)
- Make clearLiveSeekableRange more robust (#9649) (b6a73d4)
- Make selectVideoTrack more resilient when using HLS with audio groups (#9232) (8a0cdfb)
- Make setLiveSeekableRange more robust (#9641) (5c013eb)
- Make sure that all variants are either: audio-only, video-only, or audio-video when preload (#9046) (288c247)
- Make sure the player is attached when loading a new stream (#9292) (d10c5bc)
- MSF: Do not re-encapsulate Shaka errors (#9613) (a9df794)
- MSS: Fix originalId creation in order to avoid duplicated originalId (#9126) (0ff4062)
- Offline: Fix playback of streams with audio muxed in video (#9229) (ee00301)
- parseHDLR for Apple QuickTime hdlr box compatibility (#9577) (66b0c74)
- Prefer disableStream over create a gap when a segment is missing (#9516) (35b8b08)
- Preload: Do not fetch license if delayLicenseRequestUntilPlayed is set (#9388) (cc73fc5)
- prevent infinite loop when constructing CMCD relative urls (#9055) (89d12a8), closes #9050
- Properly assign shaka.extern.DrmInfo#mediaTypes (#9340) (e47c05d)
- Queue: Fix start time when go to previous item (#9222) (c3cb63f)
- Return the correct getAudioTracks when only differs the codec (#9178) (00e634c)
- Return the correct getVideoTracks when only differs the audioId (#9179) (e582fa8)
- Setup correct video codecs on MSE (#9667) (fd83489)
- Support use addTextTrackAsync with NativeTextDisplayer (#9122) (cad470c)
- text track
activeproperty when using src= (#9462) (35f187e) - text track
activeproperty withSRC_EQUALSload mode (#9418) (888f6d3) - Thumbnails: Fix thumbnails precision issues (#9536) (b733fe2)
- Transmuxer: Keep stream width/height if it already exists (#9553) (c7694ca)
- TTML: Fix MP4 TTML Parser producing invalid image subtitles (#9559) (aaecc07)
- UI: Add LCEVC label in resolution menu (#9186) (f7c7d2a)
- UI: Align seek hover and drag time (#9429) (e03b2a9)
- UI: Allow play in VR in all compatible devices (#9297) (bc0dd79)
- UI: Always show thumbnail position in the correct place (#9264) (22ad6a6)
- UI: apply background color only for configured icons (#9121) (07462f8)
- UI: Avoid layout shift when displaying thumbnails (#9490) (12a3287)
- UI: Avoid show NaN in ad info (#9284) (3f3a52d)
- UI: Change AirPlay icon to unfilled variant (#9113) (0c93128)
- UI: Change Cast icon to unfilled variant (#9250) (beb5f69)
- UI: Change PiP icon to be consistent with YT (#9118) (fd0b5d2)
- UI: Change PiP icons to non filled variant (#9106) (da7ceb8), closes #9102
- UI: Disable VR mode while casting (#9296) (846799b)
- UI: Don't allow seek with seek on taps when there is a linear ad (#9191) (79f0512)
- UI: Fix constructed through DOM auto-setup (#9352) (8b6fbbc)
- UI: Fix error showing resolution list (#9219) (87b44ac)
- UI: Fix pointer events in some big buttons on small screens (#9650) (99ec36d)
- UI: Fix position of ad containers (#9077) (ea0ce82)
- UI: Fix position of elements when using Shaka UI with Bootstrap v5.0 (#9235) (dfb5ebd)
- UI: Fix position of sub menus (#9485) (0f4e849)
- UI: Fix position of tooltip on top controls (#9236) (965e88e)
- UI: Fix seek on taps position in CSS (#9192) (46b8dbe)
- UI: Fix show Ad Stats button when it's not necessary (#9525) (9b728fd)
- UI: Fix show Replay button on big play when there is not loaded video (#9234) (79e94a9)
- UI: Fix show seek bar ad markers (#9155) (624e13b)
- UI: Fix use of text selection component with old cast receivers (#9262) (adc4e12)
- UI: Fix video poster setup when using CastProxy on audio only streams (#9252) (9f68f8b)
- UI: Improve image quality on posters (#9373) (a04d084)
- UI: Make Overflow/Settings Menu position dynamic (#9395) (da7bb4d)
- UI: Make top controls clickable when playing an ad (#9241) (a131576)
- UI: Only setup the poster on local video (#9263) (a94fa3f)
- UI: Only show ad containers if they have child nodes (#9156) (ccf0755)
- UI: Prevent PiP window size issues by using relative sizing (#9633) (248b831)
- UI: Respect prefers-reduced-transparency for big play button (#9104) (17c2b0b)
- UI: Respect prefers-reduced-transparency for tooltips and seekbar times (#9057) (cd2b6d4)
- UI: Show always thumb indicator in the seekbar (#9167) (872e465)
- UI: Show Dolby Vision text for any DV codec (#9487) (38054c9)
- UI: Show forced subtitles in subtitle selector (#9441) (98895ce)
- UI: Show hours in time statistics (#9410) (2ceeec3)
- UI: Support non-square pixels in getResolutionLabel_ (#9300) (3143505)
- UI: Update chapters button on live (#9560) (ee97007)
- UI: Update chapters marks on live (#9509) (ee859a6)
- UI: Use the same icon in big and small play buttons (#9304) (a5c2c4f)
- Use timeupdate event for buffering states (#9445) (06793e4), closes #9438
- Validate prefetched variant in preload manager (#9213) (0890c2c)
- webOS: Disable smooth codec switch on webOS (#9273) (578c087)
- WebOS: Script-errors on WebOS when detecting HDR support (#9604) (ceb01dc)
- WebVTT: Fix lines starting with spaces don't break correctly (#9069) (f2b5034)
- WebVTT: Fix lines starting with spaces don't break correctly (#9100) (2eb3b0a)
- WebVTT: Fix times when using HLS without X-TIMESTAMP-MAP (#9313) (72955e0)
- Xbox: Enable little-endian PlayReady key IDs to resolve DRM error (#9348) (eed8573)
- Xbox: Implement requiresClearAndEncryptedInitSegments method for xbox (#9254) (3290498)
- Xbox: Report buffer satisfied if time is progressing (#9397) (cab5207)
Performance Improvements
- ABR: Minor performance optimization in EWMA alpha calculation (#9623) (7faa386)
- ABR: Try to suggest new streams after enable (#9177) (f702e55)
- Ads: Detect earlier initial preloadError in order to increase the performance when using supportsMultipleMediaElements = false (#9666) (dbcf5ac)
- Ads: Improve back to live performance when using interstitials and low latency (#9079) (f2aca29)
- Ads: Lazy initialization of SVTA ad manager (#9350) (2f36d4f)
- Allow update the segments on streaming engine more often (#9398) (afc91ce)
- boundary: Call MSE reset only on leading content type. (#9598) (be34778)
- CEA: Remove captions attached to removed segments (#9068) (f128e22)
- Chapters: Check does parser exist before fetching chapters track (#9204) (ed70317)
- Close media source only on audio(not muxed)/video updates (#9152) (74915ce)
- Close segment index after 5 seconds without usage of getThumbnails (#9071) (a503034)
- HLS: Assume that partial segments have the same mimetype as full segments (#9080) (a2b936f)
- HLS: Optimise manifest text parser (#9131) (2146c81)
- HLS: Optimize mimetype resolution during parsing (#9088) (72a9fdb)
- HLS: Reduce redundant parser calls (#9066) (a36fb32)
- HLS: Use find instead of filter to get attributes (#9405) (526d6e0)
- Improve startup performance of LiveSeekableRange operations (#9665) (2562fcb)
- Minor performance optimizations in TXml text processing and root lookup (#9622) (793749a)
- Optimize restrictions check (#9261) (1dde5c7)
- Prefer Uint8Array's {to,from}{Base64,Hex} methods (#9472) (2154049)
- Remove unnecessary ABR update during load (#9029) (d465feb)
- Speed up
shaka.Player.probeSupport()(#9095) (3c0e932) - UI: Combine consecutive configure calls (#9049) (f8db982)
- Use Map.getOrInsert/getOrInsertComputed native methods (#9546) (05b0972)