Simple Gstreamer pipeline with pipewiresrc and pipewiresink seems to corrupt the video
- PipeWire version (
pipewire --version
): 0.3.68 - Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
): Ubuntu 22.04.2 LTS - Desktop Environment: GNOME 42.5
- Kernel version (
uname -r
): 5.19.0-42-generic
Description of Problem:
I am starting with Pipewire / Gstreamer and I'm trying to set up 2 simple Gstreamer pipelines:
- One that takes in a video feed from a webcam, using pipewire src, then outputs it using pipewiresink. This will eventually have some processing in it, but for now I am just trying to get pipewire working,
- One that has a pipewire src that connects to the previous pipeline's pipewiresink, and uses autovideosink to display it
Here are the commands used:
gst-launch-1.0 pipewiresrc path=56 client-name=A_IN ! videoconvert ! pipewiresink mode=provide client-name=A_OUT
gst-launch-1.0 pipewiresrc path=66 ! videoconvert ! autovideosink
I noticed the QUANT and RATE look quite different between the webcam and the A_OUT. Not sure if this is expected.
S ID QUANT RATE WAIT BUSY W/Q B/Q ERR FORMAT NAME
S 28 0 0 --- --- --- --- 0 Dummy-Driver
S 29 0 0 --- --- --- --- 0 Freewheel-Driver
S 48 0 0 --- --- --- --- 0 Midi-Bridge
R 56 1 30 27.0us 1.2us 0.00 0.00 0 YUY2 640x480 v4l2_input.pci-0000_00_14.0-usb-0_10_1.0
R 47 0 0 16.8us 3.8us 0.00 0.00 0 YUY2 640x480 + A_IN
S 60 0 0 --- --- --- --- 0 alsa_input.usb-046d_0825_55647490-02.mono-fallb
S 62 0 0 --- --- --- --- 0 alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1
S 63 0 0 --- --- --- --- 0 alsa_output.usb-C-Media_Electronics_Inc._USB_Pn
S 64 0 0 --- --- --- --- 0 alsa_input.usb-C-Media_Electronics_Inc._USB_PnP
R 66 1024 48000 87.2us 1.7us 0.00 0.00 0 YUY2 640x480 A_OUT
R 44 0 0 20.1us 8.4us 0.00 0.00 0 YUY2 640x480 + gst-launch-1.0
I was unsure if I should use videoconvert in this case, but the behaviour is the same with and without them.
How Reproducible:
Happens every time
Steps to Reproduce:
-
gst-launch-1.0 pipewiresrc path=56 client-name=A_IN ! videoconvert ! pipewiresink mode=provide client-name=A_OUT
-
gst-launch-1.0 pipewiresrc path=44 ! videoconvert ! autovideosink
Actual Results:
Instead of the autovideosink showing the camera feed, the view looks as if it takes one horizontal line of the image and expands it vertically:
Expected Results:
I expected to get a video feed from the web camera
Additional Info (as attachments):
-
pw-dump > pw-dump.log
: pw-dump.log