Releases
v4.8.0
4.8.0 (2024-04-26)
Features
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 )
Bug Fixes
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 )
Performance Improvements
Cast: memoize/cache canDisplayType results to reduce startup latency (#6367 ) (30285b2 )
DRM: pass preferredKeySystems
to filterManifest()
(#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 )
Reverts
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 )
You can’t perform that action at this time.