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 transfer system language settings to cobalt

For example, our whole system set language to swe, then I want to let YouTube UI also show in Swedish. But no find API to do so.
0
votes
1 answer

Why cobalt performs much better than chromium in Youtube on embedded system like STB?

Could anybody please tell me, compared to chromium, what is the simplification of the cobalt to fit the embedded system of the set-top box for better display?
Fryant
  • 1
0
votes
0 answers

Facing youtube playback problem after 1 min

I have been porting the Cobalt11 code into our embedded system and video playback get stopped after 1min. Can anyone support me to solve this issue?
0
votes
1 answer

Application lifecycle test when togging system menus: screen goes black when onvisibilityChange:hidden

I am integrating youtube on cobalt 11. And now I'm testing the application lifecycle test. I send the suspend event when I push the menu button (youtube goes to background) I send the unpause event when I switch back to youtube. (youtube comes to…
0
votes
0 answers

Input Latency not updated for Browse-To-Watch

Herewith we are currently using the Cobalt-11.153049 for YouTube application and input latency is not updated for the Browse-to-Watch application URL due to keydown start time stat which is smaller than animation start time stat and also animations…
0
votes
1 answer

The cobalt can not run successfully when the network is IPV6

Cobalt cannot run successfully when we connect to IPV6 network.I found that the log will print as follows: [16:19:42][cobalt]>[0822/081942:ERROR:h5vcc_url_handler.cc(122)] Stop after network…
0
votes
1 answer

Drop frame testcase get failed in Qual-E

We are facing the frame drop testcase failure in Playback Rate -> Playback perf on Qual-E. From the test script, we found the FrameDrop (1. FrameDrop) test case and HFR testcase (97. PlaybackPerf.H264.1080p60@2X) uses the same content but the…
0
votes
2 answers

How cobalt gold version can render the http page?

The cobalt version is release 11.153, I used the qa version, it can render the http page. But if I use the gold version, it can not render the same http page. I also add the launch parameters --allow_http --csp_mode=disable…
Devin
  • 1
  • 2
0
votes
1 answer

How can I move cobalt content file to another path

As we know, When compiling Cobalt, resource files are located in content directory of the output directory(ex: out/linux-x64x11_qa). we have to copy cobalt execution file and content directory in the same directory when running cobalt on another…
Eleven Ji
  • 1
  • 3
0
votes
3 answers

360 degree video stalling in youtube application

Herewith we are facing the data stalling in 360 video in youtube application and also observed in more content for example videoID of 'HemwKBjQ0Uc'(【VR】Elemental Demo - 60fps 4k 8k Stereo 360 with Ambisonic audio). In problematic case, buffer is…
0
votes
2 answers

Optimal Resolution not updated in youtube application

We are currently using Cobalt13.111497 version for our YouTube Playback. In this Cobalt version, when we try to play the video ID of '1w4zhAtBl3k' and 'Tqh-etL9ehu', optimal resolution has not been updated for Codec of VP9(242) & opus(251). For our…
0
votes
0 answers

cobalt create surface on android

I want to port cobalt to Android, After solving many compilation problems, my cobalt has already run on the Android, but there is an error has occurred when invoking eglMakeCurrent. This is my mainly codes for creating…
Eleven Ji
  • 1
  • 3
0
votes
1 answer

Is SbDrmServerCertificateUpdatedFunc properly implemented?

Currently developing cobalt 19.lts.1.183273. In this version, I confirmed that a new UpdateServerCertificate has been added. I called the SbDrmServerCertificateUpdatedFunc callback function. typedef void…
0
votes
1 answer

How to know Cobalt state at starboard layer?

How can we get cobalt page loading state from starboard ? We want to exit Cobalt application If network error message received in star board during app launch So for this we want to know Cobalt app state in starboard.
0
votes
0 answers

How to switch JS engine from SpiderMonkey to V8

I have modified the GetVariables() method in my gyp_configuration.py file and ensured that the variables dictionary that is returned contains the following key/value pairs: 'javascript_engine': 'v8', 'cobalt_enable_jit': 1, But I still can't…
Eric
  • 1