Skip to content

Build cleanups and Pipewire/xdg-portal preparations

Robert Mader requested to merge rmader/camera:build-improvements into master

From the main commit:

Only allowing access to the Pipewire socket effectively archives the
same as using the xdg-[camera|device]-portal, just leaving out socket
restriction. Doing so has several benefits:
 - Reduced complexity as only a single Gstreamer backend is used.
 - It's a good preparation to transition to the portal.
 - Blocking other apps from using the camera at the same time becomes
   less likely.
 - Pipewire can control which cameras are advertised in a central place,
   making it easy to only advertise known working ones. Notably enforcing
   the libcamera backend is simplified, which is necessary for many
   modern/complex cameras often found in mobile devices.
 - It helps testing and stabilizing Pipewire as camera host.

The main motivation of mine here is:

  • getting the app closer to a state where it can be released on Flathub
  • turning it into the go-to app to test Pipewire/libcamera on mobile devices

I've been using this on a Pinephone Pro to test pending libcamera, Pipewire and kernel patches, and would love to make that easier for others as well going forward.

Merge request reports