Releases
v4.10.0
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_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 )
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 )
You can’t perform that action at this time.