4.13.0 (2025-01-23)
Features
- ABR: Use PiP window size when using documentPictureInPicture (#7880) (c232867)
- ABR: Use PiP window size when using requestPictureInPicture (#7882) (a583c4a)
- Add 'downloadcompleted' event (#7609) (13186bd), closes #7608
- Add adaptation set criteria factory configuration (#7886) (6e4bfdf), closes #7768
- Add basic support for the Common Access Token (#7651) (c10b796)
- Add configuration to ignore SCTE214 supplemental codecs (#7717) (e1d1d19)
- Add downloadcompleted event description (#7615) (0db5813)
- Add new error code for missing EME support (#7596) (3a83e76)
- Add streaming.preferNativeDash config (#7737) (27976f1)
- add support for multiple robustness levels in drm (#7753) (88472b3)
- Add support for WisePlay DRM (#7854) (7ef0f92)
- Add Watermark Support to Shaka Player UI (#7877) (56523e4)
- Add watermark to uncompiled mode (#7895) (14c4fe1)
- Ads: Add basic support to DASH OverlayEvent (#7701) (b704af0)
- Ads: Add support for images and iframes in interstitials (#7712) (8db876f)
- Ads: Add support for overlay interstitials (or non-linear ads) (#7657) (70257ff)
- Ads: Allow OverlayEvents without viewport (#7734) (426090d)
- Ads: Expose the interstitial player (#7793) (6783ce0)
- Ads: Parse non-linear VAST ads (#7702) (0c7d204)
- Ads: Populate getAdId and getMediaUrl for interstitials (#7922) (1a6a0db)
- Ads: Support HTMLResource on non-linear VAST ads (#7710) (6f4d2d2)
- Check minHdcpVersion in probeSupport (#7809) (fab3faf)
- CMCD v2 LTC and MSD keys (#7412) (b2673fd)
- Create segmentIndex when there is only one variant (#7868) (3a85217)
- DASH: Extract PlayReady licenseServerUri from PSSH (#7898) (8fda5d8)
- Demo: Allow storage of MSS-PlayReady in demo (#7801) (8764169)
- Demo: Display unhandled rejections in demo (#7638) (d7e78f6)
- HLS: Add support for getting license server url for PlayReady (#7790) (effa244)
- net: Add originalRequest to shaka.extern.Response (#7857) (59c9989)
- Offline: Allow downloading some clearkey content without persistent license support (#7811) (50a1851)
- Save CEA708 caption cues on all windows when deleting/clearing windows (#7909) (19bd472)
- Simplify the use of low latency (#7748) (6616ff2)
- Stop setting playbackRate to 0 to control buffering state when streaming.rebufferingGoal = 0 (#7617) (84b64af)
- UI: Add config to show the audio codec in the audio selector (#7644) (ee72b89)
- UI: Add option to show the video codec name (#7747) (075c3fd)
- Update usage of minBufferTime according to the DASH spec (#7616) (2260aa9)
- Use MSE clearLiveSeekableRange and setLiveSeekableRange when available (#7905) (87d9392)
Bug Fixes
- Abort operations only once (#7624) (d407d15)
- Ads: Always fire CUEPOINTS_CHANGED when not using multi video elements (#7584) (a4d0fc8)
- Ads: Always set endTime for MPD Alternate (#7583) (16580ea)
- Ads: Apply X-PLAYOUT-LIMIT to entire interstitial (#7804) (e40341c)
- Ads: Avoid adding custom interstitials without URI (#7696) (743b451)
- Ads: Avoid skip interstitial when is not allowed (#7686) (7be22db)
- Ads: Calculate the mimeType in an earlier step so that there is no impact on the ad playback (#7742) (c113738)
- Ads: Disable interstitials when playing an interstitials (#7621) (7401adf)
- Ads: Don't allow play an overlay video ad using the base video (#7740) (172e713)
- Ads: Don't dispatch cue points changed if it is an overlay (#7695) (eb4a45e)
- Ads: Don't try to play Image and HTML overlay interstitials (#7697) (87cbf4d)
- Ads: Fix ad position by default (#7659) (ef2c7eb)
- Ads: Fix bad static overlay ad position (#7735) (e4825c3)
- Ads: Fix behavior when user JUMPS across more than one interstitial (#7667) (4aa9306)
- Ads: Fix id of X-ASSET-LIST (#7662) (79b1536)
- Ads: Fix post-roll playback (#7663) (9fd349a)
- Ads: Fix unnecessary request when using VAST (#7660) (d09cd7e)
- Ads: Fix usage of ENABLE-SKIP-AFTER and ENABLE-SKIP-FOR (#7677) (8048d02)
- Ads: Fix usage of ENABLE-SKIP-FOR in Interstitals (#7652) (46ab1cb)
- Ads: Fix VAST_INVALID_XML error code (#7593) (c1e26ea)
- Ads: Limit static overlay playback to the timeline (#7741) (eff0aef)
- Ads: Only display the secondary video if necessary (#7709) (072acf0)
- Ads: Prevent playing the same ad twice (#7585) (10659c5)
- Ads: Remove iframe border in overlays (#7738) (60c88eb)
- Ads: Stop properly interstitial ads (#7708) (f186185)
- Ads: Update Alternative MPD to match the latest spec (#7706) (cd78811)
- Ads: Use region.id as id for Alternative MPD interstitial (#7671) (18ed02c)
- Allow set maxLatency and minLatency to 0 (#7704) (4744d1e)
- Allow the user to disable subtitles while paused (#7578) (f41c65d)
- Avoid setAppendWindow when the window is Infinity (#7923) (c75ebd7)
- Avoid stack overflow when stringifying objects (#7721) (90e47eb), closes #7435
- Avoid useless MSE reset when transmuxing muxed content (#7818) (cc930a8)
- Calculate timeToFirstByte before fire the event 'downloadheadersreceived' (#7605) (0fc5316), closes #7604
- Cast: Incorrect detection of MediaCapabilities on Linux Chromecast (#7628) (bc0b9f2)
- CEA: Fix multi byte language support in CEA-708 (#7837) (5b13332)
- CEA: Fix multi byte language support in CEA-708 (#7929) (3856c58)
- Codec switch reload - apply boundaries correctly (#7700) (8dd9d20), closes #7595
- DASH: Change fallback presentation delay (#7918) (b9eabe5)
- DASH: Error due to deleted stream (#7723) (0ca6ff7)
- dash: Fix $Time$ usage with SegmentTemplate (#7849) (abd6d8b)
- DASH: Fix Dolby Atmos detection when there is not SupplementalProperty (#7847) (cf581cd)
- DASH: Fix playback after DASH period eviction (#7603) (d8a14b0)
- DASH: Ignore early segments in a period (#7910) (c7a93d7)
- DASH: Notify time range with the fitted timeline (#7911) (a89ee1a)
- Detect mov extension as video/quicktime (#7884) (b0be779)
- Detect smooth codec switch support on Apple devices (#7678) (f765e05)
- Disable live sync when the stream is paused (#7579) (89267cc)
- Disable smooth codec switch on Tizen 8 (#7614) (cd6aae7)
- Disable smooth codec switch on webOS 6 (#7636) (93e6921)
- Docs: Remove info about small/large gaps from manual (#7762) (9234e44)
- Don't ignore the license server in manifest when another key-system has license server in configuration (#7797) (ae34b68)
- Fix cast support for HLG HDR (#7632) (f964708)
- Fix CBCS support in recent WebOS (#7647) (137f256)
- Fix change timestampOffset on discontinuities when not necessary (#7823) (d3238dd)
- Fix ClearKey license on old CDMs (#7816) (fe1f35b)
- Fix gaps produced by the transmuxer (#7822) (934bdff)
- Fix isEnded for live streams (#7866) (5e5e5a8)
- Fix isEnded when is not fullyLoaded (#7883) (7e6116f)
- Fix missing EMSG events (#7839) (e6ca059)
- Fix normalized codec for VP9 (#7645) (f2061e4)
- Fix parameters lost during codec switch (#7630) (7837b60)
- Fix playback on Apple devices without ManagedMediaSource (#7669) (ff7c465), closes #7666
- Fix SEGMENT HEAD requests, compatibility with Cast SDK (#7851) (b153a9c), closes #7600
- Fix select spatial audio when using selectAudioLanguage (#7846) (c5dc5f4)
- Fix setLiveSeekableRange when the seekable range is too short (#7916) (30be525)
- Fix support for supplemental codecs (Dolby Vision) (#7720) (279e6cd)
- Fix unload call after destroy (#7690) (18652b6)
- Fix usage of keySystemsMapping (#7736) (79a481e)
- Fix video progress events accuracy (#7654) (5f8e958)
- Follow the configured playRange for src= (#7825) (b22e546)
- Forbid usage of instanceof ArrayBuffer (#7653) (55b7bd0), closes #6279
- HLS: Assign EXT-X-TILES to segment tags (#7864) (851308c)
- HLS: Correctly identify webvtt subtitles with cmft extension (#7791) (7ef5e62)
- HLS: Disable audio/video correctly when loading a TS media playlist (#7815) (626591e)
- HLS: Disable text correctly when loading a media playlist (#7840) (0fa17f6)
- HLS: Do not use EXT-X-PROGRAM-DATE-TIME on vod when there is only video or audio (#7802) (fe94b6b)
- HLS: Fix audio detection when there is no audio data but it appears in PMT (#7838) (34b69fa)
- HLS: Fix playback of raw AAC (#7641) (1d9ac65)
- HLS: Fix subtitle timing (#7625) (9e2b15e)
- HLS: Fix subtitle timing when no discontinuity but there is X-TIMESTAMP-MAP (#7681) (7afe08e)
- HLS: Fix timestamp offset for raw formats when using segments mode (#7819) (bd29645)
- HLS: Ignore errors when try to detect CC (#7668) (5be0fc4)
- HLS: Omit daterange without START-DATE in order to avoid errors (#7841) (bc0e1c6)
- Offline: Allow downloading AES content (#7827) (21bbd93)
- Offline: Allow storage of MSS streams (#7799) (bc41643)
- Offline: Fix download HLG tracks when using AUTO hdr level (#7865) (0eedbc9)
- Offline: Fix some aborted downloads continue to download (#7842) (fb8086b)
- Only create TextTrack of SimpleTextDisplayer when necessary (#7913) (9e71a01)
- Prefer Dolby Vision p5 over Dolby Vision p8 (#7745) (60429e9)
- Prefer SimpleTextDisplayer on iOS (#7569) (bd2c9a7)
- preload: Wait for drm keys when preloading (#7698) (a1e2f0a), closes #7520
- PS5: Prevent uncaught promise rejections when requests are aborted (#7637) (09cfac2)
- re-open the
MediaSourceifreadyStateis not open when theinit()method is called. (#7783) (6610fa3) - Remove useless calls to isTypeSupported (#7817) (bd99632)
- Remove useless deprecation in UITextDisplayer and add some guards in SimpleTextDisplayer (#7805) (fd78ec4)
- Silence aborted errors from PreloadManager. (#7619) (f277f2c), closes #7618
- Silence uncaught rejection errors when closing EME sessions (#7881) (bc6a79f)
- Timeout unfulfilled request to decodingInfo and requestMediaKeySystemAccess (#7682) (07894ec), closes #7680
- Transmuxer: Fix transmuxer with overflow data (video nalus and aac samples) between PES (#7813) (77c4251)
- tXml: Fix findChildrenNS when the namespace is in the element (#7896) (bcff34c)
- UI: Allow 1x playback rate when default playback rate is not x1 (#7787) (724166e)
- UI: Allow pause non-linear video ads (#7699) (2953b6f)
- UI: Change to use legacy css format to support old TVs (#7658) (e03dfc6)
- UI: Do not show codec name when the same codec is used for the same language (#7643) (87f6aa6)
- UI: Fix exception while casting to mismatched player version (#7631) (c9534a0)
- UI: Fix handle of seek on MediaSession (#7879) (57992b2)
- UI: Fix playback rate resets when pausing or playing the video (#7728) (6e382ce)
- UI: Hide ad counter when the ad is non-linear (#7718) (effaf95)
- UI: Hide ad position when the ad is non-linear (#7711) (8566836)
- UI: Show Dolby Atmos name in the UI (#7848) (a0848f7)
- UI: Show presentation time when playing non-linear ads (#7707) (d00ea51)
- UI: Use trickPlay method to control the playback rate (#7580) (70c2fda)
- UI: Video starts playing automatically when selecting a playback rate (#7786) (ac568a4)
- Use getSegmentAvailabilityStart instead of getSeekRangeStart to evict segments (#7867) (11afdc8)
- Use infiniteLiveStreamDuration equal to true in Safari 17 or above (#7901) (5005fac)
- Widevine: Add default audio/video robustness for Widevine (#7808) (a018f53)
- Xbox: Simplify the use of WebView2 (#7743) (775bc4e)