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 to know preload is finished on Cobalt at starboard layer?

For cobalt which support preload we send preload cmd to make cobalt preload and make it backgm after the preload is finished. But how to know the preload task has been finished ? Once I add my code at…
Devin
  • 1
  • 2
0
votes
1 answer

How can I get the chromium version which the Cobalt use

1.Cobalt is from chromium and it will always update the version. 2. So can I get the chromium version which cobalt use ? such as cobalt release 11 or cobalt 19. Thank you.
Devin
  • 1
  • 2
0
votes
1 answer

How UI and 360 video composite when play 360 video and pop the UI (Cobalt )

Now I have a problem that when the UI is poped, 360 video will shake and show poor quality picture. About UI and 360 video, they are showed by GPU(egl). So How they composite by GPU. Can you help mark the code position that UI and 360 video…
Devin
  • 1
  • 2
0
votes
1 answer

How to know the eme spec version from cobalt code or other?

how to clarify the eme version at cobalt version how to know cobalt from Chromium version Browser SDK version Chromium EME spec Cobalt 11.107588 ? ? Cobalt 11.153049 ? ? Cobalt 16.162639 ? …
Devin
  • 1
  • 2
0
votes
1 answer

How to reduce the memory usage of the Cobalt

We want to use the Cobalt to run YouTube application on our STB with only 256M in memory. Whether YouTube application supports 720P resolution or reduces application specifications, such as reducing image resolution, removing animation effects,…
Eric
  • 1
0
votes
1 answer

How to change or add parameter at argv and pass it to application.Run(argc,argv)

I want to Change the parameter between main(line23) and application.Run(argc,argv)(line31) argc and argv is passed by commandline, but I should judge the parameter before application.Run(), if the commandline has now --url, I should add --url=xx to…
Devin
  • 1
  • 2
0
votes
1 answer

Cobalt 17.180626 debug build Ubuntu 16.04 failing to load video

When loading a Youtube video on linux-x64x11 version of cobalt, Cobalt crashes. I am able to load the front page, see the thumbnails and search, however, upon clicking a video, I am sent to a loading screen with suggested videos and then the entire…
Alex
  • 1
0
votes
2 answers

How to Launch local url on Cobalt master 16

I want to use cobalt to launch local html page, So how can I launch local page by Cobalt 16 master. Sunch as ./cobalt --url=xxxxxxx.
Devin
  • 1
  • 2
0
votes
1 answer

Cobalt raspi-2_gold is unable to play video

When running raspi-2_gold of cobalt, it is unable to play the selected video. It is stuck at the black screen. What works: It is able to load all the thumbnails initially Able to select a video All video controls working fine Did try nerd stats, NO…
Midhun
  • 744
  • 2
  • 15
  • 31
0
votes
0 answers

Cobalt debug build for raspi failing to load video

I'm trying to run cobalt on raspi it loads youtube homepage by default. From that page I'm trying to select and play a video and then it crashes giving this error: [0612/083342:INFO:fetcher_factory.cc(94)] Fetching:…
Midhun
  • 744
  • 2
  • 15
  • 31
0
votes
2 answers

Encountered an error while compiling cobalt on raspberry pi

While compiling cobalt for raspberry pi on ninja, im getting an error like this: undefined reference to symbol 'eglCreateImageKHR' here is the full trace: [1/1] LINK cobalt FAILED: cobalt…
Midhun
  • 744
  • 2
  • 15
  • 31
0
votes
0 answers

Questions about tuning browse-to-watch memory

I'm looking at browse-to-watch performance, I am using image_cache_size_in_bytes = 7MB and remote_typeface_cache_size_in_bytes = 0MB , but the performance of browse-to-watch is lower than that of youtube-certi. (It takes about 6 seconds to 8…
0
votes
0 answers

did cobalt team release reference cobalt application with widevine?

currently we got one issue that cobalt source_buffer feed different encrypted inpput_buffer at same PTS. after decrypt them by widewine, we get wrong data to decode, the decrypted data also is different. we have to verify which part is broken. could…
0
votes
1 answer

Crash happened when switch Cobalt js engine to V8

To preview on Cobalt master(16.154703), everything works well with mosjs-45. But when we switch engine to V8, a crash occurred v8::internal::Factory::NewFixedArray() [0x8693f0] v8::internal::TemplateList::New()…
Ceri Ruan
  • 13
  • 3
0
votes
1 answer

How to disable the default F1 key behaviour in cobalt?

In the cobalt browser, when I press the F1 key, the browser automatically pop up a DevTools window. There are the following information in this window: Cobalt.Lifetime, DevTools.Server, Event.Duration.MainWebModule.keyDown etc. We want to disable…