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

How can I get some full test cases of Cobalt 360 Spherical Video and a description of the. msh file format

I want enable Spherical Video on my board. Now I need some test cases to test if my design is right. The filter will have the following CSS syntax: map-to-mesh() = map-to-mesh(, {2}, […
0
votes
1 answer

Does cobalt support Factory reset mode or API?

I would like to ask the cobalt whether existing factory mechanism or related interface? If not, whether will have a related work plan, thank you. Factory mode: For example, it will delete all useful info, cookies, and other data, and let changed…
0
votes
1 answer

MSE conformance test for cobalt browser without VP9 support

From a quick analysis of the qual-e mse conformance tests it seems to me that it is assumed that the platform supports VP9. For example the test case for MSE AddSourceBuffer var testAddSourceBuffer = createConformanceTest('AddSourceBuffer', 'MSE…
deji202
  • 5
  • 2
0
votes
1 answer

cobalt does not handle KEY_BACKSPACE in updated youtube tv search page

With the update of the youtube tv search page, the KEY_BACKSPACE seems not functional anymore. The KEY_BACKSPACE is intended to clear previous text in the search text field. The KEY_BACKSPACE still works on chrome. Is it possible to fix this?
deji202
  • 5
  • 2
0
votes
1 answer

360 Video can't reach to 60P output

I'm trying to check 360 Video performance with version 11.62465, the 360 video output can't reach to 60P when we play FHD@60P 360 video. The video decode will update video frame in every 14ms~17 ms, but the application can't call…
Kai Wang
  • 25
  • 5
0
votes
1 answer

Cobalt tiles transition performance regression after webp update

After Cobalt 11.88772 which solves animated webp rendering and with blitter/DirectFB, the application takes the whole CPU resource to just handle the current tile animation (c.f. cobalt timed trace showing high cpu load) Is it expected to have CPU…
0
votes
1 answer

Cobalt segmentation fault in blitter

From today, the Cobalt application that uses blitter/directFB layer does crash while starting with the below segmentation fault. It seems to be linked with animated images but even by disabling it with --disable_image_animations the crash still…
0
votes
1 answer

How to port the Cobalt disk cache function on my board?

I am porting cobalt on my board with version 9 now. When I improve the speed which open the webpage, I want to use the disk cache function. I find it was supported in verion…
0
votes
1 answer

Does cobalt RC 11 support Web Audio API

From my understanding, the Youtube technical requirement for 2017 and 2018 requires support of W3C Web Audio API. Cobalt is currently not able to run the qual-e web audio web page: http://qual-e.appspot.com/webaudio.html. The video player is not…
deji202
  • 5
  • 2
0
votes
0 answers

It would abort when start cobalt with no ip address

It would abort when start cobalt with no ip address(platform does not have a ip address), can cobalt just send msg to SbSystemRaisePlatformError when it can not reach the url(eg, no ip; has network, but can not visit youtube.com)? [cobalt]>SIGABRT…
bitchainer
  • 535
  • 2
  • 19
0
votes
2 answers

How to change url after start cobalt in preloading state

From the source code of rc_11(11.80927), it does has a interface Application::SetStartLink to set the start URL, but the param has not been used at all, there is no way to change the url when switching from preloading state to kStateStarted for some…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

The memory limit setting may be not respected by cobalt

From the cobalt memory docs , we set max_cobalt_cpu_usage limit to 250M, max_cobalt_gpu_usage to 150M, and found the actual max memory used by cobalt is about 370M when play the 4K videos for about 12 hours, it exceeded 250M a lot, so what kind of…
bitchainer
  • 535
  • 2
  • 19
0
votes
0 answers

audio sink buffer status update much slower, when repeated key is pressed to the edge of YT home page

Compared with certified platform, YT home page in Cobalt updates audio sink status much slower when repeated key arrives the edge (about one second), is it a proper behavior? [cobalt]>[18880:6444373109:[CBT][WEBAUD][ERROR]:PlaybackLoop(224)]…
Ceri Ruan
  • 13
  • 3
0
votes
1 answer

The key moved too slow when test with https://qual-e.appspot.com

When test with https://qual-e.appspot.com with cobalt rc_11 version, the key move too slow(5s+), sometimes the focus even can not move at all, it's hard to test with the page, after checking with the cpu usage, the MainWebModule used 98% CPU, so is…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Cookie test item in qual-e.appspot.com would fail at gold version(rc_11)

When test with https://qual-e.appspot.com, the cookie item would fail at gold version(rc_11), but it would pass with qa version, from the souce code , it seemed the gold version will not support cookie feature, and if I keep the code of gold the…
bitchainer
  • 535
  • 2
  • 19