The Cobalt team has published Cobalt 27 RC2 (Release Candidate 2) including Starboard API version 18 to the 27.lts branch with tag 27.lts.2 (27.lts.2.1040572).
Corresponding Evergreen binaries are available on GitHub at the 27.lts.2 Release tag
Cobalt Core can be updated via the Evergreen static channel (27lts2).
Please migrate and rebase your RC1 integrations to RC2 to get the latest fixes and improvements below.
The Cobalt team strongly encourages external contribution to fix issues and improvements.
- Please see the Cobalt Contribution guidelines for additional details
Available Reference Ports:
- Desktop Linux
- RDK (
starboard/contrib/rdk) - Android (AOSP) [Now Available!] (
starboard/aosp)
Migration guide from Cobalt 25 to Cobalt 27 is available here:
- For the latest changes, the code at tip in the 27.lts branch is always available, but is under development and may be unstable.
Cobalt Changes
See comprehensive list of changes in cobalt/CHANGELOG.md and baseline release notes for Cobalt 27 RC on developers.google.com/youtube/cobalt.
Critical Bug Fixes/Improvements
- Media & Video Decoding Fixes: Resolved deadlocks and race conditions during MediaCodec surface destruction and teardown (#11039, #10193)
- More Reliable Voice: Improved microphone recording synchronization, reducing failed voice inputs and audio buffer capture dropouts (#11396)
- Network & Storage Stability: Resolved critical database, SSL security certificate, and network socket crashes to ensure secure local data storage, stable connections, and smoother recovery from temporary internet drops. (#11413, #11417, #11062, #11061, #10871)
- Memory Stability & Crash Handlers: Preserved critical crash details (siginfo signals) when Crashpad hands a failure back to the OS, resolved crashes linked to the HangWatcher system, and hardened against null pointer dereferences. (#11321, #11264)
- Improved GPU & Graphics Throughput: Increased GPU passthrough decoder texture unit limits from 64 to 96 (kMaxTextureUnits) to match RDK hardware driver limits (#11362)
- Fix white screen flash during preload/resume transitions (#11062, #10871)
Android
- Available AOSP Reference Port: Official reference port now available for AOSP platforms (
aosp-arm,aosp-arm64,aosp-x86). (#11475)- See setup documentation in cobalt/site/docs/development/setup-aosp.md
RDK
- DRM: Resolved empty session ID crashes during DRM initialization (#11316)
- Memory Testing Scripts: Added RDK memory profiling scripts and deep-link testing support:
- rdk_kabuki_memory_benchmark.sh
- rdk_yttv_memory_benchmark.sh (#10922, #10843)
- See documentation in cobalt/tools/performance/memory/README.md)
- Deeplink Testing Support in RDK Script (#11450)
- Fixed issue with invalid crash symbolization (#10450)
Memory Optimizations & Performance Improvements
- V8 & Wasm Engine Memory Reductions:
- Smarter Memory Cleanup: Switched to a more efficient cleanup system (MinorMS GC) to quickly recycle temporary data before it causes bloat. (#10912)
- Reduced Compiler Overhead: Disabled resource-heavy code compilers (Maglev) that may consume significant memory during runtime. (#11186)
- Immediate Memory Release: Optimized Wasm memory handling to actively and immediately return unused memory back to the platform operating system. (#11383)
- Optimized Partner Settings: Turned on memory-saving configurations tailored specifically for 3P devices. (#11440, #10912, #10928)
- Media Buffer Shedding & 720p Pool Tuning:
- Smarter Memory Cleanup: Added an automated system that quickly discards video data when no longer needed (e.g. backgrounded). (#10963)
- Ready-to-Use Media Pools: Preallocated dedicated memory pools for video and audio frames to ensure smoother transitions and reduce the processing delay for media playback. (#10688)
- Configurable Memory Cap for HD: Set a strict limit on the memory used for demuxing (Media.720pVideoBufferSizeClampMb) when playing videos at 720p resolution or lower, protecting devices with lower memory capacity. (#10773)
- Reduced CPU usage: Optimized DecodedAudio format switching. (#11184, #10724)
- Cache, Thread Stack & Pipe Memory Optimization: Optimized ref counting garbage collection, configurable/reduced default thread stack sizes, and added support for Mojo data pipes to only use memory dynamically when data is actively being sent (#11161, #10796, #10823, #10791)
- Storage Partitioning & Cache Storage Optimization: Redirected
CacheStorageto use the system cache directory (base::DIR_CACHE/kSbSystemPathCacheDirectory) instead of permanent storage to prevent flash memory exhaustion, and implemented domain-isolated storage partitioning (kSbSystemPathFilesDirectory). (#11458, #10879, #10829) - Interactive Heap Profiling & Memory Attribution: Added HTML heap flamegraphs, in-process symbolizers, and integrated PartitionAlloc metrics and context APIs for deeper memory diagnostics. (#11382, #11247, #11037, #10969, #10947, #10850, #10848, #11474)
- Smoother UI Navigation: Moved CobaltPerformance memory queries to base::ThreadPool to prevent UI thread blocking that may cause screen stutter. (#11184)
Testing and Verification
- NPLB Test Suite: Added tests for EGL 1.5, POSIX (
unlinkat,openat,fstatat) and updated vertical video tests (#11297, #10945, #11101, #10897, #10886, #10913)
Starboard Changes
See comprehensive list of changes in starboard/CHANGELOG.md and baseline release notes for Cobalt 27 RC on developers.google.com/youtube/cobalt.
New & Updated Starboard Extensions
[Required] New Hang Detection and Reporting - CobaltExtensionCrashHandlerApi
- Cobalt is now able to detect hangs to better diagnose in-field platform issues
- The platform should continue to simply wire up the provided, shared implementation of the extension at:
starboard/shared/starboard/crash_handler.hstarboard/shared/starboard/crash_handler.cc
[Required] New StarboardExtensionNativeStabilityApi
- Enables YouTube to more reliably log stability events like crashes and hangs
- No custom implementation; the platform must just wire up the provided, shared implementation of the extension at:
starboard/shared/starboard/native_stability.hstarboard/shared/starboard/native_stability.cc
Contact Points
Please contact our support channels if you have any problems, questions, or feedback.