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
6
votes
1 answer

Is there is way to optimize skia::flush time cost?

We have two different platform and with CPU frequency the same setting, and found the time cost of canvas->flush() on the rasterizer thread has huge difference at YT start time, the quick one only has 1.632ms at most time, and the slow one has…
bitchainer
  • 535
  • 2
  • 19
4
votes
1 answer

Error while building cobalt. ccache error starboard-toolchains

I am currently at step #2 in Build and Run Cobalt at https://cobalt.dev/development/setup-linux.html#build-and-run-cobalt. Here is the log aivan@DESKTOP-G1SFK1K:~/Development/PL/cobalt$ python cobalt/build/gn.py -p linux-x64x11 gn gen…
Aivan Monceller
  • 4,636
  • 10
  • 42
  • 69
4
votes
1 answer

How to build cobalt as a shared library?

I want to integrate cobalt as a browser in my project.The plan is to do this by having cobalt as a shared library. A detailed explanation would be appreciated. My specific question would be as to how can i build the cobalt browser as a shared…
Midhun
  • 744
  • 2
  • 15
  • 31
3
votes
1 answer

Balance plot from R package CBPS

is anyone here familiar with the 'Cobalt' package in R? I am trying to change the title of a balance plot (using bal.plot) and for some reason it's not taking the 'title' option. The default title Distributional Balance for "prop.score" is shown…
a_todd12
  • 449
  • 2
  • 12
3
votes
2 answers

Do Cobalt support "qual-e"(YouTube Qualification Engine) page?

Can cobalt enter the YouTube Qualification Engine page? (http://2016.qual-e.appspot.com/) If yes, how can I enter this page for testing?
Charlie
  • 53
  • 4
2
votes
1 answer

Cobalt app support for Android touch screen devices

As of now , cobalt app works fine with RCU for Android TV's. If we try to test the same app in any touch screen devices, functionality doesn't works properly. Is there any way to build Android cobalt app for touch screen devices. Below are the major…
2
votes
0 answers

how to set SbDecodeTargetInfo for cobalt decode to texture?

I implement the cobalt spherical feature. It work correctly for 1080p video, but if I play another resolution video such as 480p, the video is reversed.The test video is from https://ytlr-cert.appspot.com/2019/main.html the format is YUVNV12. I…
Kevin
  • 21
  • 4
2
votes
2 answers

How to import youtube account and password from other browsers to cobalt

We need to change the browser used by youtube from another browser to use cobalt. During the software upgrade, we need to import youtube account and password into cobalt.So,how do we import the data into the cobalt? I know that cobalt can support…
2
votes
1 answer

Issue with running Cobalt built with linux-x64x11 config

I'm trying to run current Cobalt trunk (12.81256) on Ubuntu 16.04. but it fails: [0814/100203:FATAL:graphics_system.cc(130)] Check failed: 1 == num_configs (1 vs. 0) base::debug::StackTrace::StackTrace()…
lmilko
  • 53
  • 4
2
votes
1 answer

Video playback issue

[cobalt] we are trying to implement starboard player module. When we start playing a YT clear content, we could hear the audio in the background, but we could not see the any video (we only see the spinning wheel on screen). If we disable the…
OpentV
  • 21
  • 1
2
votes
2 answers

Cobalt 10.49488 can not render "http://qual-e.appspot.com"

we checkout the latest version Import Cobalt 10.49488 and built it. Cobalt still not render qual-e page. Did this version support http://qual-e.appspot.com or we still need to wait next ? Test command: ./cobalt --allow_http --csp_mode=disable…
2
votes
1 answer

Best way to handle buffer under-runs?

I'm implementing the media handlers in Starboard, and I'm running into a situation where my client application in Cobalt doesn't buffer content aggressively enough. This results in it just idling with an empty buffer. What is the proper Starboard…
Rick Viscomi
  • 8,180
  • 4
  • 35
  • 50
1
vote
0 answers

Cobalt cross-compiliation gives strange result on ARM platform

We've got problem when cross-compiling cobalt (cobalt.foo) for arm. For mipsel it works great, but when cross-compiling for armv7-a, when optimization flags are set, we got strange result. Terminal output: #…
konrc
  • 11
  • 2
1
vote
1 answer

[cobalt]Automatically YouTube video goes to Pause Mode

When we execute 12H Endurance test from YouTube 2019 Manual test link video goes to pause mode after playing some videos in the playlist and we can see the popup saying “…paused. Continue watching?” We are assuming it is coming from YouTube app.…
1
vote
1 answer

Does Cobalt support web components (e.g. do Polymer/lit-element work)?

I know Cobalt has a list of supported features (https://cobalt.foo/development/reference/supported-features.html) but the list of Web APIs seem small. Does Polymer/lit-element work with Cobalt?
pwf
  • 11
  • 1
1
2 3
14 15