Brussels / 4 & 5 February 2023


Modern Camera Handling in Chromium

Implementing Camera Access with xdg-desktop-portal and PipeWire in Chromium

Chromium has used V4L2 for cameras for many years and it works reasonably  well. Modern complex cameras are no longer a simple V4L2 device. libcamera  must be used instead. For Chromium in a Flatpak or Snap container it would  be nice to manage camera access at runtime. Or let's have some fun and use  an arbitrary video stream as a camera.

So the goal was to implement some kind of high-level camera interface. The  choice of technology was easy: xdg-desktop-portal is already used for  screen sharing and it has support for cameras as well. And PipeWire, the  media daemon that handles the camera already supports libcamera. 

I started the implementation more than a year ago and it is still ongoing.  This presentation gives an overview of the technologies involved, how it  fits all together and the story of the long and winding road to implement  this in Chromium.


Michael Olbrich