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

Cobalt cann't open URLs without Content-Security-Policy setting

I found that cobalt can only open Youtube page, and can NOT open URLs without Content-Security-Policy setting in the response data or in the html page(eg
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Cobalt crash at start with font issue

When run cobalt, it will crash as follows, it seemed there need some font files, so what fonts does it need and where to put them?: Caught signal: SIGSEGV(11) SkFontMgr_CobaltDefaultFont() [0xcc6204] SkFontMgr_CobaltDefaultFont()…
user7539880
0
votes
2 answers

Where did the default Useragent of Cobalt come from?

When run the cobalt, I can see the useragent from the log: [0101/000230:INFO:application.cc(690)] User Agent: Mozilla/5.0 (DirectFB; Linux x86_64) Cobalt/4.13031-qa (unlike Gecko) Starboard/1 So where does it come from? Is there a way to change it?
user7539880
0
votes
1 answer

Crash at init time of Cobalt 8.20698

The latest version of Cobalt(8.20698) will crash at init time on arm linux platform, the backtrace is as follows, but the old version doesn't has this issue, could anyone help to have a look? [00000000] *pgd=0dce6831, *pte=00000000,…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

How to Print the backtrace of the fucntion call suquence in Cobalt with QA version?

The base::debug::StackTrace can NOT print the Backtrace of function call sequence neither by the interface PrintBacktrace() or OutputToStream() with Cobalt QA version, so is there a way to print the backtrace with Cobalt QA version?
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

which ffmpeg version for cobalt on arm?

when we build cobalt with arm toolchain, we got some error compilation messages as below. ffmpeg_video_decoder.cc:41:33: error: 'PIX_FMT_YUV420P' was not declared in this scope ffmpeg_video_decoder.cc:61:10: error: 'AVFrame {aka struct AVFrame}' has…
0
votes
1 answer

Will Cobalt provide reference cdm (content decryption module) for widevine/playerady drm porting?

As far as I know, cobalt will support widevine/playready drm playback, and we are trying to port on our platform with TEE support. We have already done the starboard/player.h porting and I want to say the reference code for player did a great help!…
ccy
  • 28
  • 2
0
votes
1 answer

build Raspberry with new config (Pi2)

We want to build cobalt with arm toolchain for arm chip. First, we reference this link "How to build for Raspberry Pi2" Then, we set RASPI_HOME="./",create a folder "./sysroot", replace "raspi-1_" with "raspi-2_" in 1gyp_configuration.gypi1 and…
0
votes
2 answers

How to build for Raspberry Pi2

When I try to build for Raspberry Pi2, the option is raspi-2, right? $ gyp_cobalt raspi-2 $ ninja -C out/raspi-2_debug cobalt
-1
votes
1 answer

Cobalt is it built under which architecture?

Can someone help me understand cobalt architecture or give me some tutorials to learn ? Thanks.
AmalGH
  • 1
-1
votes
1 answer

Drm video stops after 2 minutes of playing

Cobalt 19.lts.2.188191. I am used default implementation of Widevine L3. After 2-3 minutes the DRM video playing stops. This issue manifests itself in the following…
-1
votes
1 answer

How to Change Cobalt launch URL and parameter on starboard layer?

Steps to reproduce: Launch Cobalt with different url config It can select url by priority from /3rd/url.url 、command line、profile to default url Expected result: We can config the launch URL on straboard layer, not just by…
Devin
  • 1
  • 2
-1
votes
1 answer

Questions about Cobalt fonts

I would like to use only English and Korean fonts to further reduce memory in Cobalt, but can I see where the font control is? Are Indic languages not supported? cobalt version - 11.78444
-1
votes
2 answers

about 4k video error in Cobalt browser

Current status -current status image Desired result -I wish the video was played without stopping. During the 4k video test in Cobalt version (10.52708), the video stops after a certain amount of time and only the loading progress is returned. Did…
joshua787
  • 11
  • 6
-1
votes
1 answer

ERROR:savegame_thread.cc(106)] Save failed

[0411/152557:INFO:application.cc(729)] User Agent: Mozilla/5.0 (Linux mipsel) Cobalt/9.28152-debug (unlike Gecko) Starboard/4 [0411/152557:INFO:debug_web_server.cc(312)] Debug web server running at:…
1 2 3
14
15