[Announcement] Cobalt 24.LTS.Stable Release

402 views
Skip to first unread message

Leo Zinger

unread,
Sep 19, 2023, 5:17:08 PM9/19/23
to cobal...@googlegroups.com

    Cobalt 24 LTS Stable

The Cobalt team is thrilled to announce the Stable Release of Cobalt 24 LTS (24.lts.10)!

https://github.com/youtube/cobalt/tree/24.lts.stable

  • Evergreen binaries are available on GitHub (4.10.2)


Cobalt 24 LTS includes Starboard API version 15 for porters and its Stable release version will support all features that are required for 2024 YouTube Certification. The code is available at Cobalt open source "24.lts.stable branch. (Read branching/versioning documents for more information) As this version is a release candidate, the code is subject to change while we expect to have no more Starboard API changes.


There are newly implemented features, improvements, and simplified code. We have outlined the changelist below with a brief description of Cobalt 24 LTS and Starboard 15 changes. More detailed information can be found in the respective CHANGELOG.md files (CobaltStarboard).


Cobalt Changes (see cobalt/CHANGELOG.md for more information)


New Features / Support

  • Touch support (starboard/input.h)

    • Web standard scroll and navigation 

    • Set kSbInputDeviceTypeTouchScreen, kSbInputDeviceTypeTouchPad, or kSbInputDeviceTypeMouse

  • Xbox code and builds are now open sourced.

  • Reference implementation for supporting Cast media on Starboard is available

  • New counters ( CVals ) for monitoring disk writes and WebP rendering speed

  • Native telemetry from Cobalt through Chrome UMA ( User Metrics ) instrumentation

  • [Experimental] Wasm support for 32-bit Android

Updates / Improvements

  • Introduced “modular” toolchain configuration(SB_MODULAR_BUILD)

    • Different toolchains can now be used between builds for Starboard code and Cobalt code through binary compatibility

    • See (starboard/CHANGELOG.md) for additional details

  • Cobalt extensions are renamed to Starboard extensions, and reverse dependencies from Starboard to Cobalt code have been removed

    • Use starboard/extension/ moving forward

  • Reduced memory consumption while preloaded (results will vary depending on platform)

  • Modular builds support, allowing building Cobalt and Starboard separately as shared libraries with different toolchains.

  • Several enhancements to Watchdog to detect application freezes.

  • Several core libraries have been updated:

    • FreeType2(2.13.0)

    • llvm/musl along with Starboard clang(16) toolchain

    • zlib(1.2.11)

    • brotli(v1.0.9)

    • GTest/GMock(1.13)

    • libXML(2.9.12) 

    • Libwebp(1.3.1)

    • Libevent(1.4.15 with patches)


Starboard Changes (starboard/CHANGELOG.md for more information)


Updates / Improvements

  • SbSystemDeviceType is now a free-text property instead of an enum, allowing more flexible addition of device types

    • starboard/system.h

  • Audio sample processing significantly refactored for improved audio accuracy(see starboard/CHANGELOG.md and starboard_player.h for additional details)

    • Added duration discard support to SbMediaAudioSampleInfo for improved A/V sync

    • Adjusted audio write duration defaults

      • [Pre-buffer] Previously 10 seconds, now 0.5 second (still 10 seconds for wireless audio output device)

      • [Append-buffer] Previously 1 second, now 0.5 second

    • Added SbPlayerGetAudioConfiguration() to audio output devices to Cobalt

      • See starboard/player.h for more details

  • Added remote “Record” button keycode support

  • [Deprecated] kSbHasAc3Audio, SbMemoryGetStackBounds, SbMediaSetAudioWriteDuration()



Migrate to GitHub for Cobalt Development!

[IMPORTANT] Cobalt developers must migrate to the Cobalt GitHub repo (https://github.com/youtube/cobalt). The googlesource repository (https://cobalt.googlesource.com/cobalt) is now deprecated and will be removed.


Please migrate your local development to use GitHub as upstream moving forward

We planned this shift over the past few years to make quality of life improvements for all Cobalt developers based on developer feedback. Migrating to GitHub streamlines Cobalt development while taking advantage of industry tools and processes already built into or seamlessly integrated with GitHub. 


See more details in our official announcement on cobalt-dev.


Cobalt 24 Stable Versions for Certification are now multiples of 10


TL;DR; For YouTube Certification and Cobalt Device Maintenance Updates, use only Cobalt 24 Stable Releases, which are identified with the minor version being a multiple of 10.

  • ✅ [STABLE] e.g. 24.lts.10, 24.lts.20, 24.lts.30, … , 24.lts.60

  • ❌ [non-STABLE] e.g. 24.lts.1 (RC1), 24.lts.2 (RC2), 24.lts.14 (non-Stable), 24.lts.26 (non-Stable)


Starting with Cobalt 24, the version numbering scheme for LTS Major and Minor Stable releases are now numbered by multiples of 10. This change aligns with semantic versioning, adds more sensible differentiation for Stable vs incremental non-Stable releases, and enables the Cobalt team to deliver faster fixes, optimizations, and features to our mutual users. Please only use Cobalt LTS releases with minor versions that are multiples of 10 for YouTube Certification and Cobalt Device Maintenance Updates. 

  • NOTE: Pre-built Evergreen binaries are only available for Stable (non-RC) releases at this time.


See more details in our official announcement on cobalt-dev.


2024 YouTube Certification

Remember to use "24.lts.stable" for the 2024 YouTube certification and for your product release. Cobalt Known Issues with Status, Fixes, and Mitigations can be found in the YouTube Partner Portal.


Contact Points

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


Thank you,

On behalf of the Cobalt team


  •  Leo Zinger
  •  YouTube Device Ops & Partner Engineering (DOPE)
  •  lzi...@google.com
  •  Google LLC.



Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages