Skip to content

Latest commit

 

History

History
1649 lines (1404 loc) · 304 KB

File metadata and controls

1649 lines (1404 loc) · 304 KB

Changelog

4.9.36 (2025-02-22)

Bug Fixes

  • Add more info in getVariantTracks for muxed streams (#8002) (e29e94c)
  • Allow change the native playbackRate with the same functionality as trickPlay (#7993) (66c06a3)
  • Avoid launch RESTRICTIONS_CANNOT_BE_MET when it's not necessary (#8014) (784c0b4)
  • Avoid rebuffering when using big trick play rates (#7988) (6e171ec)
  • Avoid setAppendWindow when the window is Infinity (#7923) (7e63cfd)
  • CEA: Fix multi byte language support in CEA-708 (#7929) (947e305)
  • DASH: Change fallback presentation delay (#7918) (989207f)
  • DASH: Fix Dolby Atmos detection (#7966) (c8accd7)
  • DASH: Fix playback of ClearKey when only part of keys are defined (#8055) (d4bb311)
  • DASH: Ignore early segments in a period (#7910) (a1fd74c)
  • DASH: Notify time range with the fitted timeline (#7911) (a845481)
  • DASH: Revert Dolby Atmos detection when there is not SupplementalProperty (#8132) (4cbf150)
  • Detect mov extension as video/quicktime (#7884) (170caf8)
  • Do not recognize MultiChoice & Ziggo as Apple (#7996) (7befef8)
  • DRM: Fix drm choice when the user provide a server in the manifest (#8067) (79e47af)
  • Duplicate timelineregion* events fired for the same event id (#8013) (56b5ec5)
  • Evict the buffer against seekRangeStart (#8026) (d24718b)
  • FairPlay: Install by default shaka.polyfill.PatchedMediaKeysApple on older Safari versions (#8106) (55ddcf0)
  • Fix AC-3 playback on Tizen 3.0 devices (#7969) (2217fcf)
  • Fix AC-3 playback on Tizen 3.0 devices when transmuxing (#7972) (5b12bca)
  • Fix displaying subtitles in UITextDisplayer at high playback rates (#7991) (fde0bef)
  • Fix DRM workaround with fLaC and Opus boxes (#8070) (9e2a17f)
  • Fix Hisense 4K detection (#8133) (d1ebe18)
  • Fix isEnded when is not fullyLoaded (#7883) (a1b2859)
  • Fix playback with Apple Media Keys polyfill detection (#7958) (51633c9)
  • HLS: Fix duplicate segments on some inaccurate live streams (#8084) (ab2e0b6)
  • HLS: Fix switching between muxed MP4 and muxed TS (#8061) (9066d8b)
  • net: Add 304 as successful request (#7963) (e78bca3)
  • net: Allow preventDefault() on retry event (#8058) (c0e18fc)
  • PS5: Disable sequence mode in PS5 (#8004) (7bbd438)
  • Subtitles: Prevent rounding errors when filtering duplicated cues (#8018) (2ab22a3)
  • Throw preload destroyed error when re-using same preloadManager (#8046) (9314a79)
  • TTML: Correctly handle multiple samples in a segment (#8088) (a4e0f1e)
  • tXml: Allow case insensitive in parseDuration (#8064) (3fdbd13)
  • tXml: Fix findChildrenNS when the namespace is in the element (#7896) (a03f5ae)
  • UI: Fix handle of seek on MediaSession (#7879) (ba0658a)
  • UI: Fix thumbnail sometimes not disappearing due to mouse hover (#8089) (bb23fad)
  • UI: Show GB unit in StatisticsButton (#7990) (4661d61)
  • Use infiniteLiveStreamDuration equal to true in Safari 17 or above (#7901) (c092ea8)

Performance Improvements

  • Close segmentIndex after getAllThumbnails (#8128) (b34c3a4)
  • Improve GapJumpingController times (#7921) (2e71610)
  • Improve times of probeSupport (#7889) (08019ed)
  • Only set the timers on UITextDisplayer when there are cues (#8114) (5910103)
  • Prevent CastSender initialization on CastProxy on unsupported browsers (#7995) (7048dc0)
  • Remove promises from getAllThumbnails loop (#8118) (aef5ba4)
  • UI: Avoid unnecessary calls to controls configure (#8116) (4937ccb)
  • UI: Reduce configure calls to use shakaPlayerCastReceiverId (#8115) (7a9f56d)
  • Use navigator.userAgentData.platform to detect Android and Fuchsia (#8102) (caad5b2)

4.9.35 (2025-01-10)

Bug Fixes

  • CEA: Fix multi byte language support in CEA-708 (#7837) (61a2875)
  • dash: Fix $Time$ usage with SegmentTemplate (#7849) (3971440)
  • DASH: Fix Dolby Atmos detection when there is not SupplementalProperty (#7847) (8ebde5a)
  • Fix isEnded for live streams (#7866) (87c5314)
  • Fix SEGMENT HEAD requests, compatibility with Cast SDK (#7851) (3b4ab2b), closes #7600
  • HLS: Assign EXT-X-TILES to segment tags (#7864) (d472447)
  • HLS: Disable text correctly when loading a media playlist (#7840) (f67a2c8)
  • HLS: Fix audio detection when there is no audio data but it appears in PMT (#7838) (e1a482a)
  • Offline: Fix download HLG tracks when using AUTO hdr level (#7865) (0b75b8a)
  • Use getSegmentAvailabilityStart instead of getSeekRangeStart to evict segments (#7867) (f7a436c)

4.9.34 (2025-01-06)

Bug Fixes

  • Avoid useless MSE reset when transmuxing muxed content (#7818) (5244029)
  • Docs: Remove info about small/large gaps from manual (#7762) (8d317d5)
  • Don't ignore the license server in manifest when another key-system has license server in configuration (#7797) (5dac9d3)
  • Fix change timestampOffset on discontinuities when not necessary (#7823) (a25dab0)
  • Fix ClearKey license on old CDMs (#7816) (9da369d)
  • Fix gaps produced by the transmuxer (#7822) (7ec609e)
  • Follow the configured playRange for src= (#7825) (3c2b3cf)
  • HLS: Correctly identify webvtt subtitles with cmft extension (#7791) (cef3940)
  • HLS: Disable audio/video correctly when loading a TS media playlist (#7815) (1690f1f)
  • HLS: Do not use EXT-X-PROGRAM-DATE-TIME on vod when there is only video or audio (#7802) (3db710c)
  • HLS: Fix timestamp offset for raw formats when using segments mode (#7819) (19d94ef)
  • Offline: Allow storage of MSS streams (#7799) (9749923)
  • re-open the MediaSource if readyState is not open when the init() method is called. (#7783) (6061413)
  • Remove useless calls to isTypeSupported (#7817) (9d01c9a)
  • Remove useless deprecation in UITextDisplayer and add some guards in SimpleTextDisplayer (#7805) (9364bc6)
  • Transmuxer: Fix transmuxer with overflow data (video nalus and aac samples) between PES (#7813) (306ab6e)
  • UI: Video starts playing automatically when selecting a playback rate (#7786) (91cb1db)

4.9.33 (2024-12-11)

Bug Fixes

  • Avoid stack overflow when stringifying objects (#7721) (8318911), closes #7435
  • Detect smooth codec switch support on Apple devices (#7678) (8fa036a)
  • Fix CBCS support in recent WebOS (#7647) (ccae978)
  • Fix normalized codec for VP9 (#7645) (e12f2eb)
  • Fix unload call after destroy (#7690) (3bc3ca5)
  • Fix video progress events accuracy (#7654) (576daba)
  • HLS: Fix playback of raw AAC (#7641) (8da4a61)
  • HLS: Fix subtitle timing when no discontinuity but there is X-TIMESTAMP-MAP (#7681) (3fa6242)
  • HLS: Ignore errors when try to detect CC (#7668) (0499bc4)
  • PS5: Prevent uncaught promise rejections when requests are aborted (#7637) (6fff9d2)
  • Timeout unfulfilled request to decodingInfo and requestMediaKeySystemAccess (#7682) (b1bec73), closes #7680
  • Xbox: Simplify the use of WebView2 (#7743) (0cbe208)

Performance Improvements

4.9.32 (2024-11-20)

Bug Fixes

4.9.31 (2024-11-12)

Bug Fixes

  • AirPlay: Prefer Playback Remote API for closeOpenSessions (#7500) (4e89d83)
  • AirPlay: Show AirPlay button when starting the playback with AirPlay (#7515) (fffe2ce)
  • Allow streaming again when we reset MSE (#7495) (23a8ea9)
  • DASH: Exclude text segments when calculating max segment size (#7564) (7e669c0)
  • Do not reuse the same tsParser for different contentType (#7563) (0534a75)
  • Fix disable stream when no manifest (#7497) (3fc7ca4)
  • Fix metadata timing when using TS (#7478) (6d7fbbe)
  • Fix reset MSE to last independent segment (#7494) (d666fbf)
  • Fix select HLG tracks when using AUTO hdr level (#7470) (8284eec)
  • Fix support of getAllThumbnails when using shaka.dash.TimelineSegmentIndex (#7508) (e3d23cd)
  • Fix Windows detection (#7476) (7e279fa)
  • Install polyfills for Comcast X1 devices (#7529) (5fde258)
  • MSS: Don't allow prefetch segments with self-generated data (#7485) (00f4763)
  • MSS: Fix playback of some MSS streams (#7517) (4c4f7bf)
  • MSS: Fix timeline repetitions (#7484) (9fea5f6)
  • only use lastSegmentReference for knowing if variant changed (#7537) (2650a11)
  • UI: Don't enable StatisticsButton when create overflow menu (#7481) (0e1c42c)
  • UI: Fix remote button availability and icon (#7513) (ae78ff4)
  • UI: Hidden cursor correctly (#7464) (c2d8945)

4.9.30 (2024-10-21)

Bug Fixes

  • calculations of channel count for DASH AudioChannelConfiguration elements. (#7421) (d6ed6b0)
  • DASH: Live DASH allows segment overlap in the updated manifest for first new segments (#7405) (fcc1128)
  • DASH: Live to vod transition (#7404) (a9e87c7)
  • Disable smooth codec switch if changeType is unavailable (#7414) (257272c)
  • DRM: Fix persistent licenses not working for online playback (#7457) (274678c)
  • PS4/5: Disable smooth codec switch on PS4/5 (#7413) (341c632)
  • Seek delay for Cast Nest hub (#7423) (465174c)
  • UI: Fix auto-load with source tags (#7430) (3addfa2)
  • UI: Fix the position of save video frame in the overflow menu (#7438) (d7338cc)
  • UI: Hidden cursor correctly when no touch screen (#7458) (53ef21c)
  • UI: Restore missing AirPlay button (#7389) (afa2099)

4.9.29 (2024-09-26)

Bug Fixes

  • Active track state on variantchanged and adaptation events (#7350) (5e193b9)
  • Avoid notify buffered changes when segment appended is text (#7353) (adb766d)
  • dash: live to vod transition seek start (#7347) (f4ef439)
  • DASH: Release period combiner info correctly (#7364) (a04c717)
  • Disable Encryption Scheme Polyfil On Some Devices (#7355) (0a5abf5)
  • Do not recognize Sky Q as Apple device (#7357) (cfee7d9)
  • Evict buffer on QUOTA_EXCEEDED_ERROR error (#7361) (cef9959)
  • Evict text buffer when unload the text stream (#7360) (8938ae9)
  • Exclude TIMEOUT errors when disabling streams (#7369) (00f0b06), closes #7368
  • preload: Set manifest before initializing DRM (#7359) (c194cce)
  • Reduce calls to EME by ignoring MIME type in MediaKeySystemAccess cache (#7374) (bbcc8c9), closes #7325
  • UI: Fix missing tracks in resolution selector (#7352) (400cc38)

4.9.28 (2024-09-19)

Bug Fixes

  • Avoid make HEAD request for image mime type (#7332) (6d74d9f)
  • DASH: Fix HTTP redirect during manifest update (#7339) (8df7cc9)
  • Fix external image track mime type (#7333) (d40d9fa)
  • HLS: Allow sync live streams without PROGRAM-DATE-TIME (#7340) (7bd481f)
  • HLS: Fix uncaught error in slow network scenario (#7321) (25d8f1b)
  • offline: Text segments are downloaded before audio&video (#7336) (71c5f32)
  • Tizen: Adding gapPadding to gap manager to solve Tizen issue (#7331) (cbd0199)
  • UI: Remove spinner and client side ad container elements when calling destroy (#7320) (52b48be)

4.9.27 (2024-09-14)

Bug Fixes

  • DASH: Avoid adding originalId when it is not necessary (#7281) (1b03baa)
  • DASH: Clear streamMap when period is removed from the manifest (#7297) (81c2450)
  • DASH: Clear usedPeriodIds when period is removed from the manifest (#7305) (650474c)
  • DASH: Clone closedCaptions map in PeriodCombiner output stream (#7309) (f3ce960), closes #7303
  • DASH: Clone EventStream nodes to reduce memory consumption (#7285) (4b7d45a), closes #7148
  • DASH: Evict (by time) indexes in MetaSegmentIndex (#7296) (ac85495)
  • DASH: Evict empty indexes in MetaSegmentIndex (#7272) (5065fdf)
  • DASH: Use presentationTimeOffset in EventStream (#7282) (8bc639b), closes #7277
  • Do not seek to first subtitle (#7312) (a51b156), closes #7310
  • Fix rendering of image subs when using SimpleTextDisplayer (#7258) (0886951)
  • TTML: Fix absence of conversion of alpha (transparency) from 0-255 -> 0-1 (#7280) (515bbb9), closes #7279
  • TTML: Fix subtitles not rendered due to complaint about xml:id (#7270) (50ea3fb)
  • UI: Display the font-family correctly in some cases (#7266) (6fb54ce)

Performance Improvements

  • DASH: Create segment indexes only on new periods (#7294) (4209986)
  • DASH: Delete old matchedStreams (#7301) (299d399)
  • DASH: Delete old matchedStreams when using trickmodeVideo (#7306) (c6fc473)
  • Only use tXml parent when necessary (#7304) (0f1b03d)

4.9.26 (2024-09-04)

Bug Fixes

4.9.25 (2024-08-30)

Bug Fixes

  • Allow recover normal stream when trick play stream fails (#7234) (e7820d8)
  • Correct the behavior to defer closeSegmentIndex() calls during updates (#7217) (b9005b3)
  • DASH: Clear streamMap when period is removed from the manifest (#7202) (b18dcbf)
  • DASH: Fix creation of multiperiod trickmode streams (#7229) (97d6fd8)
  • DASH: Fix MPD Patch when SegmentTemplate is shared between Representations (#7218) (0635c10), closes #7214
  • DASH: Use proper namespace when mapping TXml node to Element (#7240) (7e6f3dc)
  • Don't throw an error when trying to disable a trick mode stream (#7235) (c41615b)
  • Revert change that caused a lot of warning with "cannot find endTime" and hls playback errors (#7239) (9d6ba9b)
  • Stats: Fix bytesDownloaded when using src= (#7223) (b7ebe9e)

4.9.24 (2024-08-27)

Bug Fixes

  • Add null check for current reference (#7184) (e44da8f)
  • DASH: Fix EventStream Elements creation (#7194) (a730d06)
  • Do not minify CodecSwitchingStrategy enum keys (#7200) (2bc3ef9)
  • Dont use inaccurateManifestTolerance for sequenceMode (#7207) (4d4fc14)
  • Fix normalized codec for VVC (#7201) (e4a9ee3)
  • HLS: Check that segment 0 exists (#7208) (e1ecc44)
  • Revert change that caused stalls with "cannot find endTime" (#7213) (e69ade2)

4.9.23 (2024-08-22)

Bug Fixes

  • Add more info in getVariantTracks for muxed streams (#7181) (316a405)
  • Adjust timing of mediaqualitychanged event when safe margin is set (#7114) (39b5480)
  • Apply playRange config to src= (#7168) (911d9e7)
  • DASH: Patch manifest Adaptationset indexing, @n=<Numbering> and @t= (#7131) (68a5044)
  • Fire the correct error code in src= mode in some situations (#7167) (69217ed)
  • Fix ended state in stateHistory (#7189) (866d68c)
  • Fix error thrown after catching null error (#7177) (3e91f7b)
  • Fix horizontal alignment of WebVTT in UITextDisplayer (#7169) (aed223f)
  • HLS: Fix use of EXT-X-MEDIA when not using Content Steering (#7166) (9829836)
  • UI: Fix display seekbar and time when the seekrange is infinite (#7182) (eb7e2ae)
  • UI: Only show frame rate if there are several frame rates (#7190) (ad050ca)

4.9.22 (2024-08-19)

Bug Fixes

  • ABR: Fix restrictToElementSize running while abr disabled (#7153) (4f369e0)
  • CEA: Always init CEA parser with new init segment (#7102) (b7e543f)
  • Compare normalized codecs in codec switching checks (#7143) (bfa8caa)
  • Defer closeSegmentIndex() for old streams during ABR switches when segment fetches are ongoing (#7157) (403574f)
  • Pass correct adaptation value to MediaSourceEngine (#7111) (1694f8a)
  • properly map region height/width when applying anchors (#7105) (c1207c8)
  • Repeated initial segment load & cancellations (#7147) (e62c0b2)
  • WebVTT: Re-add rollover logic (#7104) (4546606)
  • Xbox: Override Dolby Vision codecs (#7115) (219c5be)
  • Xbox: Support screen resolution detection on Xbox when using WebView2 (#7144) (afdf7c6), closes #7141

4.9.21 (2024-07-24)

Bug Fixes

  • Allow dispatch metadata event with cueTime equal to 0 (#7098) (2d32e18)
  • Fix ID3 timing when included in EMSG (#7099) (98b1270)
  • WebVTT: Fix rendering of WebVTT in UITextDisplayer (#7023) (c83cac1)

4.9.20 (2024-07-22)

Bug Fixes

  • ABR: Do not adapt between spatial & non spatial audio (#7067) (3f87da6)
  • DASH: Fix codec/mimeType for single text file (#7075) (f464b8e)
  • DASH: Fix period combining when roles are equal (#7065) (8e3cd0f)
  • Only check encryptionScheme when is not null and not empty string (#7079) (6c0718c)
  • Unify maxDisabledTime behaviour (#7077) (d60bd6a)

4.9.19 (2024-07-18)

Bug Fixes

  • Allow reference mimeType change in StreamingEngine (#7061) (ed9ef1a)
  • DASH: Prioritize highest bandwidth in PeriodCombiner (#7045) (6ab958c)
  • Destroy correctly unused transmuxer (#7059) (bab1cd0)
  • Fix MSE polyfill for iOS (#7049) (3e3bb78)
  • HLS: Remove init segment on formats without init segment (#7060) (064f34f)
  • Transmuxer: Fix init segment between discontinuities (#7042) (3b886e9)
  • ttml: Handle escaped special characters. (#7047) (418e85c), closes #7044
  • UI: Fix resolution label when the stream has not resolution (#7043) (7f7f6f1)

4.9.18 (2024-07-15)

Bug Fixes

  • DASH: Fix transitions from 'dynamic' to 'static' (#7029) (5eb4fdd)
  • DASH: Improve memory usage with live streams (#7039) (c48bb81)
  • PeriodCombiner: Use normalized codec to remove duplicates (#7032) (ad25658)

4.9.17 (2024-07-12)

Bug Fixes

  • CEA: Offset text CEA-608 that are out of viewport (#7024) (1de0202)
  • HLS: A/V sync regression for HLS with different segment sizes (#7015) (0b6de7d)
  • UI: Show all resolutions when there are only one audio. (#7017) (032635f)

4.9.16 (2024-07-10)

Bug Fixes

  • Avoid reset iterator when seek into the buffer (#7004) (ef0d936)
  • Disable seek retry cooldown on most platforms (#7010) (6e439f0)
  • Fix bad warning when use selectAudioLanguage (#6999) (f86e93b)
  • HLS: Fix filtering video/audio streams without bandwidth (#7008) (8a078d1)
  • HLS: Propagate bandwidth to stream in audio-only and video-only (#7006) (368860e)
  • Prefetch: Use the same references time for evict and prefetchSegmentsByTime (#7003) (eee3e2f)

4.9.15 (2024-07-08)

Bug Fixes

  • HLS: A/V sync regression for HLS live (#6987) (21aef27)
  • HLS: Fix parsing of width and height when using media playlist (#6989) (4307c82)
  • Offset text regions that are out of viewport (#6986) (e81dfe6)
  • Xbox: Fix screen resolution detection (#6988) (c9e4a0a)

4.9.14 (2024-07-04)

Bug Fixes

  • ABR: Not change to another quality without respecting a min time (#6979) (2722374)
  • honor autoShowText on non-audio streams (#6977) (f5e6700)
  • UI: fix wrong french in translation (#6982) (aa449a5)

4.9.13 (2024-07-02)

Bug Fixes

  • Avoid clear buffer when select the same audio track (#6959) (5645045)
  • Filter duplicate cues on text displayer append (#6949) (fc0269b)
  • Fix NaN and empty objects in getNonDefaultConfiguration (#6956) (d519c5b)
  • SimpleTextDisplayer: Do not disable metadata & chapters tracks (#6948) (9ab05ff)
  • SSA: Support files with line breaks that are not necessary (#6947) (f105baf)
  • Stats: Fix completionPercent for Live (#6957) (a90e7c3)
  • TTML: Fix font styles parsing (#6969) (a652b5a)
  • TTML: Show background color with image subtitles (#6967) (8f7db97)
  • UI: Don't display NaN stats (#6958) (466ec28)

Performance Improvements

  • DRM: compare init data only when config flag is set (#6952) (b9ce194)
  • HLS: do not loop twice when processing nalus (#6954) (b03b9c8)

4.9.12 (2024-07-01)

Bug Fixes

  • ABR: Add a guard when variant is null (#6928) (df99f61)
  • Don't clear the buffer when disable a stream (#6931) (53a1147)
  • Only request initialization segment when it's necessary (#6929) (190fa3f)

4.9.11 (2024-06-27)

Bug Fixes

  • Ads: Fix skip functionality in MediaTailor (#6910) (cbc4c46)

4.9.10 (2024-06-25)

Bug Fixes

  • DASH: Allow play when SegmentTimeline has a duration 0 "S" element (#6896) (3f8066e)
  • HLS: Allow detect mimeType from non-gap segments (#6892) (1a3f6ae)
  • HLS: Fix MPEG-H codec selection in HLS (#6901) (f8ddefb)
  • Prefetch: cache iterator to avoid precision issues (#6899) (dd3b20e)
  • Prefetch: Ensure prefetched segments are continuous (#6908) (3dcb24b)
  • preload: Fix memory leak with preload feature (#6894) (6f39210), closes #6883

4.9.9 (2024-06-21)

Bug Fixes

  • Avoid firing SEGMENT_MISSING when there is an alternative (#6881) (d2f5794)
  • CEA: CEA-608 is not rendered in some cases (multiples TRAF boxes) (#6878) (4ee40f5)
  • Generate the correct codec for AV1 HDR (#6879) (564ec22)
  • HLS: Avoid get basic info when the first segment is a gap (#6882) (4a04b72)
  • HLS: Avoid make a HEAD request of gap segments (#6880) (3fd9aef)
  • HLS: Identify EXT-X-GAP with segment tags (#6884) (f2d4eb6)

4.9.8 (2024-06-20)

Bug Fixes

4.9.7 (2024-06-19)

Bug Fixes

  • Allow use startTime equal to 0 in HLS live streams using src= (#6843) (b81664f)
  • DRM: Probe robustness only for modern PlayReady keysystem (#6851) (9ff9b3e)

4.9.6 (2024-06-18)

Bug Fixes

4.9.5 (2024-06-14)

Bug Fixes

4.9.4 (2024-06-11)

Bug Fixes

  • getPresentationStartTimeAsDate() should return time unaffected by clock drift (#6790) (d7f003c)
  • DRM: close properly webkit media key sessions (#6775) (035fa18)
  • Fix AC-4 codec string in MediaSourceEngine (#6780) (551a6b3)
  • Fix green screen issue on Edge with mixed content (#6719) (0aca20b)

4.9.3 (2024-06-07)

Bug Fixes

  • ABR: Fix variant choose when two variants have the same bandwidth but different resolution (#6760) (0344c24)
  • HLS: Fix seekRange when using delta playlist (#6758) (83fdb33)
  • HLS: Ignore query params in the uri of EXT-X-SESSION-KEY tags (#6755) (726b3a8)

4.9.2 (2024-06-04)

Bug Fixes

4.9.1 (2024-05-31)

Bug Fixes

4.9.0 (2024-05-30)

Features

  • 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

Bug Fixes

  • 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)

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)

4.7.0 (2023-12-04)

Features

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

Performance Improvements

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

Performance Improvements

4.4.0 (2023-08-30)

Features

  • 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)

Bug Fixes

  • 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)

Performance Improvements

  • Caching mediaSource support for browser engine (#4778) (ad6c085)

4.3.0 (2022-11-10)

Features

Bug Fixes

4.2.0 (2022-08-16)

Features

  • 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)

Bug Fixes

  • 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)

Features

Bug Fixes

4.0.0 (2022-04-30)

⚠ BREAKING CHANGES

  • Remove small/large gap config, always jump gaps (#4125)
  • config: manifest.dash.defaultPresentationDelay has been replaced by manifest.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 by addTextTrackAsync(), which returns a Promise (deprecated in v3.1.0)
  • ui: shaka.ui.TrackLabelFormat has been renamed to shaka.ui.Overlay.TrackLabelFormat (deprecated in v3.1.0)
  • ui: shaka.ui.FailReasonCode has been renamed to shaka.ui.Overlay.FailReasonCode (deprecated in v3.1.0)
  • offline: shaka.offline.Storage.prototype.store() returns AbortableOperation instead of Promise (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 by shaka.util.BufferUtils.equal, which can handle multiple types of buffers (deprecated in v3.0.0)
  • manifest: shaka.media.SegmentIndex.prototype.destroy() has been replaced by release(), which is synchronous (deprecated in v3.0.0)
  • manifest: shaka.media.SegmentIterator.prototype.seek(), which mutates the iterator, has been replaced by shaka.media.SegmentIndex.getIteratorForTime() (deprecated in v3.1.0)
  • manifest: shaka.media.SegmentIndex.prototype.merge() has become private; use mergeAndEvict() instead (deprecated in v3.2.0)
  • plugin: AbrManager plugins must implement the playbackRateChanged() method (deprecated in v3.0.0)
  • plugin: shaka.extern.Cue.prototype.spacer has been replaced by the more clearly-named lineBreak (deprecated in v3.1.0)
  • plugin: IUIElement plugins must have a release() method (not destroy()) (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)

Features

  • shaka.util.Uint8ArrayUtils.equal has been replaced by shaka.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 by manifest.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 by release(), which is synchronous (deprecated in v3.0.0) (ac5acc8)
  • manifest: shaka.media.SegmentIndex.prototype.merge() has become private; use mergeAndEvict() instead (deprecated in v3.2.0) (ac5acc8)
  • manifest: shaka.media.SegmentIterator.prototype.seek(), which mutates the iterator, has been replaced by shaka.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() returns AbortableOperation instead of Promise (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 by addTextTrackAsync(), which returns a Promise (deprecated in v3.1.0) (ac5acc8)
  • plugin: AbrManager plugins must implement the playbackRateChanged() method (deprecated in v3.0.0) (ac5acc8)
  • plugin: IUIElement plugins must have a release() method (not destroy()) (deprecated in v3.0.0) (ac5acc8)
  • plugin: shaka.extern.Cue.prototype.spacer has been replaced by the more clearly-named lineBreak (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 to shaka.ui.Overlay.FailReasonCode (deprecated in v3.1.0) (ac5acc8)
  • ui: shaka.ui.TrackLabelFormat has been renamed to shaka.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

Bug Fixes

Older changelogs: