Chromium: a new media Backend based on GStreamer

Loading Click here to add:
Add to notification list

The GStreamer backend has to follow chromium's multiprocess and sandboxing architecture. Unlike in webkit based browsers, GStreamer pipelines cannot live in the tab-specific processes (Render processes). Chromium design and rules require a different approach than WebKit-based browsers. We will explain why it cannot live in any of the existing processes (Browser process, Renderer Process, GPU Process).

For the sake of the project this new backend must be as efficient as existing media backends in chromium (ffmpeg, chunk demuxers, HW decoder wrappers). One of the purpose of using GStreamer is also to re-use HW decoder elements it provides (gst-v4l2, gstreamer-vaapi, gst-omx, ...).

We will detail how the Media Process interacts with other processes using chromium IPC api and how GstPlayer is integrated. We will describe the sandbox policies we defined for the Media Process and how it blocks or filters system calls. We will explain how the GStreamer pipelines get data from the web through Browser Process to respect sandbox restrictions. Due to sandbox restrictions we will describe how GstGL can access the chromium GPU process to produces OpenGL textures.