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

UA String failed,prompt Invalid Device type

We set it "TPV_linux", but we found UA String failed. We checked the underscore "" and found that it was half-width "" rather than full-size "_", so it should not fail. We do not understand what caused this, can you help to check?
0
votes
0 answers

cobalt built with asan can't start up

we build cobalt(RELEASE_9) with asan by "-fsanitize=address -fno-omit-frame-pointer " on our target(arm). but our target is not powerful, CPU has 4 core with clock 1GHz. but cobalt always quit after render Youtube logo(red UI). we found cobalt…
0
votes
1 answer

Cobalt video Punchthrough not working with DirectFB

We are currently using the cobalt 13.108984 build and are using the DirectFB implementation for a MIPS STB platform. We are currently implementing our starboard player and we are using kSbPlayerOutputModePunchOut. Currently we are not getting the…
0
votes
1 answer

Can I connect to a WebApp other than Youtube TV using Cobalt's websocket?

Is websocket currently implemented in Cobalt (11.107787)? Can I connect to a WebApp other than Youtube TV using Cobalt's websocket? What should I do test if possible?
0
votes
1 answer

React component isn't updated in Cobalt on component's state change

I'm creating a small application for Cobalt using React. Everything looks good for now except of one thing: I can't make rerendered small piece of HTML on component's state change. I have a menu on the left and related component/HTML on the right…
Evgeniy
  • 540
  • 4
  • 17
0
votes
0 answers

SbSocketResolveTest.IgnoreExtraBits test fail with NPLB

The SbSocketResolveTest.IgnoreExtraBits test case of cobalt release 11 would be probabilistic failed(sometimes would pass) with the same platform and the same binary, from the test code in socket_resolve.cc it can see that when the filters is set to…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

3 test cases would fail with SbSocketGetInterfaceAddressTest in NPLB

we run the nplb test both on the x86-x11 and arm-linux plarform with cobalt Release 11.104700 version, the SbSocketGetInterfaceAddressTest test would both fail, so it seemed to be the issue of NPLB itself, can someone have a look? [ FAILED ]…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

The AlignAsStackVariable test failed with nplb

With cobalt release 11, the AlignAsStackVariable test with NPLB would fail, but when we copy the test code from nplb test file(starboard/nplb/align_test.cc) , cross compile it and run it on the same arm platform, then it's aligned as expected, so it…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Javascript - Clicks and key events don't work in Cobalt

I'm quite nooby in using Cobalt. I try to create a simple app (just couple of pages) using HTML, CSS and JS. Static content looks fine in Cobalt. But mouse clicks and events from keyboard aren't handled. I mean code…
Evgeniy
  • 540
  • 4
  • 17
0
votes
0 answers

Why cannot open HDR test page abnormally

When opening the HDR test page, the page flow is suspended and video cannot be played properly. From the log, MediaSource.isTypeSupported detection is not performed and flow cannot enter the video download procedure and the subsequent actions are…
Eric
  • 1
0
votes
1 answer

Can cobalt pass the error type when kSbSystemPlatformErrorTypeConnectionError happended?

For SSL test cases, it need to show system error dialogues, but in SbSystemRaisePlatformError, there is no detail error type to indicate which kind of error happend. And for preload case, if there is no network, it need to exit cobalt process, so…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Is there any side effect that if set the dir_source_root to the root directory of the system?

Now the dir_source_root is set to the directory where the cobalt binary laid, and it can not load the local resources(pictures/html pages) in other place expect the cobalt directory, so is there any side effect that if we set the dir_source_root to…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

4 items failed with the test of https://2018-dot-qual-e.appspot.com in cobalt RC_11 11.99532

We tested the https://2018-dot-qual-e.appspot.com with cobalt rc_11 11.99532 qa version on arm-linux platform, but the following 4 items would fail, could anyone help to have a look? 1. Conformance -> Functionality & MSE/EME 1.1 Item 'CSP…
bitchainer
  • 535
  • 2
  • 19
0
votes
1 answer

Scenarios for On-Device Speech-to-Text Support

// Whether the current platform has microphone supported. #define SB_HAS_MICROPHONE 0 // Whether the current platform has speech recognizer. #define SB_HAS_SPEECH_RECOGNIZER 0 // Whether the current platform has speech synthesis. #define…
0
votes
1 answer

Questions about cobalt youtube logo

cobalt The youtube logo is missing when it start, a. Please use the correct YouTube TV app launcher logo from the link below: (http://www.youtube.com/yt/brand/device.html) Do I need to use the youtube logo after making a brand request at the url…