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)