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
CobaltExtensionSocketReceiveMultiMsgApi
extension 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
MediaSource
support, allowingMediaSource
objects on a Dedicated Worker to render frames on aHTMLMediaElement
owned by the main browser thread. (#4314) - QUIC Connection Options: Added support for setting
quic_connection_options
andquic_client_connection_options
from 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
QUIC
andHTTP3
for 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
MediaSource
presence (#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
QuicChromiumPacketWriter
pointer 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
PosixSocketResolveTest
to improve test coverage and ensure correct IPv6 localhost lookups (#4827) - Disabled
NPLB
test cases not applicable for Android (#4721) - Fixed
PosixFileFtruncateTest
tests 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.