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
1
vote
1 answer

Does Cobalt support 2017 EME?

I can find the interface as follow: partial interface Navigator { Promise requestMediaKeySystemAccess (DOMString keySystem, sequence supportedConfigurations); }; This interface is specified by…
ruili
  • 11
  • 1
1
vote
1 answer

[Cobalt]Does cobalt can support the YUVNV12 format?

From the Cobalt 10.55341, there defined the SbDecodeTargetFormat2PlaneYUVNV12 format in SbDecodeTargetFormat in starboard/decode_target.h, but after searching through cobalt source code, there is no place to use the…
bitchainer
  • 535
  • 2
  • 19
1
vote
2 answers

Unable to launch a webpage other than youtube app using cobalt browser

I have followed the steps given in cobalt.googlesource.com to build the cobalt browser. It does launch Youtube app successfully. But when I try to launch a web page such as https://www.google.com, it ignores the pointed URL and always launches the…
KRR
  • 29
  • 7
1
vote
1 answer

youtube media source not come in

I have ported Cobalt8 code onto our embedded system, and it is now able to decode VP9 up to 4k quality. However, I ran into an issue with fast forward and rewind. Specially, when I fast forward a few times and then followed by a…
1
vote
1 answer

Can dial smooth-pairing worked?

I can pair the phone with tv by url paremeter setting. example: https://www.youtube.com/tv?pairingCode=xxxxx However, when I launch cobalt first, and then pairing by pushing the cast icon on phone. It can not paring tv and phone. Can the…
Charlie
  • 53
  • 4
1
vote
1 answer

compile error in base/cpu.cc:71:4 with Cobalt

It said "impossible constraint in 'asm' error in base/cpu.cc:71:4, when compiled with Cobalt, after check the fluent, I found it may need to set the CPU ARCH, but I didn't not know where to set it, can anyone help me? The details error info is as…
user7539880
1
vote
1 answer

grammar.y error happended when compiled Cobalt

When compile Cobalt, the following error happend, is there anyone who knows why? It said the 'ShadowType' is not a class or namespace in grammy.y:3421, I did not know what is used for grammy.y, and try to trace and modify the code, it does not…
user7539880
1
vote
1 answer

How to integrate our own player with Cobalt

From the souce code of Cobalt, it can been seen that it used the ffmpeg related libraries(eg libasound/libavcodec/libavresample/libavutil...) to decode and render/play the video/audio as its own player(pull mode/push mode), as the playback code is…
bitchainer
  • 535
  • 2
  • 19
1
vote
1 answer

Do Cobalt fullly support the remote debug function as Chrome dev tool on Windows?

Is the remote debug function of Cobalt fully supported(Such as Source/Network/Timeline/Console items) as Chrome dev tool on Windows? We can connect the Cobalt on the ARM device with chrome on Windows PC by remote debug function of Cobalt, and we…
bitchainer
  • 535
  • 2
  • 19
1
vote
1 answer

did cobalt support codecs "opus"?

we try to enable codec "opus" in isTypeSupported() to stream opus data. but Youtube will raise an error message. after we trace cobalt source code, cobalt didn't deliver data by AudioRenderer::WriteSample(). and we found cobalt did not compile…
1
vote
1 answer

DIAL with Cobalt

Cobalt can default load the URL. We are investigating how to add the DIAL paring code to the URL. Maybe it needs a changeURL API for avoiding re-launching YouTube. // Restrict navigation to a couple of whitelisted URLs by default. const char…
Topi.chen
  • 21
  • 2
1
vote
1 answer

Cobalt needs to upgrade EME APIs

We found why we can playback the purchased videos of YTTV, but cannot test EME website. Because SourceBuffer::appendBuffer is used in 2017 EME test website, but YTTV home page can automatically select the old API if SourceBuffer::appendBuffer does…
Topi.chen
  • 21
  • 2
1
vote
1 answer

Could we change protobuf version of cobalt?

could we change protobuf version of cobalt ? current protobuf is 2.4, but widevine(2.0.8) need protobuf version 2.5. in google_streaming_api.pb.h, it hard coded "2004000" and warn us "DO NOT EDIT!" at top. could you give us some suggestion?
1
vote
1 answer

The performance to handle key up/down on cobalt browser

I tried cobalt browser on our platform (arm-v8 linux), and I found the key response is a little bit slow. When pressing up/down key on the youtube home page, it takes 200ms-400ms from InjectKeyboardEvent to DoLayoutAndProduceRenderTree, and…
Peggy Chen
  • 13
  • 3
1
vote
1 answer

did cobalt have some function for pre-launch it?

in Youtube of QT version, it support suspend function for pre-launch Youtube. pre-launch mean we will launch cobalt in the background before user launch it, so it can't display anything. did cobalt have some function for pre-launch it? if yes,…
1 2
3
14 15