4.10.0 (2024-07-01)
Features
- 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_PATCHadvanced 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
manifestGapCountto stats (#6804) (8a678f3), closes #6789 - Stats: Add
manifestPeriodCountto 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)
Bug Fixes
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)