Questions tagged [cobalt]

Cobalt is a lightweight HTML5/CSS/JS application container that is designed to provide a rich application development environment with minimal resource consumption (deployment size, RAM, CPU, GPU). At the same time, Cobalt enables a rich, low-latency user experience across a wide variety of platforms and devices.

Target audiences

Cobalt's documentation is written with two audiences in mind:

Porters enable Cobalt to work on other platforms by using Starboard, Cobalt's porting layer and OS abstraction, to implement the platform-specific functionality that Cobalt uses. Each Starboard module (memory, socket, thread, etc.) defines functions that must be implemented for the porter's platform.

Developers want to build applications in familiar environments with advanced debugging tools without having to worry about compatibility with a highly fragmented set of browsers. At the same time, they want to have full control over their codebase so that they can ship features for constrained platforms, like TVs, on time and without technical risk.

Benefits of Cobalt

Cobalt significantly reduces the cost of supporting a browser on non-standard and resource-constrained platforms. In addition, since Cobalt operates at a consolidated, versioned platform abstraction layer, its porting effort is man-weeks, and subsequent rebases are near-free.

These are some other benefits that Cobalt provides:

More platforms

Cobalt does not require platforms to support JIT compilation and can run on platforms that disallow execution of dynamically generated code. Cobalt is a single-process application and does not rely on the ability to spawn multiple processes. Cobalt precompiles a set of shaders that are sufficient to express all graphical effects, thereby accommodating platforms that cannot compile shaders at runtime. Cobalt requires a compliant C++03 compiler, allowing it to reach platforms with legacy toolchains. Small footprint

Cobalt is optimized for memory. Its surface cache never exceeds a predefined budget, and it never creates duplicate layers, reducing the likelihood of out-of-memory crashes. Cobalt's small binary is designed to take up as little space as possible. By supporting a subset of HTML5/CSS/JS, Cobalt's reduced package size even allows bundling of CJK fonts on low-end devices. Reduced input latency

Cobalt produces consistent 60FPS animations by only supporting animation of properties that don't affect layout, like transform, and always running animations on a separate thread. Cobalt is optimized to run on single-core CPUs, resulting in better input latency since the renderer and resource loader do not compete with layout operations. On platforms that support GLES2, Cobalt avoids CPU painting by performing almost all rendering operations on the GPU.

References:

1.1 Overview & Source http://youtube.github.io/cobalt/overview.html

1.2 Porting http://youtube.github.io/cobalt/starboard/porting.html

1.3 Develop http://youtube.github.io/cobalt/development/setup-linux.html

1.4 Supporting Features http://youtube.github.io/cobalt/development/reference/supported-features.html

1.5 Testing http://youtube.github.io/cobalt/starboard/testing.html

1.6 Source Code https://cobalt.googlesource.com/cobalt/

1.7 h5vcc https://github.com/youtube/h5vcc

1.8 Build in linux https://cobalt.googlesource.com/cobalt/+/e9b4b99dab6e774b8b6e63add74c352cc5dd395a/src/README.md#Building-and-Running-the-Code

215 questions
0
votes
1 answer

TotalJSHeapSize & UsedJSHeapSize will be failed with mozjs-45 in Cobalt 11.62465

After it upgraded to Cobalt 11.62465, both TotalJSHeapSize & UsedJSHeapSize test would be failed in the DOM CharData/Windows/Etc catalogue with https://qual-e.appspot.com/ test. But when change the mozjs-45 to mozjs in the gyp_configuration.gypi,…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Which Ubuntu distribution version support GLES3

I build the cobalt with platform "linux-x64x11" on Ubuntu as below: $cat /proc/version Linux version 3.13.0-119-generic (buildd@lcy01-08) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #166-Ubuntu SMP Wed May 3 12:18:55 UTC 2017 But this…
0
votes
1 answer

Where can I get drm contents?

I Developing drm in Cobalt(RC_9). I want to develop and debug drm with drm contents. where can I get drm contents?
joshua787
  • 11
  • 6
0
votes
1 answer

Whether the flash size of cobalt including run-time resource will keep increasing?

For coablt 10.56829, the built out cobalt binary(QA) has about 21 MB flash size, and the content resource has about 53M flash size, totally about 74 MB, it means it needs about 74M flash size at run time, so is there a chance to reduce the flash…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Cobalt preload API support

With Cobalt RC_9 I tried the following cobalt --url=https://www.youtube.com/tv?launch=preload&additionalDataUrl=http%3A%2F%2Flocalhost%3A8080%2FdialData%2FYouTube but the application does not seem to load in background. Does Cobalt support YouTube…
0
votes
1 answer

How does Cobalt packet Opus track?

When the audio codec is Opus, some extra parameters are very important for our integration. Is there a way to get codec delay, seek preroll and codec private? When SB_API_VERSION is not less than SB_AUDIO_SPECIFIC_CONFIG_AS_POINTER, 'codec private'…
Ceri Ruan
  • 13
  • 3
0
votes
1 answer

setServerCertificate() function is not in Cobalt EME API in 'drm.h'

Does the latest code of 'drm.h' in master branch meet the EME part of 2018 YouTube TV HTML5 Technical Requirements? Widevine CE CDM stongly recommands to use the certificate from servers, and we met with some problems using the old method with…
Ceri Ruan
  • 13
  • 3
0
votes
1 answer

What’s the difference for the performance between CSS and webGL to implement 360 video?

From the cobalt document of 360 video, cobalt implements it with CSS, it does not use webGL to implement it, so What’s the difference for the performance between CSS and webGL to implement 360 video? Is there any performance influence with the…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Can not exit Youtube by press the return key on Home page

After loading the Home page of Youtube with cobalt, it can not exit cobalt by pressing the return key, if fact, when play the video, it can return back to the home page by pressing the return key, so it seemed the youtube page does not process the…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Is it possible to play UHD (3840x2160) video on cobalt?

The vp9 codec will play 1920 * 1080 video, but will stop midway when playing 3840 * 2160 video. I want the UHD video(3840 * 2160) to play. Is it a memory issue? If it's not a memory issue, am I not ported well? (cobalt version - RC_9)
joshua787
  • 11
  • 6
0
votes
1 answer

[Cobalt]How does cobalt implement AV sync with the YouTube 360 Video(Spherical Video)?

From the document and source code in cobalt, it seemed there is no AV sync fluent in cobalt, application just calls the SbPlayerGetCurrentFrame to update the video frame with renderer‘s frequency(the application render loop’s frame rate), but does…
bitchainer
  • 535
  • 2
  • 19
0
votes
2 answers

How do I get the Cobalt RC9 version?

I want to get Cobalt RC9 from putty tool How do I get it? I apologize for the basic questions, but I would appreciate it if you could let me know.
joshua787
  • 11
  • 6
0
votes
2 answers

Can cobalt support transparent background

When body's background color is set as transparent as below, the actual background is displayed as purple in cobalt. body { background-color: transparent; } Is there any way to make background to be real transparent? I wish to show other gfx or…
0
votes
1 answer

I am curious about the Cobalt Youtube certification test process

During the YouTube certification 2017 testing process It says "WARNING: The current user agent is not in the 2016 YouTube-required fomat" on a red line Why is it floating like that? (cobalt version : 10.52708) enter image description here
joshua787
  • 11
  • 6
0
votes
1 answer

how to apply DIAL 2.0 smooth pairing?

we checkout Cobalt 10.49488 and modify some codes that pass URL to cobalt. we check RC_9 release note, it should apply DIAL 2.0 smooth pairing. so we can deliver…