Camera problems (ipu6, ov2740): libcamera works, pipewire does not work

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 .

I’m confused, now. I thought pipewire was for sound only.

No, it does general multimedia stuff now, including camera and screen capture I think.

Oh! Cool. Thanks for the update.

Which DE?

https://software.opensuse.org/package/gstreamer-plugin-pipewire

Which DE?

What?

This is installed in its latest version from the Tumbleweed repo.

I already said that I use TW, and the post is tagged accordingly. I am already aware of those convos on other distros. Most of that info is outdated, given that things have been upstreamed etc. and people are not discussing what happens to me on Opensuse TW: libcamera working but not the pipewire side of the equation.

It would be good to know if someone, particularly someone with the ov2740 sensor, has pipewire/firefox/chrome/obs-studio camera working on TW, and whether they did something special.