Cobalt 25.LTS.30 Stable Release
The Cobalt team has pushed critical patches to the Cobalt 25.lts.stable branch with tag 25.lts.30 (25.lts.30.1034943)
The Evergreen binaries are available on GitHub (5.30.2)
Cobalt Changes
Critical Bug Fix
- Evergreen Full: Resolved an issue in previous versions of Cobalt which caused the app to crash when an edge-case network error is encountered while updating the Cobalt version using EG Full. See the note at the end of this document for recommendations. (#4910)
New Features / Support
- Networking Performance: Platforms are strongly encouraged to implement
the
CobaltExtensionSocketReceiveMultiMsgApiextension introduced in 25.LTS.20.This optimizes UDP packet handling, significantly reducing CPU usage and improving network throughput on Linux systems usingrecvmmsg. This results in a more responsive application and improved video quality. See networking_performance.md for implementation details. - Crashpad Database Clearing: Added a web API to clear the Crashpad database to work around upload throttling issues (#4790)
- Progressive Playback Disabling: Added a runtime switch and H5vcc setting to disable progressive playback (#4564)
- Localhost Resolution: Optimized localhost resolution to avoid system resolver and ensure correct IPv4 and IPv6 loopback address resolution (#4830)
- Cross-Thread MediaSource Support: Enabled cross-thread
MediaSourcesupport, allowingMediaSourceobjects on a Dedicated Worker to render frames on aHTMLMediaElementowned by the main browser thread. (#4314) - QUIC Connection Options: Added support for setting
quic_connection_optionsandquic_client_connection_optionsfrom both the command-line and h5vcc (#4586) - [Android] ALLM Persistent Storage: Added persistent storage flag for Auto Low Latency Mode (ALLM) API (#4600)
Updates and Improvements
- QUIC/HTTP3 Performance Optimizations: Multiple optimizations to
QUICandHTTP3for performance gains (#4489 , #4490 , #4491 , #4492 , #4493 , #4494) - Thread Priority Management: Improved v8 thread priority management to resolve recent issues with framedrops during playback (#4693, #4697)
- UDP Socket Fixes: Corrected issues with sending messages over connected and unconnected UDP sockets (#4402 , #4626)
- Socket Watcher: Improved socket watcher logic to track read and write interests explicitly, preventing spurious callbacks and potential crashes (#4430)
- MediaSource Re-use: Resolved an issue when re-using attachments by
checking
MediaSourcepresence (#4571) - Null Pointer Checks: Prevented dereferencing layout_boxes when it's null
(#4820) and added null
pointer checks for
media_codec_bridge(#4846) - String Out of Bounds: Addressed a string out of bounds issue when opening asset files (#4673)
- QuicChromiumPacketWriter: Added a check and pointer reset to avoid
having a stale
QuicChromiumPacketWriterpointer in theQuicConnection(#4691) - Filesystem Timestamp Granularity: Allowed for filesystems with one-second timestamp granularity (#4497)
- Latin Alphabet for Montenegro: Forced Latin alphabet for Montenegro ensuring correct characters are displayed (#4849)
- Command-Line Switches: Showed all command-line switches in help and allowed startup URL at the end (#4585)
- FileProxy Destruction: Ensured correct destruction order for
FileProxy(#4530) - Stack Overflow Prevention: Set up a custom stack size for InstallationManager load to prevent stack overflows that may cause unusual platform crashes (#4615)
- Testing Improvements
- Added more test cases for
PosixSocketResolveTestto improve test coverage and ensure correct IPv6 localhost lookups (#4827) - Disabled
NPLBtest cases not applicable for Android (#4721) - Fixed
PosixFileFtruncateTesttests not working correctly on AOSP platforms (#4627) - Fixed a typo in vertical video tests (#4784)
- Added more test cases for
Evergreen
- EG Updater Sideloading: Enabled sideloading in the EG updater (#4428) and added new required response fields (#4602)
- ARM 64: Added ARM 64 EG loader config (#4539)
- Busy Flag Clearing: Cleared the busy flag if
GetEvergreenInfo()fails to prevent deadlocks (#4461)
2025 YouTube Certification
Considering the critical Evergreen Full fix (#4910) included in this release, YouTube strongly recommends Partners to move to the latest 25.lts.30 version as soon as possible. Devices undergoing certification should consider moving to the new version now, while already certified devices should plan for a zero-day update if possible.
Contact Points
Please contact our support channels if you have any problems, questions, or feedback.