4.14.0 (2025-03-12)
Features
- Add avoidEvictionOnQuotaExceededError config (#8031) (6d30f61)
- Add config to allow reset MSE on cross boundary (#8156) (3699164)
- Add LCEVC dual track rendering (#8168) (389f45c)
- Add new error code when the streaming is not allowed (#7994) (455163f)
- Add Vizio as community support (#8049) (16ca489)
- Ads: Add double box format ad experience for Custom Overlay Interstitials (#8074) (e344f5d)
- Ads: Add overlayAds to AdsStats (#8068) (ace9d4a)
- Ads: Add support for L-Shape ad experience (#8051) (6bd0afe)
- Ads: Update DASH Media Presentation Insertion according to the latest draft (#8065) (171bdb3)
- Allow acquire thumbnails without track ID (#8129) (c312bd6)
- Allow preload text tracks and expose the preloaded variant and text tracks (#8187) (4e05551)
- Change the way to handle the STREAMING_NOT_ALLOWED error (#8033) (c2ff501)
- Create a new simple API for Audio (#8005) (f778713)
- DASH: Add dependencyVideo to video streams (#8057) (4936b0c)
- Deprecate selectVariantsByLabel because the same can be done with the new Audio API (#8095) (e9b1a6c)
- Do not make corrective seeks when setLiveSeekableRange is used (#8053) (dbdfa49)
- FairPlay: Add support for Mux (#8201) (31b32d3)
- HLS: Add allowRangeRequestsToGuessMimeType config (#7979) (195fd2b)
- HLS: Add an option to ignore DRM info (#7986) (9461bc2)
- LCEVC: Detect as supported dual track content with LCEVC (#8134) (8f0b0e3)
- Make the filters provided for FairPlay more error-resistant (#7974) (6ba871b)
- Move caption scaling from css to new textDisplayer.fontScaleFactor config (#8242) (c8747ab)
- Move shaka.util.FairPlayUtils to shaka.drm.FairPlay (#8217) (c2ce68f)
- Retain segment in memory on QuotaExceededError (#7954) (4c6c576)
- Simplify ignoreSupplementalCodecs config (#7967) (abaf82f)
- Simplify updatePeriod config (#7980) (7fa6cde)
- Text font scaling customisation ability (#8215) (18695c6)
- Time ID3, emsg, and metadata events to the presentation timeline (#8012) (cd32556)
- UI: Add halfequirectangular (180) VR support (#8238) (6e9e5a0)
- UI: Close submenu or context menu on option click (#8193) (5fc0fec)
Bug Fixes
- Add more info in getVariantTracks for muxed streams (#8002) (8e17bad)
- Ads: Fix default background color on interstitial (#8091) (a614786)
- Ads: Only set ad-active in the controls-container when the ad has custom clicks (#8075) (16d4e29)
- Ads: Remove default background color on interstitial overlay (#8085) (64a1076)
- Ads: Reset playRangeEnd value between interstitials (#8082) (2f3a868)
- Ads: Support urn:scte:dash:scte214-events schemeIdUri for overlays (#8086) (1071f40)
- Allow change the native playbackRate with the same functionality as trickPlay (#7993) (410d2e6)
- audio label when selecting variants by label (#8038) (56a920a)
- Avoid DRM setup for VOD that does not need it (#8154) (2573af7)
- Avoid launch RESTRICTIONS_CANNOT_BE_MET when it's not necessary (#8014) (ece88d6)
- Avoid rebuffering when using big trick play rates (#7988) (213b2b7)
- Call modifyCueCallback in src= mode (#8254) (bd9784a)
- Check bandwidth when filtering streams (#8125) (ccbbb01)
- Clear some caches when install/uninstall PatchedMediaKeysApple (#8198) (61d44c9)
- CMCD: Do not call play() if CMCD is not enabled (#8149) (3338ea7)
- CMCD: Only report ltc if playing; round to int (#8011) (6ce3c73), closes #8010
- DASH: ContentSteering promise is resolved too late for fetching of init segment (#8126) (65da004)
- DASH: Fix DASH_DUPLICATE_REPRESENTATION_ID error when using supplemental codec (#7961) (66ca230)
- DASH: Fix Dolby Atmos detection (#7966) (56c5f52)
- DASH: Fix playback of ClearKey when only part of keys are defined (#8055) (9a618d4)
- DASH: Revert Dolby Atmos detection when there is not SupplementalProperty (#8132) (5c3e1a0)
- Do not autoplay if autoplay is not set (#8024) (0efdd2b), closes #8022
- Do not recognize MultiChoice & Ziggo as Apple (#7996) (e0f3f5a)
- DRM: Fix drm choice when the user provide a server in the manifest (#8067) (bdce076)
- Duplicate timelineregion* events fired for the same event id (#8013) (e270b28)
- Evict the buffer against seekRangeStart (#8026) (44748b4)
- FairPlay: Install by default shaka.polyfill.PatchedMediaKeysApple on older Safari versions (#8106) (324b121)
- Fit template check template info (#8162) (b26dd1f)
- Fix AC-3 playback on Tizen 3.0 devices (#7969) (4eb2cea)
- Fix AC-3 playback on Tizen 3.0 devices when transmuxing (#7972) (dc62c8b)
- Fix codec selection (#8197) (2d0995f)
- Fix displaying subtitles in UITextDisplayer at high playback rates (#7991) (3be3b14)
- Fix DRM workaround with fLaC and Opus boxes (#8070) (186b2b6)
- Fix Hisense 4K detection (#8133) (ec37591)
- Fix playback with Apple Media Keys polyfill detection (#7958) (1825266)
- Fix seek to initial live position on slow devices (#8181) (6c01f18)
- Fix segmentappended event when using muxed streams (#7987) (10b1f63)
- Fix select label audio when using selectAudioLanguage (#7970) (20ed3b0)
- HLS: Better detect mimetype when server returns application/octet-stream (#8077) (d4ecdad)
- HLS: Detect spatial audio when using Dolby AC-4 (#8223) (88fa167)
- HLS: Fix duplicate segments on some inaccurate live streams (#8084) (be27a9d)
- HLS: Fix redirect management at media playlist level (#7944) (a38a810)
- HLS: Fix support for SUPPLEMENTAL-CODECS on EXT-X-I-FRAME-STREAM-INF (#7992) (307e3d8)
- HLS: Fix switching between muxed MP4 and muxed TS (#8061) (af4eb84)
- HLS: Only apply compensation if the difference is greater than 150ms (#8207) (04658d1)
- HLS: Populate encrypted info correctly on updates (#8153) (433a32a)
- HLS: Populate originalVideoId in HLS with the URI (#8003) (6c9b634)
- hls: Removing Possible encoding problem detected (#8253) (3c99d37)
- Install Safari workarounds on WPE STBs (#8103) (09b3333)
- net: Add 304 as successful request (#7963) (a0ed8da)
- net: Allow preventDefault() on retry event (#8058) (a30f1da)
- Only dispatch spatialvideoinfo and nospatialvideoinfo for video streams (#8236) (13a1340)
- Prevent race condition when seeking backwards during load (#8188) (bcf159d)
- PS5: Disable sequence mode in PS5 (#8004) (bb7ab3c)
- Remove isSafari and always use isApple (#8104) (7570935)
- Remove timeout for decodingInfo in some platforms and increase the timeout (#8172) (6ffc302)
- Subtitles: Prevent rounding errors when filtering duplicated cues (#8018) (24283e6)
- Throw preload destroyed error when re-using same preloadManager (#8046) (6583f96)
- TTML: Correctly handle multiple samples in a segment (#8088) (2562384)
- tXml: Allow case insensitive in parseDuration (#8064) (0400d1e)
- UI: Allow configure close menu delay time (#8235) (de4bb9e)
- UI: Allow play/pause when seekOnTaps is enabled (#8206) (db43a18)
- UI: Allow use hideUI on mobile devices (#8233) (4be4dbd)
- UI: Close context menu when hide the UI (#8234) (8739820)
- UI: Don't sort playback rates (#8230) (78ea4ee)
- UI: Fix bad behavior when we are on muted status and we turn volume up (#8231) (79ad771)
- UI: Fix scrolling with player in iframe (#8180) (97f2255)
- UI: Fix show AdStatisticsButton when it's not necessary (#7989) (e7d428a)
- UI: Fix thumbnail sometimes not disappearing due to mouse hover (#8089) (a3ccf83)
- UI: Fix weird behaviour when volume was 0, and we unmute (#8186) (3ff0e28)
- UI: Improve performance and compatibility with MediaSession (#8100) (3277f04)
- UI: Improve seekOnTaps behavior on tap and scroll (#8225) (c8d93a6)
- UI: Show GB unit in StatisticsButton (#7990) (8816086)
- UI: Update UI in order to support AC-4 (#8205) (051da08)
- Use audio label on ExampleBasedCriteria (#7971) (b491e4a)
- WebOS: Do not preload DRM on legacy EME (#8083) (477bbbf)
- When standard load, do not wait for pending license requests to finish. (#8219) (b8519f1)
Performance Improvements
- Ads: Only create the listeners/timers when there are interstitials (#8113) (cbcb1d8)
- Close segmentIndex after getAllThumbnails (#8128) (31373b3)
- Only set the timers on UITextDisplayer when there are cues (#8114) (f310833)
- Pause PlayheadObserverManager operations on pause event (#8183) (870a3f0)
- Prevent CastSender initialization on CastProxy on unsupported browsers (#7995) (b4ab526)
- Region timeline improvements (#8203) (235fbea)
- Remove promises from getAllThumbnails loop (#8118) (49706b9)
- UI: Avoid unnecessary calls to controls configure (#8116) (356de09)
- UI: Improve VR performance (#8237) (e672216)
- UI: Reduce configure calls to use shakaPlayerCastReceiverId (#8115) (b3c9722)
- Use navigator.userAgentData.platform to detect Android and Fuchsia (#8102) (7704a31)