Hello,
I have been spending some time trying to get my laptop camera (sensor ov2740, Lenovo X1 Carbon 12th gen) to work.
I am running Tumbleweed and fully up to date (kernel 6.12.8-2-default). Support for this camera via ipu6 landed some weeks ago on mainline and has been improving since them, to the point people say it works on other distributions.
And indeed, libcamera seems to work nicely as it should:
gst-launch-1.0 libcamerasrc ! videoconvert ! glimagesink
← works.
The problems comes when trying to use Pipewire to access it (which should use libcamera under the hood):
gst-launch-1.0 pipewiresrc ! videoconvert ! glimagesink
gives:
ERROR: from element /GstPipeline:pipeline0/GstPipeWireSrc:pipewiresrc0: stream error: no more input formats
Additional debug info:
../src/gst/gstpipewiresrc.c(704): on_state_changed (): /GstPipeline:pipeline0/GstPipeWireSrc:pipewiresrc0
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstPipeWireSrc:pipewiresrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3177): gst_base_src_loop (): /GstPipeline:pipeline0/GstPipeWireSrc:pipewiresrc0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
No more input formats
is the same error that obs-studio gives, for example, when adding a Pipewire source. Needless to say, both Firefox and Google-chrome fail to work with Pipewire… same for the cheese
or snapshot
apps.
Any idea about what is going on with Pipewire here? Based on what I see on Arch, blogposts etc. from other distros, people are reporting success, specially once libcamera works. But I’m stuck with a non-working .