Cobalt 25.LTS.20 Stable Release

The Cobalt team has pushed critical patches to the Cobalt 25.lts.stable branch with tag 25.lts.20 (25.lts.20.1034877)

The Evergreen binaries are available on GitHub (5.20.2)

Considering the importance of these patches, the Cobalt team strongly recommends that partners migrate Cobalt to this new version as soon as possible if you have Cobalt 25.lts.stable on your existing devices.

More detailed information can be found in the respective CHANGELOG.md files.

Cobalt Changes

New Features / Support

  • Media :
    • Added state setters to the MediaSourceAttachment interface to support cross-thread MediaSource objects. (#4104)
    • Enabled creation of MediaSource, SourceBuffer, and SourceBufferList objects on Dedicated Workers, laying the groundwork for cross-thread MediaSource support. (#4169)
  • IAMF :
    • Added a test for GetAudioCodecFromString() to parse IAMF MIME codecs parameter.(#4188)
    • Added IAMF MIME parsing and validation with the addition of IamfMimeUtil and enhanced GetAudioCodecFromString() capabilities. (#4244)
    • Implemented optional libiamf based audio decoder.(#422)
  • Android :
    • Added a garbage collection threshold RRO for SbMediaGetBufferGarbageCollectionDurationThreshold (#4184)
    • Fixed a potential nullptr dereference issue in StopWatchingSocket. (#4220)
    • Prevented ANRs at SCREEN_OFF by skipping eglSwapBuffers calls after surfaceDestroyeduntil the next SurfaceCreated. (#4252)
    • Reverted DPad key mapping changes to address unintended issues with game controller operation. (#4261)
    • Fixed an issue where the errno was not set correctly on arm64 devices when an internationalization file could not be opened from the Android asset manager. (#4387)
    • Accessibility: Restored Starboard A11y implementations for Android on SB 14/15. (#4167)
  • Network :
    • Various performance improvements for HTTP/3 support, with a strong encouragement for platforms to implement CobaltExtensionSocketReceiveMultiMsgApifor optimal networking and streaming performance (#4519))
    • Improved network performance by adding the capability to utilize recvmmsg on Linux kernel based platforms to read multiple packets in a single system call, resulting in significant bandwidth increases and CPU usage reduction. Implemented with an optional Starboard extension (starboard/extension/socket_receive_multi_msg.h) (#4321)
    • Documentation for platforms to add the CobaltExtensionSocketReceiveMultiMsgApi extension, available in starboard/doc/networking_performance.md ((#4519))
    • Enabled UDP socket connection to improve bandwidth, reduce CPU usage, and potentially decrease connection latency. (#4270)
    • Ensured compatibility with older Starboard builds by providing a fallback mechanism for sending UDP packets on connected sockets, while retaining performance benefits on platforms with the SocketReceiveMultiMsg extension. (#4337)

Updates and Improvements

  • Removed duplicates for the POSIX APIs from the exported symbols map. (#4179)
  • Resolved H264 decoder initialization errors in Xbox by improving texture creation robustness and expanding hardware video decoder logs. (#4159) , (#4137)
  • Fixed a bug causing dropped frames during 4K video playback after resuming from rest mode by adding socket watcher closure if there are no pending operations.(#4182)
  • Reduced CPU utilization by avoiding unnecessary libevent timers in the MessagePump. (#4258)
  • Fixed a crash in the Cobalt loader app on Starboard 15 caused by a missing flag in SbFileOpen. (#4320)
  • Fixed a context check error in DebugServer by correctly verifying sequenced task execution. (#4326)
  • Fixed build errors encountered by some compilers (crash_report_database_generic.cc, process_snapshot_linux.cc, and thread_priority.cc) (#4227
  • Fix issue preventing Cobalt from launching on ARCH_ARM64 configurations due to struct stat mismatch between musl and arch64 compiler (#4365)

Evergreen

NOTE : Cobalt 25 binaries are not compatible with AOSP EG integrations on SB v14 and v15.

  • Added Starboard version check to the Evergreen updater to ensure compatibility with downloaded images. (#4235)
  • Enabled a 64 bit build of AOSP APK on 25 LTS (#4351)

Contact Points

Please contact our support channels if you have any problems, questions, or feedback.