All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleksandr Natalenko <oleksandr@natalenko.name>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Gergo Koteles <soyer@irl.hu>,
	Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	Jarkko Sakkinen <jarkko@kernel.org>,
	linux-media@vger.kernel.org, jani.nikula@linux.intel.com,
	anisse@astier.eu, Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil@kernel.org>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
	Ricardo Ribalda <ribalda@chromium.org>,
	open list <linux-kernel@vger.kernel.org>,
	Nicolas Dufresne <nicolas@ndufresne.ca>
Subject: Re: [RFC PATCH] media: Virtual camera driver
Date: Tue, 03 Feb 2026 22:39:41 +0100	[thread overview]
Message-ID: <6235268.lOV4Wx5bFT@natalenko.name> (raw)
In-Reply-To: <20260203203648.GA56480@killaraus>

[-- Attachment #1: Type: text/plain, Size: 2992 bytes --]

On úterý 3. února 2026 21:36:48, středoevropský standardní čas Laurent Pinchart wrote:
> On Tue, Feb 03, 2026 at 04:53:41PM +0200, Laurent Pinchart wrote:
> > On Tue, Feb 03, 2026 at 03:38:06PM +0100, Oleksandr Natalenko wrote:
> > > 
> > > Just to share my current state of affairs:
> > > 
> > > * sender:
> > > 
> > > $ gst-launch-1.0 pipewiresrc path=<webcam_id> ! video/x-h264, width=1280, height=720, framerate=24/1 ! rtph264pay ! rtpstreampay ! udpsink host=<receiver_host> port=<receiver_port>
> > > 
> > > * receiver:
> > > 
> > > $ gst-launch-1.0 udpsrc address=<receiver_host> port=<receiver_port> ! queue ! application/x-rtp-stream,encoding-name=H264 ! rtpstreamdepay ! application/x-rtp,encoding-name=H264 ! rtph264depay ! h264parse ! openh264dec ! pipewiresink mode=provide stream-properties="properties,media.class=Video/Source,media.role=Camera" client-name=VirtualCam
> > > 
> > > I chose H.264 because of much lower (tenfold) traffic comparing to
> > > MJPEG, wrapped this into RTP, opted in for OpenH264 decoder because I
> > > read it was handling low latency streams better than avdec_h264, and
> > > tested this setup with both Firefox and Chromium, and it actually
> > > worked pretty reliably, so I'm impressed now.
> > 
> > Thank you for the update. I'll give this a try.
> 
> I've tried those, but as soon as Firefox is connecting, I get
> 
> 0:00:03.569028999 131465 0x7f85cc002030 DEBUG           pipewiresink gstpipewiresink.c:692:on_state_changed:<pipewiresink0> got stream state "error" (-1)
> 0:00:03.569060959 131465 0x7f85cc002030 DEBUG           pipewiresink gstpipewiresink.c:692:on_state_changed:<pipewiresink0> got stream state "error" (-1)
> 0:00:03.569070767 131465 0x7f85cc002030 WARN            pipewiresink gstpipewiresink.c:710:on_state_changed:<pipewiresink0> error: stream error: no more input formats
> ERROR: from element /GstPipeline:pipeline0/GstPipeWireSink:pipewiresink0: stream error: no more input formats
> Additional debug info:
> ../pipewire-1.4.9/src/gst/gstpipewiresink.c(710): on_state_changed (): /GstPipeline:pipeline0/GstPipeWireSink:pipewiresink0
> 
> Maybe I should try the pipewire master branch.

I'd be glad to help, but my understanding of this "stream error: no more input formats" boils down only to the absence of caps identifiers (like those "application/x-rtp-stream"blahblah), which is not the case here. Also, Firefox behaves differently from Chrome when using sites like webcamtests, and also when using google meet. I may speculate Firefox more eagerly closes link to a pipewire node, but I have no knowledge of this at all.

That said, "pretty reliably" doesn't mean without issues whatsoever, and I manage to crash both Chrome and Firefox from time to time while experimenting with pipelines. Probably because I occasionally unintentionally feed some crap into the pipewire sink.

FWIW, I'm using 1:1.4.10-2 pipewire packages from Arch.

-- 
Oleksandr Natalenko, MSE

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2026-02-03 21:39 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-01 13:33 [RFC PATCH] media: Virtual camera driver Jarkko Sakkinen
2026-02-01 18:20 ` Laurent Pinchart
2026-02-01 19:04   ` Jarkko Sakkinen
2026-02-01 20:06     ` Laurent Pinchart
2026-02-01 20:14       ` Oleksandr Natalenko
2026-02-01 20:21         ` Mauro Carvalho Chehab
2026-02-01 20:26           ` Oleksandr Natalenko
2026-02-01 23:17             ` Mauro Carvalho Chehab
2026-02-01 23:17               ` Mauro Carvalho Chehab
2026-02-01 23:25               ` Oleksandr Natalenko
2026-02-02  1:02                 ` Mauro Carvalho Chehab
2026-02-02  7:16                   ` Oleksandr Natalenko
2026-02-02 11:41                     ` Laurent Pinchart
2026-02-02  9:05                   ` Jarkko Sakkinen
2026-02-02  9:19                     ` Jarkko Sakkinen
2026-02-02 11:43                       ` Laurent Pinchart
2026-02-02 11:36                   ` Gergo Koteles
2026-02-02 11:40                     ` Laurent Pinchart
2026-02-02 11:45                       ` Oleksandr Natalenko
2026-02-03  1:23                         ` Laurent Pinchart
2026-02-03 14:38                           ` Oleksandr Natalenko
2026-02-03 14:53                             ` Laurent Pinchart
2026-02-03 20:36                               ` Laurent Pinchart
2026-02-03 21:39                                 ` Oleksandr Natalenko [this message]
2026-02-03 21:49                                   ` Laurent Pinchart
2026-02-03 20:49                               ` Laurent Pinchart
2026-04-06 12:23                                 ` Oleksandr Natalenko
2026-04-06 12:37                                   ` Laurent Pinchart
2026-02-01 20:22         ` Laurent Pinchart
2026-02-01 20:27           ` Oleksandr Natalenko
2026-02-01 20:41             ` Laurent Pinchart
2026-02-01 20:35       ` Jarkko Sakkinen
2026-02-01 20:54         ` Jarkko Sakkinen
2026-02-01 21:09           ` Laurent Pinchart
2026-02-02  1:44             ` Jarkko Sakkinen
2026-02-01 21:01         ` Laurent Pinchart
2026-02-01 22:03           ` Jarkko Sakkinen
2026-02-03  9:50       ` Jani Nikula
2026-02-03 15:06         ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6235268.lOV4Wx5bFT@natalenko.name \
    --to=oleksandr@natalenko.name \
    --cc=anisse@astier.eu \
    --cc=hverkuil@kernel.org \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=jani.nikula@linux.intel.com \
    --cc=jarkko@kernel.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab+huawei@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=nicolas@ndufresne.ca \
    --cc=ribalda@chromium.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=soyer@irl.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.