4.13.0 (2025-01-23)
- 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)
- 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
MediaSource
ifreadyState
is 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)
- Improve GapJumpingController times (#7921) (1b19391)
- Improve times of probeSupport (#7889) (c4931c1)
- Reduce calls to isTypeSupported (#7729) (656d16c)
4.12.0 (2024-11-13)
- Add config to ignore hardware resolution (#7572) (11a7b92)
- Add manifest.disableIFrames config (#7255) (7b07614)
- Add preferredTextFormats config (#7523) (597e129)
- Add safeSeekEndOffset feature for live reposition (#7532) (73524d0)
- Ads: Add config to allow disable interstitials (#7271) (64e45c9)
- Ads: New HLS interstitial DATERANGE attributes for Skip Button (#7467) (3107de3)
- Cast: Enable storage in Android Cast devices (#7292) (1434426)
- DASH: Disable xlink processing by default (#7264) (d5ed8ed)
- Demo: Add new asset with DASH-FairPlay (#7487) (fbc6179)
- Enable AirPlay in MSE (#7431) (a6cf9cb)
- Enable audio groups by default (#7549) (5024184)
- HLS: Add the update period for HLS manifest (#7498) (7b38ca8)
- HLS: Make dummy streams for tags representing muxed audio (#7343) (e2413ed)
- i18n: Add Belarusian translation (#7409) (51d00b8)
- Offline: Allow store external text (#7328) (346cf48)
- Offline: Allow store external thumbnails (#7322) (013b3c7)
- preload: Wait for prefetches when preloading (#7533) (2ad1eff), closes #7520
- Remove streaming.parsePrftBox config (#7358) (fc4893d)
- Support Fairplay DRM in DASH manifest. (#7454) (c9f7723)
- UI: Add close button to statistics panel (#7482) (4e6e37c)
- UI: Added Mute button to context menu and overflow menu (#7439) (e883fed)
- UI: Allow configure the fullscreen mode in VisionOS (#7540) (3bd0978)
- UI: Use the lang= attribute to help screen-readers recognize localized labels (#7267) (3590aee)
- Use source tags instead of src attribute (#7406) (445b0ce)
- Active track state on variantchanged and adaptation events (#7350) (c15ca1d)
- Ads: Allow play interstitials on iOS fullscreen (#7538) (84ae806)
- Ads: Allow play interstitials using single video element when use native HLS (#7550) (fd6c322)
- Ads: Allow preload and remove old interstitials when playing a interstitial (#7465) (25e7620)
- Ads: Disable interstitials when using AirPlay (#7479) (2394ec2)
- Ads: Don't load useless segments when using playoutLimit on interstitial ads (#7469) (7d8510b)
- Ads: Fix duplicate Ads when playing interstitials through native HLS player (#7527) (075713f)
- Ads: Fix JUMP implementation to avoid loop the same ad group in Interstitials (#7329) (524014e)
- Ads: fix pre-roll identification when using src= (#7493) (576e4a5)
- Ads: Limit interstitial duration to actual duration if available (#7480) (ad9f2ac)
- Ads: Limit interstitial duration to actual duration if available when using src= (#7488) (334a00e)
- Ads: Release interstitials timer correctly (#7373) (53b704f)
- AirPlay: Don't show subtitles on the player when using AirPlay (#7514) (7c6dac5)
- AirPlay: Prefer Playback Remote API for closeOpenSessions (#7500) (30068a1)
- AirPlay: Show AirPlay button when starting the playback with AirPlay (#7515) (edb9e53)
- Allow show subtitles using webkit Fullscreen API when playing native HLS (#7539) (6ab6a8f)
- Allow streaming again when we reset MSE (#7495) (bc90c87)
- Avoid make HEAD request for image mime type (#7332) (6716ff0)
- Avoid notify buffered changes when segment appended is text (#7353) (43314a1)
- calculations of channel count for DASH AudioChannelConfiguration elements. (#7421) (669b7b3)
- DASH: Allow mixing SegmentTemplate-SegmentTimeline with SegmentTemplate-numbering (#7286) (e7229fb)
- DASH: Avoid adding originalId when it is not necessary (#7281) (a88be00)
- DASH: Clear streamMap when period is removed from the manifest (#7297) (da71e6d)
- DASH: Clear usedPeriodIds when period is removed from the manifest (#7305) (f8e3aa4)
- DASH: Clone closedCaptions map in PeriodCombiner output stream (#7309) (873bb24), closes #7303
- DASH: Clone EventStream nodes to reduce memory consumption (#7285) (0023acc), closes #7148
- DASH: Evict (by time) indexes in MetaSegmentIndex (#7296) (69b317f)
- DASH: Evict empty indexes in MetaSegmentIndex (#7272) (c9998f9)
- DASH: Exclude text segments when calculating max segment size (#7564) (3f9dec2)
- DASH: Fix HTTP redirect during manifest update (#7339) (6532a7c)
- DASH: Live DASH allows segment overlap in the updated manifest for first new segments (#7405) (051a8c5)
- DASH: Live to vod transition (#7404) (2d14dd5)
- dash: live to vod transition seek start (#7347) (e02367c)
- DASH: Release period combiner info correctly (#7364) (fe2ea80)
- DASH: Use presentationTimeOffset in EventStream (#7282) (c541b1c), closes #7277
- Disable Encryption Scheme Polyfil On Some Devices (#7355) (58f666b)
- Disable smooth codec switch if changeType is unavailable (#7414) (c90d5ff)
- Do not allow MSE operations when using Remote Playback (#7503) (b04caa3)
- Do not recognize Sky Q as Apple device (#7357) (e5fadab)
- Do not reuse the same tsParser for different contentType (#7563) (a020b19)
- Do not seek to first subtitle (#7312) (0980ba3), closes #7310
- docs: Add mising description of PRFT event (#7403) (072f46c)
- Don't use info from MSE mode when using Remote Playback (#7504) (e14a8eb)
- DRM: Fix persistent licenses not working for online playback (#7457) (6088c1d)
- Evict buffer on QUOTA_EXCEEDED_ERROR error (#7361) (0048e9d)
- Evict text buffer when unload the text stream (#7360) (5b6652f)
- Exclude TIMEOUT errors when disabling streams (#7369) (67826ac), closes #7368
- Export getFetchedPlaybackInfo (#7418) (ce38dd9), closes #7416
- Fire PRFT event every time (#7408) (e7f7825)
- Fix disable stream when no manifest (#7497) (5e1fc5a)
- Fix external image track mime type (#7333) (3a146c2)
- Fix metadata timing when using TS (#7478) (2b56dcd)
- Fix rendering of image subs when using SimpleTextDisplayer (#7258) (3d0b817)
- Fix reset MSE to last independent segment (#7494) (8c62370)
- Fix select HLG tracks when using AUTO hdr level (#7470) (322ea6b)
- Fix support of getAllThumbnails when using shaka.dash.TimelineSegmentIndex (#7508) (0ff61a5)
- Fix Windows detection (#7476) (fac9d84)
- HLS: Allow sync live streams without PROGRAM-DATE-TIME (#7340) (db27227)
- HLS: Avoid disabling muxed audio streams (#7351) (53cea44)
- HLS: Fix uncaught error in slow network scenario (#7321) (68e579b)
- HLS: Ignore DATERANGE with errors instead of fire an error (#7499) (b2b4238)
- Install polyfills for Comcast X1 devices (#7529) (2b2df4b)
- MSS: Don't allow prefetch segments with self-generated data (#7485) (d502e9b)
- MSS: Fix playback of some MSS streams (#7517) (6d0ee51)
- MSS: Fix timeline repetitions (#7484) (b1d3a3a)
- offline: Text segments are downloaded before audio&video (#7336) (e28a07e)
- only use lastSegmentReference for knowing if variant changed (#7537) (abfc0b2)
- preload: Resolve manifest promise sooner (#7380) (c548315)
- preload: Set manifest before initializing DRM (#7359) (b9ba66f)
- PS4/5: Disable smooth codec switch on PS4/5 (#7413) (7268a2b)
- Reduce calls to EME by ignoring MIME type in MediaKeySystemAccess cache (#7374) (6a4e95b), closes #7325
- Reset MSE when we disconnect from Remote Playback (#7506) (cf22042)
- Seek delay for Cast Nest hub (#7423) (d454514)
- Tizen: Adding gapPadding to gap manager to solve Tizen issue (#7331) (330e487)
- TTML: Fix absence of conversion of alpha (transparency) from 0-255 -> 0-1 (#7280) (fdf68d1), closes #7279
- TTML: Fix subtitles not rendered due to complaint about xml:id (#7270) (257de7f)
- UI: Disable fullscreen button conditionally when playing ads (#7534) (1497148)
- UI: Disable save frame when using remote playback (#7433) (263c6a6)
- UI: Display the font-family correctly in some cases (#7266) (96f8914)
- UI: Don't enable StatisticsButton when create overflow menu (#7481) (ba36958)
- UI: Don't try to add MediaSessionHandler for PiP when it's not available (#7376) (e71dca2)
- UI: Fix "Live" label in some languages (#7560) (8dae6e4)
- UI: Fix auto-load with source tags (#7430) (0f2ee89)
- UI: Fix mediaSession metadata update on Firefox (#7375) (6884721)
- UI: Fix missing tracks in resolution selector (#7352) (1314377)
- UI: Fix name for Dolby Digital Plus (#7541) (a01b5fd)
- UI: Fix remote button availability and icon (#7513) (c8bcfdb)
- UI: Fix set MediaSession info when no previous Metadata (#7521) (b00a2c3)
- UI: Fix the position of save video frame in the overflow menu (#7438) (85282ce)
- UI: Hidden cursor correctly (#7464) (3338579)
- UI: Hidden cursor correctly when no touch screen (#7458) (6e62cfa)
- UI: Remove buffering spinner when playing a client side ad (#7507) (b980f67)
- UI: Remove spinner and client side ad container elements when calling destroy (#7320) (3d51cb3)
- UI: Restore missing AirPlay button (#7389) (96da45a)
- WebVTT: Fix display italic subtitles with end align (#7559) (781a27d)
- WebVTT: Fix mapNativeCueToShakaCue in Chromium browsers (#7273) (76376e9)
- Ads: Reduce latency for interstitial to start playing (#7525) (5ee6a4d)
- Ads: Reduce latency for interstitial to start playing (#7528) (6303924)
- DASH: Create segment indexes only on new periods (#7294) (173a814)
- DASH: Delete old matchedStreams (#7301) (d559366)
- DASH: Delete old matchedStreams when using trickmodeVideo (#7306) (4ab3dea)
- Improve performance when parsing EMSG (#7557) (cb66f47)
- Only use tXml parent when necessary (#7304) (7ceffc0)
4.11.0 (2024-09-04)
- ABR: Add preferNetworkInformationBandwidth config (#7090) (6425b91)
- Add getFetchedPlaybackInfo method (#7074) (ef02763)
- Add public method for parsing cue payload (#6992) (eeadace)
- Add video codec preference array at same resolution and bitrate (#7204) (28523a3)
- Add width/height to getFetchedPlaybackInfo (#7107) (e58ac70), closes #6725
- Ads: Add basic VAST support without IMA (#7052) (c59922b)
- Ads: Add basic VMAP support without IMA (#7054) (a6f3999)
- Ads: Added advanced type to ad requests (#7196) (f5b78dc)
- Ads: Allow the use of custom interstitials ads (#6991) (9e1f4e7)
- Allow set the videoContainer in the Player constructor (#6953) (a35028c)
- CEA: Support alignment in CEA-608 (#7022) (11a2cc5)
- CMCD: Implement new streaming format from CMCDv2 (#7216) (8842648)
- DASH: Add DVB Font downloads (#6971) (789101c)
-
DASH: Add support for urn:mpeg:dash:ssr:2023 with SegmentTemplate
$Number$ (#6745) (3cb40bf) - DASH: MPD Alternate support (#7055) (93f2d96)
- DASH: Support Annex I: Flexible Insertion of URL Parameters (#7086) (a5adb39)
- DASH: Support DVB fonts with relative urls (#6974) (5849e25)
- DASH: Support trick-mode per resolution (#7224) (cb5aae4)
- Dispatch MediaSourceRecovered event (#7198) (fd5b09c)
- Export addFont method (#6975) (afc3e59)
- HLS: Add I-Frame playlist support (#7230) (67859c9)
- HLS: Add support for EXT-X-START (#6938) (d63df14)
- HLS: Deprecate useSafariBehaviorForLive config (#6978) (aaeafa4)
- net: Add minimum bytes for progress events (#7117) (d36ff65)
- Parse TS frameRate (#6998) (f4f9b05)
- preload: Add isPreload to net filter context (#7170) (5723a2b)
- Render native cues using text displayer (#6985) (6c0c63d)
- Store bandwidth info inside references. (#6825) (b4e04b6)
- TTML: Add support for IMSC1 (CMAF) image subtitle (#6968) (3b62296)
- UI: Add chapter button (#7018) (87bf738)
- UI: Add MediaSession management (#7188) (3026ba5)
- ABR: Do not adapt between spatial & non spatial audio (#7067) (1dc5c87)
- ABR: Fix restrictToElementSize running while abr disabled (#7153) (aea85b0)
- ABR: Not change to another quality without respecting a min time (#6979) (a5095a8)
- Add more info in getVariantTracks for muxed streams (#7181) (d63c44a)
- Add null check for current reference (#7184) (f5aceed)
- Adjust timing of mediaqualitychanged event when safe margin is set (#7114) (f6ac236)
- Ads: Detect correctly interstitial preroll when using native HLS playback in Safari (#7093) (9912798)
- Ads: Don't show duplicate SKIP UI in IMA CS (#7084) (9337143)
- Ads: Fix back to live for native HLS when interstitial endTime is Infinity (#7095) (18aea54)
- Ads: Fix mangled properties when using X-ASSET-LIST (#7002) (ade19cb)
- Ads: Fix playback of preroll interstitial when the currentTime is 0 (#7092) (0cdeb65)
- Ads: Fix timelineRange detection in HLS interstitials (#7091) (d79f8e2)
- Ads: Only allow play the preroll once (#7096) (0248268)
- Allow dispatch metadata event with cueTime equal to 0 (#7098) (dcdecf9)
- Allow recover normal stream when trick play stream fails (#7234) (2638ada)
- Allow reference mimeType change in StreamingEngine (#7061) (bf6632e)
- Apply playRange config to src= (#7168) (7cf332e)
- Avoid clear buffer when select the same audio track (#6959) (b953a75)
- Avoid reset iterator when seek into the buffer (#7004) (dc34ec4)
- CEA: Always init CEA parser with new init segment (#7102) (61e570e)
- CEA: Offset text CEA-608 that are out of viewport (#7024) (230f6e0)
- Compare normalized codecs in codec switching checks (#7143) (01545f4)
- Correct the behavior to defer closeSegmentIndex() calls during updates (#7217) (7ba7e61)
- DASH: Allow play all time fastSwitching tracks (#7180) (4abfc5a)
- DASH: Clear streamMap when period is removed from the manifest (#7202) (c5df88b)
- DASH: Fix allPartialSegments signal when using L3D (#7179) (a1d3927)
- DASH: Fix codec/mimeType for single text file (#7075) (4728d08)
- DASH: Fix creation of multiperiod trickmode streams (#7229) (ebab340)
- DASH: Fix EventStream Elements creation (#7194) (bd06fe7)
- DASH: Fix MPD Patch when SegmentTemplate is shared between Representations (#7218) (b2502fd), closes #7214
- DASH: Fix period combining when roles are equal (#7065) (38c691b)
- DASH: Fix transitions from 'dynamic' to 'static' (#7029) (3ba94b8)
- DASH: Improve memory usage with live streams (#7039) (d1435c7)
- DASH: Patch manifest Adaptationset indexing, @n=<Numbering> and @t= (#7131) (0f2cea4)
- DASH: Prioritize highest bandwidth in PeriodCombiner (#7045) (29ed0a8)
- DASH: Use proper namespace when mapping TXml node to Element (#7240) (cd2fc71)
- Defer
closeSegmentIndex()
for old streams during ABR switches when segment fetches are ongoing (#7157) (4cff18d) - Destroy correctly unused transmuxer (#7059) (f161a1c)
- Disable CC with disableText config (#7078) (f9040ce)
- Disable seek retry cooldown on most platforms (#7010) (dcc60f9)
- Do not minify CodecSwitchingStrategy enum keys (#7200) (f718139)
- Don't throw an error when trying to disable a trick mode stream (#7235) (92f70ee)
- Dont use inaccurateManifestTolerance for sequenceMode (#7207) (b119c03)
- Dont use trick play track for liveSync feature (#7219) (b7481f2)
- Exclude future segments in notifyTimeRange calculations (#6970) (62881f6)
- Filter duplicate cues on text displayer append (#6949) (fa9feb3)
- Fire the correct error code in src= mode in some situations (#7167) (a7a307c)
- Fix bad warning when use selectAudioLanguage (#6999) (fbf1ad0)
- Fix ended state in stateHistory (#7189) (f6be619)
- Fix error thrown after catching null error (#7177) (b4dc2ad)
- Fix horizontal alignment of WebVTT in UITextDisplayer (#7169) (efac129)
- Fix ID3 timing when included in EMSG (#7099) (eb36c0d)
- Fix iteration of document.fonts (#6976) (c70586c)
- Fix MSE polyfill for iOS (#7049) (fcd87aa)
- Fix NaN and empty objects in getNonDefaultConfiguration (#6956) (52e3864)
- Fix normalized codec for VVC (#7201) (8ca1b74)
- Fix skip interstitials with another ID but same URL (#7050) (8b70bb6)
- Fix support for Dolby Vision based in VVC (#7212) (cdbbe23)
- Fix type passed to isTypeSupported in some cases (#7233) (3e3953d)
- Fix UITextDisplayer desync & null pointer exception (#7199) (247753d)
- HLS: A/V sync regression for HLS live (#6987) (da6c605)
- HLS: A/V sync regression for HLS with different segment sizes (#7015) (83955ee)
- HLS: Add HLS_EMPTY_MEDIA_PLAYLIST error (#6951) (b3df270)
- HLS: Calculate the delay based on the sum of the segment lengths (#7209) (abdabb0)
- HLS: Check that segment 0 exists (#7208) (d744ef8)
- HLS: Expose tilesLayout properly for live (#7123) (388050c)
- HLS: Fix filtering video/audio streams without bandwidth (#7008) (64430ed)
- HLS: Fix load AES media playlist (#7012) (3bd032c)
- HLS: Fix parsing of width and height when using media playlist (#6989) (cec6166)
- HLS: Fix use of EXT-X-MEDIA when not using Content Steering (#7166) (fcacb95)
- HLS: Propagate bandwidth to stream in audio-only and video-only (#7006) (1f5badf)
- HLS: Remove init segment on formats without init segment (#7060) (c576bc3)
- honor autoShowText on non-audio streams (#6977) (ef15d13)
- net: Remove
AbortController
polyfill (#7149) (65e6681) - Offset text regions that are out of viewport (#6986) (ca7fd6e)
- Only check encryptionScheme when is not null and not empty string (#7079) (c62c5b5)
- Pass correct adaptation value to MediaSourceEngine (#7111) (0ff0578)
- PeriodCombiner: Use normalized codec to remove duplicates (#7032) (0669d24)
- Prefetch: Use the same references time for evict and prefetchSegmentsByTime (#7003) (9fcaf4d)
- properly map region height/width when applying anchors (#7105) (ac9a6ca)
- Repeated initial segment load & cancellations (#7147) (3f3bbc6)
- Revert change that caused a lot of warning with "cannot find endTime" and hls playback errors (#7239) (e522921)
- Revert change that caused stalls with "cannot find endTime" (#7213) (2d2bddd)
- SimpleTextDisplayer: Do not disable metadata & chapters tracks (#6948) (c6d834e)
- SSA: Support files with line breaks that are not necessary (#6947) (88431b6)
- Stats: Fix bytesDownloaded when using src= (#7223) (1faada6)
- Stats: Fix completionPercent for Live (#6957) (d719328)
- Transmuxer: Fix init segment between discontinuities (#7042) (6850f68)
- TTML: Fix font styles parsing (#6969) (f56f7ba)
- ttml: Handle escaped special characters. (#7047) (90668c2), closes #7044
- TTML: Show background color with image subtitles (#6967) (e68fd55)
- UI: Don't display NaN stats (#6958) (7c33192)
- UI: Fix ad markers set before full initialization (#7089) (1d5c7d2)
- UI: Fix display seekbar and time when the seekrange is infinite (#7182) (867f8b2)
- UI: Fix font-family override in UITextDisplayer (#7249) (3d33277)
- UI: Fix resolution label when the stream has not resolution (#7043) (089518c)
- UI: Fix seek preview time in VoD (#7027) (226c740)
- UI: fix wrong french in translation (#6982) (2d6c2af)
- UI: Only show frame rate if there are several frame rates (#7190) (d4249b1)
- UI: Remove not loaded font (#7242) (47f686f)
- UI: Show all resolutions when there are only one audio. (#7017) (2a2c9cd)
- UI: Show the ad marker in the seek bar when there are some intersections (#6990) (247037e)
- Unify maxDisabledTime behaviour (#7077) (8e13e91)
- WebVTT: Fix rendering of WebVTT in UITextDisplayer (#7023) (22a7c49)
- WebVTT: Re-add rollover logic (#7104) (0708379)
- Xbox: Fix screen resolution detection (#6988) (4d2aa24)
- Xbox: Override Dolby Vision codecs (#7115) (2c399e0)
- Xbox: Support screen resolution detection on Xbox when using WebView2 (#7144) (d93a019), closes #7141
- DRM: compare init data only when config flag is set (#6952) (be22e5b)
- HLS: do not loop twice when processing nalus (#6954) (a779d31)
4.10.0 (2024-07-01)
- add an audiotrackchanged event for when label, language, or roles of an audio track change (#6913) (8825af7)
- Add audio codec to
selectAudioLanguage()
(#6723) (48bdf17) - Add dontChooseCodecs config (#6759) (5067d5c)
- Add isLowLatency to shaka.extern.Manifest (#6842) (e020814)
- add liveSyncTargetLatency option and deprecate liveSyncMinLatency and liveSyncMaxLatency options (#6822) (277afbf)
- Add option to disable continue loading live stream manifest when paused (#6916) (0ea31b4)
- Add segment URIs to segment-related errors (#6714) (8d680e5), closes #6712
- Ads: Add averageLoadTime and errors to ad stats (#6828) (037d4cb)
- Ads: Add content resume/pause requested events (#6738) (9b47b8f)
- Ads: Add CUE ONCE support in Interstitials (#6785) (c72493a)
- Ads: Add CUE PRE and POST support in Interstitials (#6799) (4ea9a44)
- Ads: Add CUEPOINTS_CHANGED event to interstitials (#6791) (9b25ff5)
- Ads: Add support for interstitials when using src= (#6777) (59304b8)
- Ads: Add support for X-TIMELINE-OCCUPIES (#6806) (7844fed)
- Ads: Fill loadTime stats in interstitials (#6817) (28d3c98)
- Ads: Fix playback of interstitials in iOS (#6776) (363989c)
- Ads: Improve preload timing on interstitials (#6792) (4638775)
- Ads: Improve resume times when the interstial uses two video elements (#6774) (5bfe37f)
- Ads: Remove circular dependency (#6868) (e39defb)
- CEA: Add CEA support for VVC/H.266 (#6912) (a3d09a9)
- DASH: add
MPD_PATCH
advanced request type (#6787) (2f3a1eb) - Dynamic target latency (#6858) (68b4777)
- Export getMaxSegmentEndTime and getAvailabilityTimeOffset in PresentationTimeline (#6839) (680c0f1)
- Fix processing EXT-X-DATERANGE on live streams (#6740) (4820565)
- Fix useNativeHlsOnSafari deprecation (#6935) (b71d0a1)
- HLS: Add HLS interstitial support (#6761) (60e6847)
- HLS: Add support for EXT-X-DATERANGE (#6718) (2ec6444)
- HLS: Add support for MediaQualityInfo events (#6927) (0895e2e)
- HLS: Add support to variable substitution in EXT-X-DATERANGE (#6751) (3b2477f)
- HLS: Allow disable streams when the media playlist fails (#6807) (c866d7b)
- hls: expose manifest skd uri on drmInfo (#6857) (644677c)
- HLS: Ignore EXT-X-DATERANGE in the past (#6757) (8d7dd37)
- HLS: Only process DATE-RANGE in AUDIO and VIDEO playlists (#6793) (a1c91ae)
- HLS: Use PLANNED-DURATION to determine the end time (#6800) (bf5a103)
- move live sync options into their own object (#6845) (da0bc4d)
- MSS: Add support for MediaQualityInfo events (#6923) (767cbed)
- Parse dvvC box for Dolby Vision support (#6866) (69fe20f)
- preload: Add new method destroyAllPreloads (#6756) (b500799)
- Stats: Add
manifestGapCount
to stats (#6804) (8a678f3), closes #6789 - Stats: Add
manifestPeriodCount
to stats (#6798) (65b0b8d), closes #6788 - Stats: add size of the manifest to player stats (#6783) (d0d5843)
- Stats: count non fatal errors (#6781) (081afde)
- UI: Add ad statistics button (#6827) (ea82028)
- UI: Add new stats to context menu (#6814) (8395b91)
- UI: Add save video frame button (#6926) (19cfbf9)
- UI: Highlight current time when hovered on seek bar (#6870) (f46dbdc)
- UI: Initialize interstitials by default when using UI (#6797) (31d0445)
getPresentationStartTimeAsDate()
should return time unaffected by clock drift (#6790) (0820491)selectAudioLanguage()
should ignore unplayable variants (#6805) (95590ad)- ABR: Add a guard when variant is null (#6928) (3be95a8)
- ABR: Fix variant choose when two variants have the same bandwidth but different resolution (#6760) (a053dd2)
- Ads: Fix duplicate interstitials when using src= (#6784) (3949686)
- Ads: Fix interstitial ad values when the ad is loading (#6782) (08e8111)
- Ads: Fix skip functionality in MediaTailor (#6910) (339bab4)
- Allow use startTime equal to 0 in HLS live streams using src= (#6843) (224c1b9)
- Avoid filter manifest when the DRM is not initialized (#6737) (80139b0)
- Avoid firing SEGMENT_MISSING when there is an alternative (#6881) (aed859b)
- CEA: CEA-608 is not rendered in some cases (multiples TRAF boxes) (#6878) (a3e1fdd)
- CMCD: Fix reset CMCD on unload (#6821) (7bea10c)
- CS: Fix IMA integration (#6907) (9b1ef04)
- DASH: Allow play when SegmentTimeline has a duration 0 "S" element (#6896) (3e45e66)
- Do not export functions in getNonDefaultConfiguration (#6739) (93c6123)
- Don't clear the buffer when disable a stream (#6931) (5dac2c0)
- DRM: close properly webkit media key sessions (#6775) (309bd72)
- DRM: Probe robustness only for modern PlayReady keysystem (#6851) (96f248c)
- ensure all timelineregionenter events are fired (#6713) (76863f2), closes #6711
- Exclude fetch polyfill from fetch plugin (#6838) (8bb2d6e)
- Fix AC-4 codec string in MediaSourceEngine (#6780) (8fb31c1)
- Fix audio properties detection (#6867) (e204bf6)
- Fix continues to play a few seconds after reaching playRangeEnd (#6861) (9f5b5a5)
- Fix green screen issue on Edge with mixed content (#6719) (d5b1863)
- Fix initial track selection in src= when using HLS (#6803) (a65a6f8)
- Fix normalized codec for Dolby Vision (#6865) (465a69a)
- Fix timestampOffset when is greater than baseMediaDecodeTime (#6849) (3eb85f9)
- Generate the correct codec for AV1 HDR (#6879) (1c863c8)
- HLS: Allow detect mimeType from non-gap segments (#6892) (14ce038)
- HLS: Allow disable initial variant if necessary (#6940) (3416054)
- HLS: Avoid get basic info when the first segment is a gap (#6882) (f217344)
- HLS: Avoid make a HEAD request of gap segments (#6880) (c90bc5f)
- HLS: Disable stream when the media live playlist is stuck (#6900) (c555b38)
- HLS: Fix AC-4 codec selection in HLS (#6818) (bf15b24)
- HLS: Fix get basic info from segments (#6898) (02331e1)
- HLS: Fix getAvailableSegment_ function (#6915) (7bbf612)
- HLS: Fix MPEG-H codec selection in HLS (#6901) (3db66b3)
- HLS: Fix seekRange when using delta playlist (#6758) (7bcb86e)
- HLS: Identify EXT-X-GAP with segment tags (#6884) (4ff0859)
- HLS: Ignore query params in the uri of EXT-X-SESSION-KEY tags (#6755) (c3e6450)
- ignore buffered content less than 1e-4s (#6802) (d6fcf66)
- Only request initialization segment when it's necessary (#6929) (2f762ec)
- Prefetch: cache iterator to avoid precision issues (#6899) (b5f1ee9)
- Prefetch: Ensure prefetched segments are continuous (#6908) (db679e0)
- preload: Fix error handling (#6753) (9d1fe4a)
- preload: Fix memory leak with preload feature (#6894) (88d2a02), closes #6883
- preload: Fix preload error reporting (#6746) (95422b1)
- preload: Fix preload load latency logic. (#6890) (878bf62), closes #6871
- PS4: Fix serverCertificate defaulted to null (#6716) (6f84e41)
- Support for Zenterio (#6717) (97910dc)
- TTML: Extended subtitle codec support (#6832) (601098b), closes #6831
- TTML: Fix timing parsing when using 1dp (#6830) (3783ffd), closes #6829
- UI: Don't show presentation time in ads (#6752) (2e4ace5)
- UI: Fix resolution sorting (#6742) (aaf4b63)
- UI: UI does not update after loading a new stream (#6721) (d9242cd)
- UI: update French translations (#6873) (620756b)
- UI: update Polish translations (#6846) (2c610a4)
- UI: update Portuguese translations (#6874) (1fed8b7)
- UI: update Spanish translations (#6875) (34cc33c)
4.9.0 (2024-05-30)
- ABR: Add cacheLoadThreshold config (#6657) (f374173)
- Add a new setting to allow remove based on channels count (#6600) (0206e5a)
- Add config for add headers to license requests (#6650) (e7b893b)
- add config to clear decodingInfo cache on unload (#6678) (e0eeb5b)
- Add getNonDefaultConfiguration (#6620) (907e6ba)
- Add response URI to BAD_HTTP_STATUS error (#6561) (ed93987)
- Add support for probing encryption scheme support (#6506) (2dea350)
- Ads: Implement skip ad functionality in Media Tailor (#6598) (1429763)
- Ads: Support CS on devices that don't support multiple media elements (#6575) (520930c)
- Check encryptionScheme against MCap (#6484) (ec29f82)
- DASH: Add manifest.dash.enableFastSwitching config (#6500) (2fc0c93)
- DASH: Add MPD Chaining support (#6641) (82c5149)
- DASH: Add MPD Patch support (#5247) (d38aabf)
- DASH: Parse and use target latency (#6683) (9060ab0)
- DASH: Support Dolby Vision profile 8.x (HEVC) and 10.x (AV1) (#6590) (e480bf0)
- Expose the maximum hardware resolution through probeSupport() (#6569) (5da5de2)
- HLS: Build closed captions metadata on-the-fly (#6700) (082f897)
- Improve default retry delay for Low Latency (#6514) (5f8e7fd)
- Optionally force HTTP content URIs (#6649) (dda713a)
- Parse colorGamut and use it in MCap (#6663) (329d42a)
- Preload AES key when the key is available in EXT-X-SESSION-KEY (#6495) (57cb6ad)
- Preload: Add detachAndSavePreload method (#6630) (0a68e93)
- Set autoCorrectDrift to false by default for low latency streaming (#6549) (3d1c546)
- Set maxDisabledTime to 1 by default for low latency streaming (#6617) (1cdbbe0)
- UI: List bandwidth for duplicate resolutions (#6548) (a9d5dc3), closes #6494
- Add timeout to fullyLoaded in src= (#6676) (64e4fd8)
- Ads: Fix CS destroy (#6624) (0e9c2d8)
- Ban smooth codec switching on Tizen 5 & 6 (#6686) (c541515)
- Cast: Incorrect detection of MediaCapabilities on Chromecast (#6656) (00c5c1d)
- CEA: Fix stream detection when the stream has not control codes (#6703) (dd5658b)
- CEA: Ignore XDS control codes (#6702) (f69694a)
- CEA: reset PTS on new init segment (#6606) (024cb9b)
- CEA: reset PTS on new init segment (#6671) (bcc6791)
- Clear preload array before awaiting destroy (#6584) (be60f40)
- DASH: decrease memory preasure on manifest with SegmentReference by updating old initSegmentReference (#6499) (2dd85e4)
- DASH: Firefox multi-period/multi-codec bug (#6691) (b3cacad), closes #6690
- DASH: Fix get partial current position for LL when using SegmentTemplate@duration (#6516) (6c47f8b)
- DASH: Fix unescape UTCTiming uris (#6501) (27109fe)
-
DASH: Fix update of SegmentTemplate with
$number$ for LL (#6687) (c574be4) - Destroy preload managers on player destroy (#6576) (265784e)
- Disallow Object.fromEntries in Tizen (#6634) (11272a3)
- Do not assume 1080p Cast devices, some are 720p (#6562) (4498dcd)
- Enable SMOOTH codec switching on Fuchsia cast devices (#6609) (f1d620c)
- Fix COLR box parsing (#6699) (2b358c5)
- Fix default value of liveSyncMinPlaybackRate (#6685) (a219e2f)
- Fix deprecation warning for manifestPreprocessor that is always logged (#6496) (0873d1e)
- Fix flac detection in Safari (#6497) (0e00d65)
- Fix inefficient buffering behavior with negative trick play rate (#6489) (a57002b)
- Fix init segment equality in Segment Prefetch (#6537) (ce7cef4)
- Fix internal network filter for HEAD requests (#6660) (d816e7c)
- Fix MCap checking when using src= (#6675) (54234f1)
- Fix multi-codec filtering on DASH live (#6647) (9071002)
- Fix numBytesRemaining when the request is done (#6653) (812163a)
- Fix Opus support in Safari (#6607) (0a4c9d1)
- Fix progress events for VOD when using vodDynamicPlaybackRate (#6688) (95d3c4a)
- Fix seeking timeouts (#6539) (fda3c8f), closes #5202
- Fix tXml conversion to DOMElement (#6538) (d494068)
- Handle non existing navigator.platform string (#6517) (#6518) (f337e06)
- HLS: Fix bad detection in some MediaPlaylist (#6608) (c5af5c7)
- HLS: Fix HLS load when using #EXT-X-I-FRAME-STREAM-INF without resolution (#6680) (e51cd3b)
- HLS: Fix mimetype checking when using SUPPLEMENTAL-CODECS (#6597) (5a90547), closes #6586
- HLS: Support request byterange on media playlist detection (#6629) (d66446f)
- Issue with compiler minifying webOS device properties (#6558) (61ce88b)
- Make UITextDisplayer constructor backward compatible (#6532) (d564be8)
- patch
setServerCertificate()
on older Tizens & webOS (#6696) (9e26166) - preload: Copy net filters to preload manager (#6709) (1cfb53e), closes #6698
- Re-add setting playbackRate to 0 to control buffering state (#6546) (8232c60)
- Remove preloaded segment when segment has network error (#6515) (2f5062a)
- UI: Allow show same resolution with different video bandwidth (#6536) (9fb9b26)
- UI: Fix dragging the seek bar seeks and pans the view in VR mode (#6677) (e3f85eb)
- UI: Fix unhandled error when playing VR (#6679) (35cd411)
- Xbox - round gap jumping values (#6695) (5b6e340)
4.8.0 (2024-04-26)
- ABR: Additional request information for ABR Managers (#6313) (6c4333c)
- add
mediaSource.addExtraFeaturesToSourceBuffer
(#6362) (d0aa697), closes #6358 - add a live sync panic mode (#6149) (65981e2)
- add an option specifying when source buffer removals happen (#6242) (93d616e)
- Add bytesDownloaded to stats (#6469) (d532bf4)
- Add config to set live stream duration to Infinity (#6207) (de2957e)
- Add disableTextPrefetch config (#6197) (202f308)
- Add encryptionScheme support on MCap polyfill (#6482) (5a0e60a)
- Add encryptionScheme to shaka.extern.DrmInfo (#6480) (c6c39df)
- add includeKeys to CMCD config to allow filtering of CMCD data (#6248) (5a025fb)
- Add Opus TS transmuxer (#6387) (3b5a71c)
- Add preload system to player (#5897) (489b11a), closes #880
- Add segmentData info to SegmentReference (#6370) (2bb6dbc)
- Add support for Dolby Vision based on AVC and AV1 (#6154) (c100053)
- Add TextDisplayer config (#6477) (de2a2d8)
- Add unloadAndSavePreload (#6214) (0d929ca)
- Ads: Add ability to set tracking URL for Media Tailor (#6365) (b51e661)
- Ads: Skip play detection in some devices (#6443) (91f74e7)
- Change default preferredKeySystems for Xbox and PS4 (#6471) (cff3d84)
- CMCD: Add support to dl, nrr and nor parameters (#6171) (8a9f17d)
- CMCD: Add support to rtp parameter (#6184) (038e894)
- DASH: Add signalling the last segment number in Period (#6416) (07a3241)
- DASH: Allow PeriodCombiner for using streams once (#6097) (5e3db78)
- DASH: update period as part of configuration (#6419) (bdabddc)
- demo: Add new demo asset for multi-mimeType/codec feature (#6349) (067d9ce), closes #6010
- Demo: Show APIC(ID3) as poster for audio only streams (#6122) (291b497)
- Detect maximum HW resolution automatically on some platforms (#6180) (278c7bc)
- Escape html codes when getting node contents (#6198) (a1c1620)
- Evict instead delete on prefetch (#6404) (0fc5814)
- Expose PresentationTimeline segment availability duration through Player (#6075) (8ff5b59)
- HLS: Add AES-256 and AES-256-CTR support (#6002) (c3380ce)
- HLS: Add automatically keyId-key for identity format (#6308) (d251649)
- HLS: Add ignoreManifestProgramDateTimeForTypes (#6372) (03bb463)
- HLS: Add support for SUPPLEMENTAL-CODECS (#6155) (8d6ad7e)
- HLS: Create segmentIndex when there is only one variant (#6383) (3ba7492)
- Make getPlayheadTimeAsDate and getPresentationStartTimeAsDate available for VOD (#6417) (986071b)
- Parse avcC, hvcC and dvcC boxes (#6146) (b8520ed)
- Parse colr box (#6438) (b8b1aa6)
- Parse vpcC and av1C boxes (#6157) (151b29c)
- Parse XPath (#6470) (0883c32)
- Prefer MSE HLS over native HLS in Apple platform when not encrypted (#6188) (fc38aee)
- prefetch audio languages. (#6139) (a8ab0c8), closes #6128
- Remove com.adobe.primetime keysystem (#6189) (47602c6)
- Rename aes128Key to aesKey to allow aes256 in the future (#5990) (31c06ca)
- Replace native DOM Parser with a more performant one (#6063) (7116a34)
- SegmentIndex minimal interface (#6095) (f064811)
- Set updateIntervalSeconds to 0.1 by default for low latency streaming (#6403) (9838622)
- text: Add MediaSource.modifyCueCallback (#6167) (bd944d1)
- text: Add time context to modifyCueCallback (#6252) (03633e4)
- Trigger an event with spatial video info (#6437) (d8d96c8)
- UI: Add config for refreshTickInSeconds (#6386) (dbdef5d)
- UI: Allow show/hide ui programmatically (#6117) (4e599cb)
- UI: Disable forward and rewind with arrows while seekbar not active (#6049) (c189922)
- UI: Hide resolution overflow menu button if there's only one choice (#6004) (8649e7e)
- UI: Separate trackLabelFormat settings for text tracks and audio tracks (#6052) (a94a602)
- UI: UI support for VR content (#6450) (95c6a7d)
- UI: Use the same logic to group variants into audio and quality selectors (#6069) (eabfc47)
- UI: Use the same logic to group variants into audio and quality selectors (#6096) (c596677)
- Update for LCEVC Integration with new features added. (#6263) (7b717e5)
- vod dynamic playback rate buffer control (#6172) (8fc292b)
- WebVTT: Handle badly formed VTT (#6147) (335eab0)
- WebVTT: Remove un-needed VTT payload normalisation (#6145) (ee600c4)
- AC-3 audio codec support on Tizen (#6166) (08cc34a)
- Add LOAS-AAC detection in TS (#6390) (535d386)
- Add ManagedMediaSource support in MediaSource polyfill (#6361) (12bf642)
- add missing properties to PlayButton type (#6130) (8f0db8e)
- Add Opus and AV1 detection in TS (#6385) (bc23fff)
- Ads: Fix ad pausing when using customPlayheadTracker (#6444) (2d42933)
- Ads: Fix initial ads configuration (#6176) (5b141eb)
- Ads: Fix muting/unmuting ads won't affect video and vice versa (#6073) (01a217f)
- Ads: Fix VMAP won't play in muted autoplay (#6046) (a8bbbce)
- Allow by default variants without pssh in the manifest (#6144) (e1cd031)
- APL set-top box wrongly identifies as an Apple device. (#6026) (7f5005d)
- auto cancel trickPlay on live as specified (#6100) (45505b0)
- avoid uiTextDisplayer.destroy crashing if called more than once (#6022) (42c235d)
- call to load in MediaElement using src= in HLS Safari (#6478) (064c3b7)
- Cast: Don't pause local video until the cast connection is established (#6359) (ac833da)
- Cast: Force TS content to be transmuxed on Chromecast (#6262) (b8905bd), closes #5278
- Change quality only when adding the last partial segment and it is fast switching (#6114) (48626f2)
- clear listeners when resetting media source (#6449) (ab36ce7)
- CMCD: Allow reconfigure session ID (#6177) (3537dc0)
- CMCD: allow session id to be configured (#6192) (78c12a6)
- CMCD: Fix CMCD for some mimetypes in src= (#6178) (33b40cf)
- Correct playhead when seek beyond seekRange (#6304) (a6d27a9)
- DASH: Check if periodCombiner_ exists before configuring (#5998) (bb64cb1)
- DASH: Fix bad error on DASH DAI (#6047) (a371f43)
- DASH: Fix PERIOD_FLATTENING_FAILED on fastswitching streams (#6113) (af12b0b)
- DASH: Fix precision issue on some platforms (#6258) (4a0d1ca)
- DASH: Fix support for multi-mimeType variants (#6348) (1da5da9)
- DASH: Set delay to 0 for LL streams (#6406) (b7b2fc9)
- DASH: Update dash manifest when minimumUpdatePeriod = 0 (#6187) (a332070)
- DASH: Use labels to stitch streams across periods (#6121) (0de7af9)
- Demo: Allow play MP4 and TS in legacy iOS devices (#6051) (f0751cd)
- Demo: Fix MSS assets (#6194) (844c208)
- demo: Remove max height of demo config tabs (#6324) (4655271)
- Disable smooth codec switching in Edge Windows (#6384) (fdc7c6c)
- do not append blank codec strings (#6093) (ed0aa22), closes #6092
- Do not make LICENSE_REQUEST_FAILED fatal if other keys are successful (#6457) (a6c748a)
- Do not use
replaceAll
in XPath parsing (#6473) (bf17a34) - don't double wrap URIs for HLS key requests (#6246) (948660b)
- Don't retry MSE errors on startup (#6112) (de7d8d3)
- Don't update captions when video is paused (#6474) (2f653f1)
- ENCRYPTED CONTENT WITHOUT DRM INFO on comcast X1 due to safari blocklist (#6034) (3bf0664)
- Fix cea608 whitespace rendering (#6329) (8cf9d59), closes #6328
- Fix compiler issue in Mp4BoxParsers (#6312) (5badb6a)
- Fix detection of flac support on Safari (#6250) (bb712c0), closes #6249
- Fix detection of spatial rendering support in Cast (#6138) (4e47acd)
- Fix DRM workaround for Xbox with Dolby Vision boxes (#6201) (d938837)
- Fix duplicate init segment download when using startAtSegmentBoundary (#6479) (da7863d)
- Fix ENCA box parsing (#6298) (bca9f25)
- Fix encryptionScheme for FairPlay (#6483) (bf9787a)
- Fix exceptions in StreamingEngine when reloading (#6466) (d570ae1), closes #6458
- Fix gitpkg.now.sh dependencies (#6211) (62ab048)
- fix handling of multiple CC tracks (#6076) (44cb8a2)
- Fix HLS segment index errors and x-program-date-time errors since v4.7.4 (fd6b3d0)
- Fix liveLatency in stats (#5982) (00c918f)
- Fix nalu parsing in TS (#6137) (df8dbb9)
- Fix PES rollover in TS (#6363) (e8f37f0)
- Fix playback stuck on initial gap (#6340) (292ef20), closes #6339
- Fix reusing region elements in UITextDisplayer (#6476) (4302a6b)
- Fix SAR when transmuxing (#6309) (b5d69f0)
- Fix SegmentPrefetch in some cases (#6199) (b508d48)
- Fix support of getAllThumbnails when using DASH multi-period (#6464) (6905c74)
- Fix transmuxer when some PES has the same pts and dts value (#5985) (165feac)
- Fix uncaught global OBJECT_DESTROYED errors (#6460) (32d7054)
- Fix untrusted types in MediaTailorAdManager (#5996) (2f06039)
- Fix waiting for empty init datas (#6292) (118f47f), closes #6228
- Fix webOS 4 & 5 utility methods (#6463) (8c549f3)
- Fix wrong aspect ratio in transmuxed videos (#6170) (eb1fef8)
- HLS: Avoid duplicate AES request when using the same info (#6118) (1671a3e)
- HLS: Avoid duplicate AES requests (#6399) (ea740ba)
- HLS: Ban unsupported combinations of SAMPLE-AES encryption (#6295) (edbac36)
- HLS: Fix bad init segment request with byterange when using media playlist (#6297) (6a8f972)
- HLS: Fix bad warning when playing HLS-AES128 (#6434) (17df192)
- HLS: Fix clear init segment mapping (#6000) (8a44111)
- HLS: Fix IAMF codec selection in HLS (#6389) (c59a3b8)
- HLS: Fix labelling of captions in Safari (#6426) (35dd543)
- HLS: Fix playback of muxed TS content in Safari (#6045) (1b675cb)
- HLS: Fix SAMPLE-AES playback (#6402) (af88a32)
- HLS: Fix variant synchronization in HLS after selectVariantTrack (#5984) (8da033f)
- HLS: Fix VVC codec selection in HLS (#6156) (701ec9b)
- HLS: getPlayheadTimeAsDate() differs from X-EXT-PROGRAM-DATE-TIME (#6059) (776b69d)
- HLS: getPlayheadTimeAsDate() differs from X-EXT-PROGRAM-DATE-TIME (#6371) (c615cf4)
- HLS: Live recovery after disconnects (#6048) (8476631)
- HLS: Only offset segment ref times when needed w/ EXT-X-MEDIA-SEQUENCE (#6378) (bca6252)
- HLS: Reset textSequenceModeOffset on discontinuity (#6388) (966302d)
- HLS: Set the bandwidth correctly for audio/video-only variants (#6165) (658386b)
- Improved HEAD request fail test when fallback-ing to GET request (#6044) (b45877d)
- Include text bandwidth in stats (#6109) (4823dfe)
- Install by default shaka.polyfill.PatchedMediaKeysApple when there is no unprefixed EME support (#6053) (5b5b2ce)
- log prefetch miss for missing segments (#6012) (a70136d)
- Looser tolerance for ending trick play at edge of seek range. (#6422) (9f603ad), closes #6421
- offline: Fix server certificate error when trying to delete stored content (#6080) (e1eb003)
- offline: Fix store persistent licenses with drm info in the pssh (#6143) (5acc773)
- player Dropping Variant (better codec available) when it should not (#6163) (07ebdb1)
- preload: Fix load interruption (#6271) (d795a00), closes #6225
- preload: Fix timing of call to stopQueuingLatePhaseQueuedOperations (#6238) (fd57e7f), closes #6225
- preload: Only start preload if manager exists (#6222) (36b7367)
- Prevent license requests for unplayable variants (#6204) (cac1fd0)
- Provide a fallback to GET request when HEAD request fails (#5986) (1af93e6)
- Reject Opus encrypted on Firefox Android (#6115) (e692d68)
- Reject TS content on all platforms and transmux always (#6382) (7e32636)
- Reset to default playback rate on release playback rate controller (#6089) (23fb2f5)
- stay paused after codec switch (#6108) (e48438f)
- text roles being combined incorrectly in some multiperiod cases (#6055) (b463e39), closes #6054
- transmuxer: Support raw AAC with TS extension (#6360) (7c6e846)
- TTML: Clip to video when extent is not present (#6086) (2862228)
- TTML: Fix trim surrounding spaces with xml:space="default" (#6395) (bcedec3)
- tXml: html unescape node attributes with urls (#6267) (67cd2dd)
- UI: Disable PiP on casting (#6110) (6312fa3)
- UI: Fix disable PiP when using documentPictureInPicture (#5992) (6229284)
- UI: Fix keyboard navigation of volume bar on Firefox (#5981) (90f1d61)
- UI: Fix replay button when the post-roll is running using CS (#6072) (6b7a02a)
- UI: Fix the scrolling when scrolling from the laterals when seekOnTaps is enabled (#6050) (df05692)
- UI: Update the playbackrate on loaded event (#6090) (9b9ff16)
- VTT: fix setting textShadow when multiple CSS classes provided (#6287) (d0e64d7)
- WebVTT: Fix multiline colored VTT subtitles (#6394) (25427c7)
- WebVTT: Remove rollover logic because we always transmux TS (#6397) (286126e)
- When disconnecting from chromecast, subtitles are turned off (#6103) (d4cd66d)
- Cast: memoize/cache canDisplayType results to reduce startup latency (#6367) (30285b2)
- DRM: pass
preferredKeySystems
tofilterManifest()
(#6468) (c9b61fe) - HLS: do not filter all tags to get the first tag (#6088) (9802f65)
- Improve performance of addThumbnailsTrack (#6067) (3a14047)
- mp4generator: stop nesting concat in methods (#6041) (f52dd2b)
- Optimize init segment reference comparison for common case (#6014) (58d946e)
- PeriodCombiner improvements (#6005) (4022788)
- transmuxer: Improve performance on video transmuxing (#6364) (d0c3d9a)
- transmuxer: various performance improvements (#6003) (cd326e2)
- ts parser O(n^2) performance bug. (#6035) (dd50028)
- WebVTT: Improve parsing time for unstyled payloads (#6066) (9462e12)
- Add chapter titles and dividers on the seek bar (#6208) (32f8dc5)
- Fix potential AV sync issues after seek or adaptation (#6435) (73117f0), closes #5785 #4589
- Install by default shaka.polyfill.PatchedMediaKeysApple when there is no unprefixed EME support (#6068) (3ce4399)
4.7.0 (2023-12-04)
- Add config to allow Media Source recoveries (#5938) (0deb25b)
- Add config to prefer spatial audio (#5963) (90bc6a7)
- add preferred video label (#5948) (503327a)
- Add support for Common Media Server Data (CMSD) (#5900) (966b910)
- Avoid streams which cannot fit into the browser's MediaSource quota (#5937) (c496aaf)
- DASH: Add support for location in Content Steering (#5914) (8f453c2)
- DASH: Handle mixed-codec variants. (#5950) (24e3255), closes #5961
- Demo: Add field for chapters URL when adding custom content (#5934) (d1bc83d)
- Demo: Add field for text URL when adding custom content (#5953) (5c4a3a2)
- Demo: Use MediaSession action handler in the demo (#5927) (078ab36)
- expose CEA708 window position in the cue's region (#5924) (2a524bf)
- Fix Media Source recoveries in some cases (#5966) (b2a880b)
- Improve npm package size (#5955) (ca28063)
- Set baseDelay to 100 by default for low latency streaming (#5926) (515a4ab)
- UI: Add double tap to forward/rewind in the video (#5943) (918c30b)
- UI: Add more keyboard shortcuts (#5942) (2fcc2f8)
- UI: Hide language and resolution overflow menu button if there's only one choice (#5928) (628bb63)
- CEA: Fix positioning in CEA-608 (#5925) (83f6f53)
- DASH: Fix bad url when specify using a full WebVTT with BaseURL (#5954) (ba85ece)
- DASH: Fix false redirect detection (#5910) (3a68623)
- DASH: SegmentTemplate@media not updated after change in manifest (#5899) (30de177)
- Demo: Allow configure some missing configs (#5918) (c62e38c)
- Demo: Pressing "Edit" button unstores custom asset, but does not update "stored" button (#5936) (82b958f)
- Fix color detection in text utils (#5970) (68903e1)
- Fix ESDS box parser (#5952) (7683892)
- Fix init segment comparison (#5920) (82ab893)
- Fix language comparison in addTextTrackAsync (#5904) (f708318)
- Fix reset Media Source when using mixed codecs in different containers (#5949) (419b1c3)
- Fix trackschanged event not fired after a license request is denied for some tracks (#5962) (4eba182)
- Fix transmuxer when sample has no video data (#5933) (6102060)
- HLS: Fix m4s extension detection (#5951) (d89945f)
- HLS: Provide a fallback to GET request when HEAD request fails (#5964) (fb5a833)
- HLS: Recognize CEA subtitles when CLOSED-CAPTIONS attribute is missing (#5916) (58d4597)
- Only append to the buffer init segments when the segment is independent (#5921) (09f2a2e)
- Properly size region anchor from LINE units (#5941) (8b6602e)
- UI: Correctly display video time and duration for VOD (#5929) (00ff864)
- Unmask errors on LL (#5908) (c898364)
- WebVTT: Fix support for line vertical alignment (#5945) (9f5e461)
4.6.0 (2023-11-16)
- Add a stub text display class (#5804) (#5806) (700d181)
- Add config to ignore duplicate init data (#5853) (acf23f8)
- Add partial info to shaka.media.SegmentReference (#5822) (766b0a1)
- Add support for WPE based browsers in RDK set-top boxes (#5852) (2eedb12)
- Add thumbnails support in src= (#5802) (88e4cd4)
- Add video progress events (#5850) (c3beee6)
- Allow prefetch init segments (#5825) (3f392c0)
- DASH: Add initial support for "urn:mpeg:dash:ssr:2023" (#5762) (508e5cf)
- DASH: Add support for Content Steering (#5710) (42f491f)
- DASH: Add support for Content Steering in AdaptationSet BaseURL (#5884) (1c6f1fa)
- DASH: Add support for minimum values in service descriptions (#5844) (5f94a62)
- Demo: Add CBCS content to demo (#5862) (9777c52)
- Demo: Add Content Steering assets (#5888) (8e0ee8a)
- demo: Add icon for new demo asset (#5866) (f7448b7)
- Demo: Add new 3D movie stream from Apple (#5872) (a5adf31)
- HLS: Add new config for allow LL-HLS byterange optimization (#5877) (3e91e8e)
- HLS: Add new config to get codecs from media segment for playlists without CODECS attribute (#5772) (80630bb), closes #5769
- HLS: Add support for Content Steering (#5881) (b75ca1d)
- HLS: Add support for mjpg I-Frames playlist (#5856) (801131f)
- HLS: Add support for QUERYPARAM variable type in #EXT-X-DEFINE (#5801) (fda3189)
- HLS: Add support for REQ-VIDEO-LAYOUT (#5809) (81fc82b)
- HLS: Build closed captions metadata for media playlist on-the-fly. (#5811) (754bfac)
- HLS: Improve the stream info when EXT-X-MEDIA has not uri (#5886) (b5b6a0f)
- ID3: decode APIC frames (#5857) (6a862d2)
- Improve latency in LL DASH streams (#5820) (20b4abf)
- net: Add shaka.net.NetworkingUtils (#5756) (be96fd0)
- Stop setting playbackRate to 0 to control buffering state (#5696) (6156dce)
- thumbnails: Add Player.getAllThumbnails (#5783) (9f7576b), closes #5781
- UI: Add chapter titles and dividers on the seek bar (#5863) (c1198df)
- UI: Bucketize resolution names in the UI (#5816) (b56b9df)
- UI: Display frame rates in the quality selector (#5753) (3096378)
- UI: Show the channel count in the audio selector (#5868) (1681acd)
- Use ManagedMediaSource when available (#5683) (01da5fa)
- ABR: Fix HLS playback after internet connection is restored (#5879) (f5777e5)
- AD_STARTED fires before ad started with AWS Media Tailor (#5855) (b39f334)
- Add Orange platform to requiresEncryptionInfoInAllInitSegments (#5895) (9d23a87)
- Allow get seekRange on manifestparsed event in some cases (#5892) (606d693)
- Allow parseXmlString when createNodeIterator is not available (#5805) (ea7764d)
- ban new Uint16Array(buffer) (#5838) (155befb)
- CEA decoder should return early if packet is not large enough (#5893) (9a694b5)
- DASH: Fix bad url when specify MPD BaseURL and AdaptationSet BaseURL (#5883) (5f891d9)
- DASH: Fix manifest update time for Live manifests (#5763) (65449d1)
- DASH: Fix manifest update time for LL-DASH (#5736) (8b7141f)
- dash: fix race condition in segment template (#5842) (8d2b657)
- DASH: Handle minimumUpdatePeriod=0 with urn:mpeg:dash:event:2012 (EMSG) (#5823) (f8438df)
- DASH: Segments being fetched out of the range of the timeline (#5889) (d8aa24f)
- Dispatch streamDataCallback correctly in SegmentPrefetchOperation (#5764) (bab8153)
- Fix bug with live start time (#5835) (577d141)
- Fix chooseCodecsAndFilterManifest for similar frameRate (#5817) (8ff204d)
- Fix chooseCodecsAndFilterManifest for some HLS manifest (#5800) (51870e9)
- Fix converts legacy avc1 codec strings on transmuxer (#5790) (8944ca9)
- Fix crash while playing HLS AES 128 streams (#5830) (64b12c1)
- Fix DRM workaround for Tizen and Xbox with ac-4 boxes (#5812) (72a5de3)
- Fix incompatible codec is selected in Windows Edge for Widevine (#5831) (5aa3597)
- Fix mangled property in compiled mode in Content Steering (#5887) (0e62b8e)
- Fix missing audio streams (#5869) (d6aab6b)
- Fix nalu parsing and improve performance in the transmuxer (#5846) (ae423b4)
- Fix selectAudioLanguage using channelsCount param (#5875) (c830a99)
- Fix variant filtering by preferredAudioChannelCount (#5859) (51edeae)
- For text content is not necessary codec switching (#5731) (bdbaae5)
- hisense: set stallSkip to 0 for HiSense devices (#5833) (c457db8)
- HLS: Fix accessibilityPurpose detection (#5840) (ceaa9fa)
- HLS: Fix bad detection in some MediaPlaylist (#5878) (5e797bd)
- HLS: Fix decryption of AES-128 (#5871) (da38b36)
- HLS: Fix init segment when EXT-X-MAP is preceded by EXT-X-BYTERANGE (#5732) (24e5de3)
- HLS: Fix kind detection for 'captions' text tracks (#5819) (8e442b3)
- HLS: Fix LL-HLS with byterange optimization using segments mode (#5876) (c79e5a5)
- HLS: Fix url management in HLS (#5722) (8deab71)
- Offline: Fix download of some HLS manifests (#5861) (c2c8320)
- offline: Fix server certificate error when trying to store content (#5848) (f4a35f2)
- TTML: Fix support of urls in smpte:backgroundImage (#5851) (fa93d53)
- UI: Console error on remote.cancelwatchavailability() method in remote playback feature (#5793) (b66a8e8)
- UI: Fix text selector when the trackLabelFormat is set to LABEL (#5751) (bba0651)
- UITextDisplayer font-family is overridden by UI's Roboto font (#5829) (cb8a5ed)
- WebVTT: Fix wrong writing-mode in nested cues (#5807) (ea7d83e)
- dash: improve readability and reduce number of loops in dash parser (#5768) (17a4363)
- DASH: PeriodCombiner optimisations (#5837) (ade93b0)
- DASH: reduce looping and remove chaining awaits in period (#5774) (be755e8)
- HLS: Improve detection of all partial segments (#5761) (2a35579)
- Improve transmuxer performance (#5789) (aa41e87)
- manifest: avoid unnecessary looping in uri resolver (#5773) (4d5caee)
- simplify and improve performance of parsing initData when deduping (#5775) (041a08f)
- utils: use WeakSet to track object references (#5791) (daa9d1f)
- Xbox: drop incompatible variants for XBOX early (#5777) (170a40c)
4.5.0 (2023-10-04)
- ABR: Allow some downscale when use restrictToElementSize or restrictToScreenSize (#5631) (cad1ac8)
- Add getBandwidthEstimate to the player interface for custom manifest parser (#5714) (1271a18)
- Add H.265 TS transmuxer (#5611) (3c2c095)
- Add KeyStatusChanged and UpdateState events (#5695) (2f97fa7)
- Add manifestupdated event (#5602) (b16d2f0)
- Add TS transmuxer for muxed content (#5571) (7df3321)
- Ads: Add support for AWS Elemental MediaTailor (#5679) (cf5a72b)
- CEA: Parse CEA from TS with H.265 (#5610) (54eaf63)
- DASH: Add new config to prevent mixing of audio representations from different adaptation sets (#5620) (0bbb470)
- DASH: Add support for AES-128 (#5656) (96ae7f2)
-
DASH: Allow the playback of DASH with
$time$ and large timescale value (#5621) (4a1c96e) - demo: Added icons for new demo assets (#5691) (12400b1)
- Enable codec switching (#5470) (0078137)
- HLS: Get the correct video info for TS segments with H.265 (#5616) (e191c75)
- HLS: Take into account the parsing time for manifest schedule update (#5678) (f7e33a3)
- Migration of LCEVC DIL (Decoder Integration Layer) to LCEVC Dec (Decoder) (#5459) (c1e18d3)
- TTML: Add support to tts:ruby (#5645) (9fd220e)
- TTML: Add support to tts:textCombine (#5644) (73a3bd9)
- UI: Add config to preferDocumentPictureInPicture (#5690) (025502a)
- UI: Add PiP function to controls (#5629) (b422847)
- UI: Add remote button with RemotePlayback API (#5650) (1ef5ae0)
- WebVTT: Add support to ruby, rt, rp html tags (#5642) (76ffd38)
- WebVTT: Add support to text-combine-upright (#5633) (a2f253f)
- Allow PID change in TsParser (#5681) (d9b49d9)
- CMCD: Fix CMCD for some mimetypes in src= (#5699) (e2c32c5)
- com.apple.fps should work with the default initDataTransform when using legacy Apple Media Keys (#5603) (76fdda6)
- Compute correctly the positionAlign in UITextDisplayer (#5630) (3a2dbc3)
- DASH: Fix bigint implementation (#5707) (45009d2)
- DASH: Fix race condition error while switching audio tracks (#5619) (29d9a10)
- Demo: Allow com.apple.fps.1_0 in the custom DRM System field (#5600) (ab86000)
- Demo: Fix url of "Low Latency HLS Live" asset (#5708) (146d3ec)
- Fix compiled-mode error formatting (#5623) (a19912e)
- Fix creation of new Stream object for each manifest request in DASH Live when using CEA (#5674) (0a8b519)
- Fix MediaSourceEngine reset operation (#5576) (9f5e91f)
- Fix Mp4Generator (#5566) (effafbc)
- Fix NALU parsing in some HLS muxed live streams (#5688) (756a576)
- Fix PES parsing (#5559) (5c6ab9e)
- fix preferred track selection on Safari (#5601) (d021d6f)
- Fix some properties on the shaka.text.Cue that are mangled (#5673) (d2b7cb2)
- Fix transmuxed audio timestamps (#5595) (0260aef)
- Fix transmuxing of muxed content (#5686) (f20d50a)
- Fix TS transmuxer when the main content is muxed (#5575) (65b3037)
- Fix unreleased stack overflow on statechanged (#5712) (ebacf32)
- HLS: Allow audio groups on audio-only content (#5578) (3cbc444)
- HLS: Fix audio and video out of sync (#5658) (4cc4143)
- HLS: Fix display CEA-708 in HLS (#5694) (2097193)
- HLS: Fix presentation delay for small live playlists (eg: 3-4 segments) (#5687) (caef5a4)
- HLS: Get the correct video codec for TS segments (#5598) (1135115)
- HLS: Show WebVTT subtitles with X-TIMESTAMP-MAP in segments mode (#5643) (bd636d4)
- HLS: Skip segments without duration and without partial segments (#5705) (f53d50d)
- HLS: Support AES-128 in init segment according the RFC (#5677) (806d91a)
- Improve TsParse to avoid parsing errors (#5615) (5fa8b42)
- Prevent codecs override in the transmuxer (#5568) (66c625f)
- Remove debugging code on Simple Text (#5582) (991130a)
- seeking in segment timeline returns incorrect index (#5716) (c02ccee), closes #5664
- TTML: Fix wrong writing-mode in nested cues (#5646) (3a4f108)
- UI: Fix broken language names on Google TV (#5613) (fc93292)
- WebVTT: Fix support for line:0 vertical alignment (#5632) (eed393f)
- WebVTT: Fix text displayed out of picture and with overlapping lines (#5662) (6975be9), closes #5661
- WebVTT: Fix wrong writing-mode in nested cues (#5641) (56a4cea)
4.4.0 (2023-08-30)
- ABR: Abr improvement config (#5400) (b51ee6e)
- Add a Mp4Generator (#5127) (d475a73)
- Add AAC silent frame getter (#5557) (933f039)
- Add AAC transmuxer (#5240) (00d3a45)
- Add AC-3 and EC-3 support in Mp4Generator (#5235) (28d18ad)
- Add AC-3 detection in TS (#4931) (48c30bc)
- Add AC3 transmuxer (#5297) (6f83997)
- Add EC-3 detection in TS (#5144) (24a3b7d)
- Add EC3 transmuxer (#5352) (7d24e14)
- Add ExpressPlay FairPlay util (#4926) (7fa40fd)
- add feature-flag to insert fake encryption in init segments on broken platforms (#5561) (f14f295)
- Add getManifestType method (#5021) (c7c5e94)
- Add liveSync configuration to catch up on live streams (#5304) (db44dc8)
- Add missing export in TsParser (#5145) (412a7e8)
- Add MP3 transmuxer (#5208) (82e905b)
- add Occitan locale (#4900) (68486a3)
- Add originalLanguage to the Track structure (#5409) (f53349f)
- Add preferredAudioLabel to PlayerConfiguration (#4763) (aadecd6)
- Add preferredVideoHdrLevel config. (#5370) (2f511a2)
- Add safeMargin as a parameter of the player selectAudioLanguage method (#5316) (e4a4138)
- Add support for AC-3 and EC-3 audio in DVB streams (#5484) (9bd559b)
- Add support for changing codecs in MediaSourceEngine (#5217) (464f33c)
- Add support for Document Picture-in-Picture (#4969) (3828fd6)
- Add support to old EMSG schemeId for ID3 (#5320) (cd9ee09)
- Add support to streamDataCallback when using prefetch (#5310) (6104b57)
- Add TS transmuxer (#5386) (eec25b2)
- Ads: Add ads config (#5085) (dfe263a)
- Ads: Add control AdsRenderingSettings (#5536) (d37143e)
- ads: Add getPodIndex to CS and SS ads (#5524) (65cf077)
- ads: Add new methods to Ads (#5107) (2b33315)
- Ads: Allow multiple calls to requestAds in CS (#5542) (837e0fb)
- Ads: Allow use a custom playhead tracker in CS (#5543) (362f03f)
- Ads: Disable custom playback on iOS 10+ browsers for client-side ads (29e022e)
- ads: Dispatch a player event for client-side ad errors (#5045) (673b7fc)
- Allow custom plugins for transmuxing (#4854) (fac721d)
- Allow generate muxed content with Mp4Generator (#5555) (1112d1d)
- Allow generate segments with Mp4Generator (#5185) (8da971f)
- allow reuse of persistent license sessions (#4461) (cc97da1)
- Allow VTT files with erroneous linebreaks (#2394) (9b1c614), closes #2358
- Cache mediaCapabilities.decodingInfo results (#4789) (b7781f0), closes #4775
- Caching and other efficiency improvements for mcap polyfill (#4708) (884c4ca), closes #4574
- cea: Add CEA parser for TS (#4697) (70fad8d)
- CEA: Add support to vertical position in CEA-608 (#5531) (47224ff)
- Config to require a minimum HDCP version (#4883) (61613cf)
- Convert CEA parsers to plugins (#5195) (7bda65d)
- DASH: Achieve better latency in LL streams (#5291) (f4bcc87)
- DASH: Add support for <dashif:Laurl> (#4849) (b441518), closes #4748
- DASH: Add support for service descriptions (#5394) (693abd5)
- DASH: Expose accessibility purpose in track (#5216) (654a028), closes #5211
- dash: Improve DASH SegmentTemplate performance with on-demand segment references (#5061) (f1c5a1c)
- DASH: Remove MIN_UPDATE_PERIOD_ to achieve better latency in Live (#5286) (1515b7a)
- Demo: Add Low Latency filter in demo page (#5392) (c378e10)
- Demo: Add MSS Playready asset (#5485) (89ca242)
- demo: Improve bug report button in demo (#5510) (4329d79), closes #5056
- DRM: use preferredKeySystems to reduce requestMediaKeySystemAccess() calls (#5391) (6d75d89)
- Enable variant failover for BAD_HTTP_STATUS and TIMEOUT (#4769) (b46012d)
- export period combiner (#5324) (e9ba2f4), closes #5307
- HLS: Add HLS config to ignore manifest timestamps when in segments mode (#5103) (4d487e4)
- HLS: Add HLS support for non-sequence mode (#4623) (2b50b88)
- HLS: Add support to _HLS_msn query param in LL streams (#5262) (2ece86f)
- HLS: Add support to _HLS_part query param in LL streams (#5265) (ec8804d)
- HLS: Add support to blocking playlist reload by adding the CAN-BLOCK-RELOAD=YES (#5279) (090554b)
- HLS: Add support to BYTERANGE-LENGTH in EXT-X-PRELOAD-HINT (#5267) (ea97a5a)
- HLS: Add support to HLS-AES128 low latency (#4982) (07787a8)
- HLS: Add support to HOLD-BACK in EXT-X-SERVER-CONTROL (#5281) (bb2c06a)
- HLS: Allow delivery directives in Live streams (#5292) (aedf634)
- HLS: Fix update time when using LL-HLS and byterange optimization (#5495) (bba7537)
- HLS: Get resolution from TS when load a Media Playlist (#5058) (42a9f96)
- HLS: Improve detection of basic info from Media Playlist (#4809) (d465942)
- HLS: Improve HLS parsing time (#5264) (2ca7d0b)
- HLS: Improve Low Latency performance in HLS (#4952) (5514385)
- HLS: Optimization of LL-HLS with byterange (#5319) (9e6655a)
- HLS: Optimize LL-HLS with byterange (#5342) (53d6378)
- HLS: Parse #EXT-X-BITRATE (#5550) (123183d)
- HLS: Parse SAMPLE-RATE attribute (#5375) (5af34ad)
- HLS: Poll HLS playlists using last segment duration (#4779) (1ba3806), closes #4771
- HLS: Support byterange optimization on servers with support to blocking playlist reload (#5347) (263a17b)
- Improve live latency on load (#5268) (236dacb)
- Improve parsing time in DASH and HLS (#5261) (f1e35fd)
- Improve performance of multi-period DASH parsing (#5350) (5b0b429)
- Improve performance of setStreamProperties on low-end devices (#5380) (ddbc249)
- Improve sequence mode start time (#5326) (80cacf6)
- Include stack trace in errors dispatched from production builds (#5407) (7d049eb), closes #5406
- logs: Add extra logging for 3015 errors (#4932) (67a2451)
- Make gap jump timer time configurable (#5525) (97b7412)
- Move forceTransmux from streaming to mediasource config (#4783) (b491a6b)
- MSS: Add support for Microsoft Smooth Streaming (VOD only) (#5002) (f80bf20)
- MSS: Fix MSS PlayReady support (#5486) (1dd9809)
- net: Added advanced type to filters (#5006) (fbce38a), closes #4966
- Optimize appendBuffer operations for init segments (#5377) (68f7a0e)
- Parses a PRFT Box, with a loss of precision beyond 53 bits (#5354) (a797651)
- Parses a TFDT Box, with a loss of precision beyond 53 bits (#5329) (db73e1f)
- Parses a TFDT Box, with a loss of precision beyond 53 bits (#5501) (c6e8449)
- Raise fatal error on linear manifest request update failure (#5138) (3ff7ba3)
- Set segmentPrefetchLimit to 2 by default for low latency streaming (#5275) (62f24d2)
- SRT: Support stylized payload in SRT format (#5500) (963cf61)
- Support customizing clearBuffers and safeMargin when select variants by label (#4770) (c724625)
- Support Parallel Segment Fetching (#4784) (de6abde)
- Support private-use language tags (#5223) (fa041d7)
- UI: Add HDR label to resolution when the track is HDR (#5373) (3f9eade)
- UI: Add PageUp and PageDown to UI seek bar (#5519) (8e22a50)
- UI: Add thumbnails to the UI (#5502) (c483975)
- UI: Allow customizing FullScreen element (#4963) (c471d23)
- UI: Remove copyStyleSheets (#5273) (fe43ed3)
- UI: Use Intl.DisplayNames to show the language name (#5365) (35cb193)
- Use local assets for transmuxer tests (#5549) (a75e776)
- Use shaka.text.Cue everywhere instead of shaka.extern.Cue (#5529) (62156ba)
- utils: Export shaka.util.StreamUtils.meetsRestrictions (#5100) (3543e57)
- WebVTT: Add support to auto position (#5532) (a8f7c41)
- webvtt: webvtt colors output (#4954) (ed7a736)
config.streaming.preferNativeHls
only applies to HLS streams (#5167) (bf4b4a5), closes #5166- add MIME type for HTML5 tracks (#5452) (4f1a119)
- Add missing AdvancedRequestType in some requests (#5113) (b60bf16)
- Add missing StreamInfo value in AAC transmuxer (#5260) (5175e88)
- Add mux.js to support.html (#4923) (d9fa4eb)
- Adds missing CMCD params to some http requests (#5072) (fe38e45), closes #5067 #5094
- ads: Fix ads starting muted behavior (#5153) (211624f), closes #5125
- Ads: Fix CS volume ad (#5016) (492b5f3)
- Ads: Fix SS configure (#5155) (49ed4ab)
- Ads: Fix usage of EventManager on CS (#5017) (541badc)
- Ads: Fix usage of EventManager on CS (#5084) (122f5f3)
- ads: Fix VMAP ads stay muted on muted autoplay (#4995) (d074afc)
- Ads: Initialize correctly the IMA ads manager (#5541) (4428adf)
- Allow the playback of TS without mux.js (#5041) (0b785f7)
- Avoid unnecessary timestampOffset updates when using HLS segments mode (#5270) (9059944)
- Caption can not turn off at iOS Safari (#4978) (9d2c325)
- cast: Added existence checks for MediaDecodingConfig.{audio|video} in decodingInfo(). (#4796) (36db83d)
- cast: Use cast platform APIs in MediaCapabilties polyfill (#4727) (5d6f56a)
- CEA 608 captions not work with H.265 video streams (#5252) (f0ee16b), closes #5251
- cea: Fix MAX_ROWS in CEA-708 window (#4757) (e89eeb6)
- cea: Fix not rendering CEA-608 on encrypted mp4 segments (#4756) (d600109)
- chapters: removed duplicate chapters by id (#4810) (151bdda)
- cmcd not applying configuration changes (#5119) (58aa45f)
- Correct default initDataTransform for legacy Apple Media Keys (#4797) (67a5d56)
- DASH: Avoid "Possible encoding problem detected!" when appending chunked data (#5376) (2071e3a)
- DASH: Fix bufferBehind with image tracks regression (#5210) (2d9f566)
- DASH: Fix dynamic manifests from edgeware (#4914) (056588b)
- DASH: Fix seeking on multiperiod content after variant change (#5110) (3b0f013)
- DASH: Ignore minBufferTime when using LL (#5285) (fea46d8)
- Default language to 'und' for native tracks (#5464) (8cd3e2d)
- Demo: Allow enable LL only with Low Latency Mode config (#5266) (70823f9)
- Demo: Allow manifest type for DAI custom assets (#4977) (1e50630)
- Demo: Fix deployment of codem-isoboxer in the Demo (#5257) (03b39f7)
- Demo: Fix error link width to avoid overlap with close button (#5309) (08317d0)
- demo: Fix native controls pointer events stolen by LCEVC canvas (#5065) (6508f40)
- Demo: Show correctly external text in the Demo (#5521) (e2bf1de)
- Demo: Trim custom manifestUri to avoid copy-paste errors (#5378) (0e32256)
- Dispatch all emsg boxes, even if they are ID3 (#5428) (25ecfa7)
- docs: fix player configuration code in drm config tutorial (#5359) (5487236)
- Document Picture-in-Picture: Use width/height instead of initialAspectRatio (#5224) (0da63a0)
- don't use navigator.connection event listener if it isn't implemented (#5157) (fb68306), closes #4542
- DRM: broken keySystemsMapping due to multiple references of drmInfo (#5388) (6513ac0)
- DrmEngine exception thrown when using FairPlay (#4971) (eebf18c)
- exclude "future" segments from presentation timeline auto correct drift calculations (#4945) (ea6774a), closes #4944
- Explicitly specify @externs in transmuxer externs. (#4999) (ef8078a)
- Failed to set 'currentTime' property on 'HTMLMediaElement' on a Hisense TV (#4962) (5d93b8f)
- Fallback to isTypeSupported when cast namespace is undefined (#5012) (50d0645)
- Fire correctly MIN_HDCP_VERSION_NOT_MATCH error (2ae5a99)
- Fix bufferBehind setting broken by image segments (#4718) (cd1b7c0), closes #4717
- Fix buffering on the end of MSS streams (#5196) (a8e3c9a)
- Fix captions from MP4s with multiple trun boxes (#5422) (bccfdbc), closes #5328
- Fix compiler error on static use of "this" (#4699) (b06fd6a)
- Fix DASH rejection of streams with ColourPrimaries and MatrixCoefficients (#5345) (226ffa9)
- Fix DRM workaround for Tizen and Xbox with hvc1/hev1 boxes (#4743) (a61c084), closes #4742
- Fix duplicate updates in StreamingEngine (#4840) (224207b), closes #4831
- Fix duration error when HLS goes from LIVE to VOD (#5001) (1aee989)
- Fix error when network status changes on src= playbacks (#5305) (07ca8f5)
- Fix exception enabling captions on HLS (#4894) (b7b2a7c), closes #4889
- Fix exception on Tizen due to unsupported Array method (#5429) (8ff2917)
- Fix exiting fullscreen on Safari (#5439) (ed93a0c), closes #5437
- Fix failure when drivers lag behind browser (#5423) (a909ed4)
- Fix fetch plugin with old implementations (#5091) (36bcc37)
- Fix flattenedCues in WebVttGenerator (#4867) (15232dd)
- Fix gap jump at start when first jump lands in a new gap (f56d49b)
- Fix handling of CC when switching between codecs (#5160) (6937325)
- Fix HEAD request exception (#5194) (330f04b), closes #5164
- Fix implementation of AAC and MP3 transmuxers (#5296) (df18f10)
- Fix legacy codec support by rewriting codec metadata (#4858) (e351395)
- Fix media source duration when using sequence mode (#4848) (1762267)
- Fix MediaCapabilities polyfill on Hisense (#4927) (6a48cfe)
- Fix memory leak on SimpleAbrManager (#5478) (e8f3ed0)
- Fix missing originalUri in response filters (#5114) (8bffb99)
- Fix parsing error on Chromecast when resyncing HLS (#4869) (afca6af), closes #4589
- Fix playRangeEnd does not work with HLS streams (#5494) (1775672)
- Fix potential AV sync issues after seek or adaptation (#4886) (c42565c), closes #4589
- Fix potential duplicate segments, AV sync issues (#4884) (52f4b63), closes #4589
- Fix race that allows multiple text streams to be loaded (#5129) (2ae9095)
- Fix rare exception after StreamingEngine teardown (#4830) (234beef), closes #4813
- Fix selectVariantsByLabel using src= (#5154) (e7d94f7)
- Fix subtitles not added to DOM region (#4733) (4081434), closes #4680
- Fix temporarily disable streams on network error (#5057) (fdc5cb1), closes #5055 #5150
- Fix timestamp offset for ID3 on DAI-HLS (#4696) (386a28a)
- Fix usage of WebCrypto in old browsers (#4711) (9afce3b)
- Fix video/mp2t mimetype conversion. (#5039) (2d0e4cc)
- Fix WebVTT parser failure on REGION blocks (#4915) (da84a2c)
- gap jumping when gap exists at start position (#5384) (6c71b0e)
- Get the correct timescale when there are two trak boxes (#5327) (022f6b9)
- gettting maxWidth and maxHeight for restrictToElementSize option (#5481) (9a3ac18)
- Handle empty media segments for Mp4VttParser (#5131) (6fd44c4), closes #4429
- HLS: Add
.tsa
and .tsv
file extensions as valid MPEG2-TS. (#5034) (a22bdc5) - HLS: Add subtitle role when there are no roles (#5357) (7de6340), closes #5355
- HLS: Adding support for DTS Express in HLS fMP4 (#5112) (#5117) (67b1e90)
- HLS: Avoid "Possible encoding problem detected!" when is a preload reference (#5332) (bd18a9d)
- HLS: Avoid HLS resync when there is a gap in the stream (#5284) (b8c2004)
- HLS: Avoid variable substitution if no variables (#5269) (5a5a7ac)
- HLS: Consider skipped segments to calculate next media sequence (#5414) (b7d2305)
- HLS: don't do sequence mode workaround unless there's a text stream (#5079) (fb22669)
- HLS: Don't do sequence mode workaround unless there's a text stream (#5315) (019dcfd)
- HLS: Fix AV sync over ad boundaries (#4824) (35033bb), closes #4589
- HLS: Fix avoid prefetch missing segments (#5372) (7f8e051)
- HLS: Fix detection of Media Playlist for audio and video only in MP4 (#4803) (76f96b9)
- HLS: Fix detection of WebVTT subtitles in HLS by extension (#4928) (15b0388), closes #4929
- HLS: Fix discontinuity tracking (#4881) (fc3d5c1), closes #4589
- HLS: Fix dvh1 and dvhe detection as video codec (#5364) (37b7be6)
- HLS: Fix external subtitles out of sync in HLS (#5491) (de19884)
- HLS: Fix HLS seekRange for live streams (#5263) (258962f)
- HLS: fix lazy load with multiple raw audio tracks (#4715) (76149ae)
- HLS: Fix live playlist update when using no LL in a LL stream (#5282) (ad2eef6)
- HLS: Fix load of LL-HLS when the partial segment is not independent (#5277) (ed5915e)
- HLS: Fix lowLatencyPresentationDelay when using autoLowLatencyMode (#4712) (877e954)
- HLS: Fix missing roles (#4760) (2bc481d), closes #4759
- HLS: Fix prefetch with LL-HLS stream (#5274) (551422a)
- HLS: Fix seek on LL streams when using segments mode (#5283) (d4f3f5c)
- HLS: Fix seekRange for EVENT playlist not using EXT-X-PLAYLIST-TYPE (#5220) (1c89204)
- HLS: Fix support for mixed AES-128/NONE decryption (#4847) (452694d)
- HLS: Fix support legacy AVC1 codec used in HLS (#4716) (c3ff8e5)
- HLS: Fix support of fragmented WebVTT (#5156) (9c4a61f)
- hls: Fix type error in lazy-loading (#4687) (28b73b9)
- HLS: Ignore segments with zero duration (#5371) (c25b26a)
- HLS: IMSC1 subtitles not working in a HLS stream (#4942) (974f5dc)
- HLS: Mark first partial segment as independent always (#5312) (ea896d5)
- HLS: Parse EXT-X-PART-INF as media playlist tag (#5311) (d29f4bc)
- HLS: Parse the correct codec for AVC and MP4A in HLS parser (#5515) (f3fa4f8)
- HLS: preserve discontinuitySequence in SegmentIndex#fit (#5066) (36a15f6)
- HLS: Report HLS playlist updates as media playlist in network filters (#5120) (c2a59d0)
- HLS: Require SegmentIndex to return independent segments only (#5288) (9f80e3c)
- HLS: Single alternative video renditions not working (#4785) (6915a97)
- HLS: Skip EXT-X-PRELOAD-HINT without full byterange info (#5294) (32d141d)
- HLS: support discontinuities in segments mode (#5102) (71affe7)
- HLS: Supports syncTime in partial segments (#5280) (9dddc09)
- Increase IndexedDB timeout (#4984) (ea290ab)
- logging: Simplify log code. (#5050) (6944976), closes #5032
- Make encoding problem detection more robust (#4885) (0e3621c), closes #4589
- Manually order key for decodingInfo cache (#4795) (806a9a8)
- MCap: Remove robustness when robustness value is default (#4953) (7439a26)
- media source object URL revocation (#5214) (fecb11a)
- media: Fix region checking in livestreams (#5361) (9fffcb9), closes #5213
- mitigate uncaught type error in media_source_engine (#5069) (e19fa80), closes #4903
- net: Fix HEAD requests in new Chromium (#5180) (5155493), closes #5164
- Only parse/probe TS if the reference is not an MP4 and not WebM (#5381) (b1e7cc4)
- Orange set top box is incorrectly categorized as Apple (#5545) (937484e)
- PERIOD_FLATTENING_FAILED error with shaka 4.3.4 that did not occur with shaka 3.1.2 #5183 (#5188) (e855326)
- Polyfill missing AbortController on Tizen (#4707) (75ef975)
- Populate HDR correctly (#5369) (1ad75ec)
- prevent access to null config_ in SimpleAbrManager (#5362) (d1db694)
- Prevent bad calls to MediaSource.endOfStream (#5071) (64389a2), closes #5070
- Prevent content from being restarted after Postroll ads (#4979) (64e94f1), closes #4445
- prevent memory leak in SimpleAbrManager while destroying (#5149) (bbf228c)
- Reject TS content on Edge (#5043) (8818a02)
- Release region timeline when unloading (#4871) (a236180), closes #4850
- Remove duplicate adaptation event before init (#5492) (e3b2e7d)
- Remove sourcebuffer before create a new media source instance (#5533) (0056c0a)
- Ship to NPM without node version restrictions (#5253) (524a80b), closes #5243
- stream property of request context obfuscated in production builds (#5118) (93baba2)
- Support fLaC and Opus codec strings in HLS (#5454) (ccc3d2f), closes #5453
- Sync each segment against EXT-X-PROGRAM-DATE-TIME (#4870) (50c9df4), closes #4589
- Tizen video error fixed by checking the extended MIME type (#4973) (eb01c60), closes #4634
- Transmux containerless to the correct mimetype (#5205) (bb40d3b)
- Treat regions uniquely (#4841) (5681efe), closes #4839
- TTML: Add font-family mapping (#4801) (db8987d)
- TTML: Fix duplicate cues overlapping segment boundaries (#4798) (bd75032), closes #4631
- Typing of PeriodCombiner.Period was incorrect (#5442) (845649b)
- ui: Avoid submitting form if player is inside form (#4866) (da21850), closes #4861
- ui: Check event cancelable before event.preventDefault (#4690) (6d8de72)
- UI: Disable right click on range elements (#5497) (3333ca4)
- ui: Fix iOS fullscreen on rotation (#4679) (86256f4)
- UI: Fix playback restarts in safari when click on seekbar end (#5527) (4235658)
- UI: Fix resolution selection on src= (#5367) (3863c73)
- UI: Suppress error log from fullscreen button on desktop (#4823) (99da4ce), closes #4822
- UI: Use pagehide instead of unload for PiP (#5303) (a543b80)
- unnecessary parsing of in-band pssh when pssh is in the manifest (#5198) (05aa931), closes #5197
- Update karma-local-wd-launcher to fix Chromedriver >= 115, fix M1 mac (#5489) (c8a27ca)
- Update karma-local-wd-launcher to fix Edge >= 115 (#5506) (3104a76)
- VTT: Fix combining style selectors (#4934) (128562d)
- VTT: Fix spacing between text lines (#4961) (2d0469f)
- WebVTT: Add support to , and (#4920) (726ef42)
- WebVTT: Add support to middle position (#5366) (5691d5e)
- WebVTT: Fix horizontal positioning with cue box size (#4949) (f456318)
- WebVTT: Fix text-shadow in WebVTT not working (#5499) (ac6a92a)
- WebVTT: Fix voice tag styles (a5f8b43)
- WebVTT: Fix voices with styles and support to multiple styles (#4922) (68968c1)
- WebVTT: Tags in the WebVTT subtitle are not parsed (#4960) (d4fc54f)
4.3.0 (2022-11-10)
- Add AAC transmuxer (#4632) (8623a5d)
- Add config for sequenceMode in DASH (#4607) (aff2a5d)
- Add external thumbnails support (#4497) (3582f0a)
- Add external thumbnails with sprites support (#4584) (86cb3e7)
- Add limited support for HLS "identity" key format (#4451) (b1e81a6), closes #2146
- Adds ChannelCount as a filter to the Player Select Audio Track Method (#4552) (9dd945c), closes #4550
- ads: Add getDescription to CS and SS ads (#4526) (7d2a170)
- ads: Add getTitle to CS and SS ads (#4513) (a019065)
- ads: Ignore ad events with no associated ad (#4488) (e826eb8), closes #4481
- Allow add extra features to MediaSource.addSourceBuffer (#4527) (4033be7)
- Allow clearKey configuration in base64 or hex (#4627) (29ffc89)
- Allow customization of HLS Live behavior (#4578) (4914201)
- Allow playback of HLS Media Playlist with AAC by default (#4564) (757b34e)
- Allow playback of HLS Media Playlist with RAW formats by default and support ID3 (#4591) (18d8367)
- Automatic ABR quality restrictions based on screen size (#4515) (b5935a8)
- demo: Demo visualizer for buffered ranges. (#4417) (55d0a15)
- enable uninstalling PatchedMediaKeysApple (#4471) (7166f0c), closes #4469
- HLS: Add support for EXT-X-SESSION-KEY tag (#4655) (172c9f8), closes #917
- HLS: allow customize live segments delay (#4585) (1f558a8)
- HLS: Allow mp3 playback with mp4a.40.34 (#4592) (8f892b1)
- HLS: Lazy-load HLS media playlists (#4511) (b2f279d), closes #1936
- HLS: Support for HLS key rotation (#4568) (3846eea), closes #741
- Improved LCEVC integration (#4560) (50062f5)
- LCEVC Integration (#4050) (284ea63)
- New autoShowText config to change initial text visibility behavior (#3421) (5c24410)
- Parse and surface "prft" boxes as events (#4389) (89777dd), closes #4382
- Parse ID3 metadata (#4409) (95bbf72)
- Support HTML-escaped cues in VTT (#4660) (2b8b387)
- TS parser improvements (#4612) (5157b44)
- ads: Fix IMA crash when autoplay is rejected (#4518) (d27f7d2), closes #4179
- allow build without text (#4506) (340b04a)
- Allow overriding special handling of 404s (#4635) (427f126), closes #4548
- allow the playback on platforms when low latency APIs are not supported (#4485) (c1753e1)
- cast: Reduce size of Cast update messages (#4644) (4e75ec6)
- cea: Fix not rendering CEA-608 Closed Captions (#4683) (a489282), closes #4605 #3659
- check for negative rows before moving (#4510) (b3621c2), closes #4508
- Content reload starttime with HLS on iOS (#4575) (59d4360), closes #4244
- DAI ID3 metadata parsing (#4616) (0d67ecd)
- embed cc not shown when seeking back (#4643) (2a6b0d0), closes #4641
- Filter unsupported H.264 streams in Xbox (#4493) (8475214)
- Fix bitmap-based cue size (#4453) (4a197e1)
- Fix choppy HLS startup (#4553) (59ef54a), closes #4516
- Fix detection of ac4, dts, and dolby h265 (#4657) (319a358)
- Fix dispatch ID3 metadata when transmuxing AAC (#4639) (bf813f2)
- Fix drm.keySystemsMapping config (#4425) (d945084), closes #4422
- Fix errors with TS segments on Chromecast (#4543) (593c280)
- Fix hang when seeking to the last segment (#4537) (19a4842)
- Fix HLS dynamic to static transition (a16b1ac)
- Fix HLS dynamic to static transition (#4483) (a16b1ac), closes #4431
- Fix HLS lazy-loading exception during update (#4648) (777c27e), closes #4647
- Fix HLS lazy-loading exception on switch (#4645) (941ed4e), closes #4621
- Fix HLS lazy-loading with DRM (#4646) (a7f0be7), closes #4622
- Fix HLS live stream subtitle offsets (#4586) (3b9af2e)
- Fix ID3 parsing in TS segments (#4609) (3b534fd)
- Fix in-band key rotation on Xbox One (#4478) (4e93311), closes #4401
- Fix metadata assert when the ID3 is future (coming in a previous segment) (#4640) (216bdd7)
- Fix multi-period DASH with descriptive audio (#4629) (81ccd5c), closes #4500
- fix support clear and encrypted periods (#4606) (6256db3)
- Fix vanishing tracks while offline (#4426) (c935cc1), closes #4408
- Fixed LCEVC decode breaking dependencies issue and read me addition (#4565) (3c75d1a)
- focus on first element when back to the settings menu (#4653) (b40b6e7), closes #4652
- Force using mcap polyfill on EOS browsers (#4630) (6191d58)
- HLS: Add a guard on closeSegmentIndex (#4615) (57ce56b)
- HLS: Fix detection of WebVTT subtitles in HLS by extension (#4663) (8f698c6)
- HLS: Fix lazy-loading of TS content (#4601) (dd7356d)
- hls: Fix raw format detection when the main playlist hasn't type (#4583) (d319718)
- hls: Fix single-variant HLS streams (#4573) (62906bd), closes #1936 #3536
- HLS: Infer missing codecs from config (#4656) (08fc7dd)
- HLS: Return 0-0 seek range until fully loaded (#4590) (bf50ada)
- Limit key ids to 32 characters (#4614) (9531b07)
- Make XML parsing secure (#4598) (a731eba)
- Missing AES-128 key of last HLS segment (#4519) (3d0f752), closes #4517
- offline: Add storage muxer init timeout (#4566) (d4d3740)
- playhead: Safeguard getStallsDetected as stallDetector can be null (#4581) (21ceaca)
- Resolve load failures for TS-based content on Android-based Cast devices (#4569). (#4570) (65903aa)
- Respect existing app usage of Cast SDK (#4523) (8d3d556), closes #4521
- return width and height in the stats when we are using src= (#4435) (9bbfb57)
- Simplify transmuxer to allow more mimetypes in the future (#4642) (a14e84b)
- ttml: Default TTML background color to transparent if unspecified (#4496) (32b0a90), closes #4468
- UI: Ad position and ad counter are too close to each other (#4416) (8376410)
- ui: Fix exception on screen rotation if fullscreen is not supported (#4669) (fd93f6a)
- Virgin Media set top box is incorrectly categorized as Apple/Safari (df79470)
- WebVTT line not correctly positioned in UITextDisplayer (#4567) (#4682) (140aefe)
4.2.0 (2022-08-16)
- add Amazon Fire TV platform support (#4375) (5102dac)
- Add support for Modern EME and legacy Apple Media Keys for FairPlay (#4309) (5441f93)
- Automatic ABR quality restrictions based on size (#4404) (cfe8af5), closes #2333
- hls: Support AES-128 in HLS (#4386) (6194021), closes #850
- Improve gap-detection robustness (#4399) (4293a14)
- Upgrade eme-encryption-scheme-polyfill to support ChromeCast version of PlayReady (#4378) (e6b6d7c)
- webvtt: add support for karaoke style text in WebVTT (#4274) (60af516)
- Add fallback to TextDecoder and TextEncoder #4324 (5b18069)
- add strictMissingProperties suppressions to unblock strict missing properties on union types. (#4371) (b361948)
- Debug buffer placement (#4345) (47fa309)
- demo: allow switch between UITextDisplayer and SimpleTextDisplayer (#4275) (28689f3)
- demo: erroneous FairPlay keysystem in demo (#4276) (8719bdc)
- exception if on early adError (#4362) (3c92f05), closes #4004
- Fix EOS set-top box being identified as Apple. (#4310) (7c2c4be)
- Fix getVideoPlaybackQuality in WebOS 3 (#4316) (5561111)
- Fix key ID byteswapping for PlayReady on PS4 (#4377) (25fd4f4)
- Fix MediaCapabilities polyfill on Playstation 4 (#4320) (0335b2a)
- Fix MediaCapabilities polyfill on Tizen and WebOS (#4396) (eb2aed8), closes #4383 #4357
- Fix segment index assertions with DAI (#4348) (c2b3853)
- Fix TextDecoder fallback and browser support check (#4403) (04fc0d4)
- Fix UI captions icon state (#4384) (d462633), closes #4358
- Fix VP9 codec checks on Mac Firefox (#4391) (b6ab769)
- hls: Fix AV sync issues, fallback to sequence numbers if PROGRAM-DATE-TIME ignored (#4289) (314a987), closes #4287
- New EME polyfill fixes EME/MCap issues on some smart TVs (#4279) (db1b20e)
- Populate track's spatialAudio property (#4291) (713f461)
- Remove IE 11 from default browsers for Windows (#4272) (490b06c), closes #4271
- text: Fix cue region rendering in UI (#4412) (b1f46db), closes #4381
- text: Fix TTML render timing and line break issues for native display (122f223)
- Update main branch Cast receiver ID (#4364) (46b27f1)
- Use middle segment when guessing MIME type on HLS (#4269) (#4270) (3d27d2a)
- VTT Cue Parsing On PlayStation 4 (#4340) (b5da41e), closes #4321
4.1.0 (2022-06-02)
- Add Id to chapters (#4184) (5ca3271)
- Add keySystemsMapping to drm config (#4254) (5e107d5), closes #4243
- add listenable events for playback stall detection and gap jumping (#4249) (5987458)
- Add support to text-shadow in VTT parser (#4257) (62bda2c)
- cast: Add Android receiver support (#4183) (dbba571)
- hls: Add support for EXT-X-GAP (#4208) (14e61a7), closes #1308
- Temporarily disable the active variant from NETWORK HTTP_ERROR (#4189) (b57279d), closes #4121 #1542 #2541
- UI: Added keyboardSeekDistance config to UI (#4246) (6084ca6)
- abr: use Network Info API in ABR getBandwidthEstimate (#4263) (4fc7a48)
- Do not report MANIFEST RESTRICTIONS_CANNOT_BE_MET error twice (#4194) (08589e8), closes #4190
- Don't send drmsessionupdate after unload (#4248) (60af9ad)
- fairplay: Re-add initDataTransform config (#4231) (ff310e9)
- Fix audio mime type in multiplexed HLS stream (#4241) (4e4e92e)
- Fix event listener leaks in Player (#4229) (a5d3568)
- Fix exception with streaming.startAtSegmentBoundary (#4216) (426a19c), closes #4188
- Fix PERIOD_FLATTENING_FAILED error when periods have different base sample types (#4206) (b757a81), closes #4202
- Fix VTT cue timing in HLS (#4217) (5818260), closes #4191
- hls: Fix av1 codec selection in HLS. (#4203) (5e13495)
- HLS: Fix duplicate hinted segments (#4258) (9171f73), closes #4223
- hls: Fix X-PRELOAD-HINT failure with LL mode off (#4212) (86497a5), closes #4185
- ui: Widen touchable button area (#3249) (6c0283e)
- Upgrade mux.js to version that emits partial ID3 when malformed (#4259) (dc88fe0), closes #3761
- Wait for chapters track to be loaded (#4228) (80e81f1), closes #4186
4.0.0 (2022-04-30)
- Remove small/large gap config, always jump gaps (#4125)
- config:
manifest.dash.defaultPresentationDelay
has been replaced bymanifest.defaultPresentationDelay
(deprecated in v3.0.0) - config: Configuration of factories should be plain factory functions, not constructors; these will not be invoked with
new
(deprecated in v3.1.0) - player:
shaka.Player.prototype.addTextTrack()
has been replaced byaddTextTrackAsync()
, which returns aPromise
(deprecated in v3.1.0) - ui:
shaka.ui.TrackLabelFormat
has been renamed toshaka.ui.Overlay.TrackLabelFormat
(deprecated in v3.1.0) - ui:
shaka.ui.FailReasonCode
has been renamed toshaka.ui.Overlay.FailReasonCode
(deprecated in v3.1.0) - offline:
shaka.offline.Storage.prototype.store()
returnsAbortableOperation
instead ofPromise
(deprecated in v3.0.0) - offline:
shaka.offline.Storage.prototype.getStoreInProgress()
has been removed; concurrent operations are supported, so callers don't need to check this (deprecated in v3.0.0) shaka.util.Uint8ArrayUtils.equal
has been replaced byshaka.util.BufferUtils.equal
, which can handle multiple types of buffers (deprecated in v3.0.0)- manifest:
shaka.media.SegmentIndex.prototype.destroy()
has been replaced byrelease()
, which is synchronous (deprecated in v3.0.0) - manifest:
shaka.media.SegmentIterator.prototype.seek()
, which mutates the iterator, has been replaced byshaka.media.SegmentIndex.getIteratorForTime()
(deprecated in v3.1.0) - manifest:
shaka.media.SegmentIndex.prototype.merge()
has become private; usemergeAndEvict()
instead (deprecated in v3.2.0) - plugin:
AbrManager
plugins must implement theplaybackRateChanged()
method (deprecated in v3.0.0) - plugin:
shaka.extern.Cue.prototype.spacer
has been replaced by the more clearly-namedlineBreak
(deprecated in v3.1.0) - plugin:
IUIElement
plugins must have arelease()
method (notdestroy()
) (deprecated in v3.0.0) - Remove deprecated features, update upgrade guides (#4089)
- Remove support for Safari 12 and iOS 12 (#4112)
- hls: HLS disabled in old browsers/platforms due to incompatibilities (#3964)
shaka.util.Uint8ArrayUtils.equal
has been replaced byshaka.util.BufferUtils.equal
, which can handle multiple types of buffers (deprecated in v3.0.0) (ac5acc8)- Add Dockerfile and docker build instructions (925de19)
- add modern EME support for FairPlay (#3776) (6d76a13)
- add new methods to FairPlayUtils (#4029) (f1eeac1)
- add option for segment-relative VTT timings (#4083) (f382cc7)
- Add separate audio and video MIME types to Track API (#3892) (74c491d), closes #3888
- Allow WebP and AVIF image streams (#3856) (9f3fb46), closes #3845
- config:
manifest.dash.defaultPresentationDelay
has been replaced bymanifest.defaultPresentationDelay
(deprecated in v3.0.0) (ac5acc8) - config: Configuration of factories should be plain factory functions, not constructors; these will not be invoked with
new
(deprecated in v3.1.0) (ac5acc8) - dash: Construct ClearKey PSSH based on MPD ContentProtection (#4104) (b83b412)
- dash: Parse ClearKey license URL in MPD (#4066) (19e24b1)
- demo: Add Apple Advanced HLS Stream (TS) with raw AAC (#3933) (1becadf)
- demo: Added demo asset with raw AAC. (014c7b3), closes #2337
- DRM: add drmInfo to license requests (#4030) (abe846e)
- DRM: add initData and initDataType to license requests (#4039) (bdc5ea7)
- HLS: Containerless format support (36d0b54), closes #2337
- hls: HLS disabled in old browsers/platforms due to incompatibilities (#3964) (0daa00f)
- hls: make a head request if hls subtitles have no extension (#4140) (19e12b5)
- hls: parse EXT-X-GAP (#4134) (42eecc8)
- HLS: Re-add TS support to Safari (#4097) (8a3bed7)
- hls: Read EXT-X-PROGRAM-DATE-TIME (#4034) (89409ce), closes #2337
- manifest:
shaka.media.SegmentIndex.prototype.destroy()
has been replaced byrelease()
, which is synchronous (deprecated in v3.0.0) (ac5acc8) - manifest:
shaka.media.SegmentIndex.prototype.merge()
has become private; usemergeAndEvict()
instead (deprecated in v3.2.0) (ac5acc8) - manifest:
shaka.media.SegmentIterator.prototype.seek()
, which mutates the iterator, has been replaced byshaka.media.SegmentIndex.getIteratorForTime()
(deprecated in v3.1.0) (ac5acc8) - offline:
shaka.offline.Storage.prototype.getStoreInProgress()
has been removed; concurrent operations are supported, so callers don't need to check this (deprecated in v3.0.0) (ac5acc8) - offline:
shaka.offline.Storage.prototype.store()
returnsAbortableOperation
instead ofPromise
(deprecated in v3.0.0) (ac5acc8) - offline: improve the speed of offline downloads (#4168) (73f6de3)
- only polyfill MCap for non Android-based Cast devices. (#4170) (11321d8)
- player:
shaka.Player.prototype.addTextTrack()
has been replaced byaddTextTrackAsync()
, which returns aPromise
(deprecated in v3.1.0) (ac5acc8) - plugin:
AbrManager
plugins must implement theplaybackRateChanged()
method (deprecated in v3.0.0) (ac5acc8) - plugin:
IUIElement
plugins must have arelease()
method (notdestroy()
) (deprecated in v3.0.0) (ac5acc8) - plugin:
shaka.extern.Cue.prototype.spacer
has been replaced by the more clearly-namedlineBreak
(deprecated in v3.1.0) (ac5acc8) - Public release of Sindarin (sjn) translation easter egg (#4033) (9029d06)
- Remove deprecated features, update upgrade guides (#4089) (ac5acc8)
- Remove small/large gap config, always jump gaps (#4125) (0fd1999)
- Remove support for Safari 12 and iOS 12 (#4112) (8bb7044)
- ui:
shaka.ui.FailReasonCode
has been renamed toshaka.ui.Overlay.FailReasonCode
(deprecated in v3.1.0) (ac5acc8) - ui:
shaka.ui.TrackLabelFormat
has been renamed toshaka.ui.Overlay.TrackLabelFormat
(deprecated in v3.1.0) (ac5acc8) - ui: Add quality selection for audio-only content (#3649) (adc3502), closes #2071
- UI: Add video fullscreen support for iOS (#3853) (8d1b5e6), closes #3832
- Add explicit release() for FakeEventTarget (#3950) (f1c1585)
- Add missing module export in generated typescript defs (feefd7b)
- Avoid WebCrypto randomUUID when CMCD disabled (4731c76)
- cea: make a more robust CEA MP4 parser (#3965) (2687b95)
- Clear buffer on seek if mediaState is updating (#3795) (9705639), closes #3299
- cmcd: Fix Symbol usage in CMCD on Xbox One (#4073) (4005754), closes #4072
- css: Fix missing % in calculation (#4157) (1c86195)
- dash: Account for bandwidth before filtering text stream (#3765) (0b04aec), closes #3724
- dash: Fix performance regression (#4064) (298b604)
- dash: Fix playback of Dolby Atmos (#4173) (d51fe23), closes #4171
- Fix broken deps file generation on Windows (#4086) (9660ce8), closes #4085
- Fix CMCD property mangling (#3842) (fa5932c), closes #3839
- Fix CMCD top bitrate reporting (#3852) (922778a), closes #3851
- Fix compiler error introduced in #3864 (#3906) (0635e2c)
- Fix download of some HLS assets (#3934) (36ca820)
- Fix duplicate CMCD parameters in HLS live content (#3875) (f27401c), closes #3862
- Fix encryption detection to work around broken platforms (#4169) (c5f474e)
- Fix exception in StreamingEngine for EMSG with HLS (#3887) (48433ab), closes #3886
- Fix exceptions when quickly shutting down src= on Safari (#4088) (ca08230), closes #4087
- Fix MediaCapabilities polyfill on Safari (0201f2b), closes #3696 #3530
- Fix memory leak in DASH live streams with inband EventStream (#3957) (b7f04cb)
- Fix misdetection of HEVC support on MS Edge (#3897) (dfb3699), closes #3860
- Fix missing throughput in CMCD for HLS live (#3874) (df55944), closes #3873
- Fix playback failure due to rounding errors (1cc99c1), closes #3717
- Fix playRangeEnd for certain content (#4068) (5c81f3b), closes #4026
- Fix support for TTAF1 namespace (old version of TTML) (#3864) (771619f), closes #3009
- Fix usage of Shaka without polyfills (dfc44cb)
- hls: Fixed buffering issue with live HLS (#4002) (c438e85)
- HLS: skip whitespace in attributes (#3884) (ea6c02a)
- hls: Support playing media playlists directly (#4080) (48dd205), closes #3536
- image: Fix HLS image track issues (264c842), closes #3840
- image: Fix thumbnails issues (#3858) (087a9b4)
- offline: Clean up orphaned segments on abort (#4177) (c07447f)
- offline: Speed up offline storage by ~87% (#4176) (c1c9613), closes #4166
- performance: Eliminate use of ES6 generators (#4092) (57c7324), closes #4062
- Revert "Add missing module export in generated typescript defs" (#4175) (fe4f5c6), closes #4167
- Select first of identical audio streams (#3869) (a6d8610)
- Support multiple chapter tracks with same language (#3868) (8c626ae), closes #3597
- text: Fix caption overlap. (bf67d87), closes #3850 #3741
- text: Fix webvtt offset in sequence mode (#3955) (a4e9267), closes #2337
- text: Inherit alignment from regions. (e9df8fb)
- text: Made nested cues inherit region (#3837) (3ff48cb), closes #3743
- text: Remove caption wrapper bgColor (#3838) (0117441), closes #3745
- ttml: Center subtitles by default (#4023) (f2f24d5)
- UI: Add cursor pointer to range elements (#4059) (33e8400), closes #3220
- UI: Fix text UI not updating when text is disabled (#3867) (9f53d39), closes #3728