conference logo

Playlist "Chemnitzer Linux-Tage 2023"

Kameras in Chromium mit PipeWire und xdg-desktop-portal

Michael Olbrich

Für Kameras verwendet Chromium die V4L2 Kernel API. Das funktioniert
prinzipiell ganz gut, kommt aber so langsam an seine Grenzen. Moderne
komplexe Kameras funktionieren zum Beispiel nicht mehr mit einem einfachen
V4L2 Device sondern müssen mit libcamera angesprochen werden. Und wenn
Chromium in einen Flatpack oder Snap Container eingesperrt ist, dann bietet
V2L2 keinerlei Möglichkeiten für dynamische Zugriffskontrolle.

Die Technologie, um diese Probleme zu lösen, existiert bereits:
xdg-desktop-portal implementiert die Zugriffskontrolle für Kameras und
delegiert dann den eigentliche Zugriff auf Kamera an PipeWire. Und PipeWire
unterstützt schon sowohl V4L2 als auch libcamera.

Vor über einem Jahr habe ich angefangen, Support dafür in Chromium zu
implementieren. Dieser Vortrag gibt einen Einblick in die verwendeten
Technologien, wie sie zusammenspielen, um Zugriff auf Kameras in Chromium zu
ermöglichen, und er erzählt die noch nicht abgeschlossene Geschichte der
Implementierung.