Since pipewire supports v4l and gstreamer it is possible to capture video without gst-plugins-v4l2. If the both installed then by default pipewire gst plugin has used. Seems the next lines to the RDEPEND should be added: || ( media-video/pipewire[gstreamer,v4l] >=media-plugins/gst-plugins-v4l2-1.4:1.0 ) Although I'm not sure if using the pipewire for cheese would be acceptable right now, as in my case it cause some video recording problems. I would prefer to stay with gst-plugins-v4l2, but I don’t know how to change the default settings to use it instead of pipewire if the both installed. Reproducible: Always
Looks like it's there for camerabin to actually have something to capture things with, and indeed with pipewire it just picks pipewiresrc instead and doesn't initialize v4l2 elements at all.
Perhaps, along with the cheese RDEPEND change, "media-video/pipewire -gstreamer" should be added into the Gentoo desktop profiles.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=40e38423f0a01fe541251f8d543dcc9506f494a3 commit 40e38423f0a01fe541251f8d543dcc9506f494a3 Author: Mart Raudsepp <leio@gentoo.org> AuthorDate: 2021-12-26 22:30:54 +0000 Commit: Mart Raudsepp <leio@gentoo.org> CommitDate: 2021-12-26 22:30:54 +0000 media-video/cheese: allow pipewiresrc as camerabin provider If pipewiresrc is present, camerabin seems to pick it. Allow uninstalling gst-plugins-v4l2 in such cases by listing both options. gst-plugins-v4l2 is kept as the first choice to avoid a USE flag for now and just allow pipewire at runtime as an option, if already present. This could/should change and be revisited later. Bug: https://bugs.gentoo.org/830018 Package-Manager: Portage-3.0.20, Repoman-3.0.2 Signed-off-by: Mart Raudsepp <leio@gentoo.org> media-video/cheese/cheese-41.1.ebuild | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
Out of other gst-plugins-v4l2 dependents, empathy seems to use it directly and pitivi doesn't use either directly, so need to track down why it's a dependency there in the first place. Maybe something used by gstreamer-editing-services for pitivi use cases
As a work-around it should be possible to route a V4L2 client to PipeWire (and avoid clashing over hardware control) by using the pw-v4l2 wrapper e.g.: pw-v4l2 cheese