Idea: Replace camerabin with multiple pipewire sources
Just dumping some thoughts here: while camerabin
was helpful to get things running, we're getting to a point where it might be better to handle stream management exclusively in aperture instead. One of the main features of camerabin
is that it can handle running a viewfinder and recording/capturing at the same time, from a single source. By exclusively using Pipewire, we don't actually need that - it perfectly supports serving multiple clients from the same camera. Specifically with https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1956 and !239, creating/starting dedicated pipewiresrc
s on demand for capturing/recording should be fast/instant enough to not require reusing the viewfinder stream any more.
Doing so should give us way more flexibility to optimize the individual pipelines (for viewfinder, image capturing and video recording) as they could run basically independent from each other - potentially even in their own processes. On the architecture side it might well turn out to be simpler as well. But most crucially, we would stop relying on a Gst element that barely sees any development or maintenance these days - and is dependent on Gstreamer releases, which don't happen very often.