public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: johannes.goede@oss.qualcomm.com
Cc: Jani Nikula <jani.nikula@linux.intel.com>,
	Jarkko Sakkinen <jarkko@kernel.org>,
	linux-media@vger.kernel.org, anisse@astier.eu,
	oleksandr@natalenko.name, linux-integrity@vger.kernel.org,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil@kernel.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	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>
Subject: Re: [RFC PATCH v2] media: Virtual camera driver
Date: Tue, 3 Feb 2026 16:25:44 +0100	[thread overview]
Message-ID: <20260203162544.09635a09@foz.lan> (raw)
In-Reply-To: <c6b5832f-d7b3-4bc2-834e-4ce7b0c0b4cd@oss.qualcomm.com>

On Tue, 3 Feb 2026 15:19:13 +0100
johannes.goede@oss.qualcomm.com wrote:

> Hi Jani,
> 
> On 3-Feb-26 14:20, Jani Nikula wrote:
> > On Tue, 03 Feb 2026, johannes.goede@oss.qualcomm.com wrote:  
> >> The problem is that what you're suggesting is basically a much
> >> improved (using dma-buf is way better) v4l2-loopback driver and
> >> v4l2-loopback has been blocked from getting merged into the kernel
> >> because besides the mobile-phone camera use, the other main use-case
> >> is to allow running proprietary camera stacks like Intel's proprietary
> >> camerastack and then presenting that to userspace as a standard v4l2
> >> cam so that userspace apps will just work.  
> > 
> > ...
> >   
> >> The community concensus is that the solution here is for apps to
> >> access cameras through pipewire. Together with the shift of laptops
> >> cameras from UVC to "raw" MIPI cameras there also is a shift to
> >> running applications sandboxed as flatpacks because of the changing
> >> "cyber" security landscape. This is why pipewire was chosen because
> >> it also solves the accessing cameras from a sandbox issue.  
> > 
> > Why is v4l2-loopback problematic from the perspective of facilitating
> > running proprietary camera stacks, but pipewire isn't?  
> 
> Once pipewire mostly works everywhere for camera access then indeed
> this will allow proprietary stacks to present themselves as a pipewire src.
> For now though most proprietary stacks seem to prefer v4l2loopback because
> pipewire is not supported as camera source yet by a lot of apps.
> 
> As I indicated in my original email personally I'm a bit divided on
> whether a virtual camera driver should be kept out of the kernel
> to not promote proprietary userspace stacks, but this is not my call.
> 
> OTHO evdi: https://github.com/DisplayLink/evdi has been kept out
> of the kernel for pretty much the same reasons by the drm/kms folks.
> 
> At least AFAIK there still is no way to present virtual kms capable
> display outputs backed by userspace in the kernel.
> 
> I completely understand where you're coming from wrt v4l2-loopback
> support (or something equivalent) but asking for this really is
> the same as asking for the evdi driver to get merged, which AFAIK
> has been blocked for the reason of avoiding proprietary userspace
> display output drivers 

> (I guess there might be technical reasons too).

There are technical reasons too: streaming requires mutexes and
semaphores inside the Kernel to manage buffer requests.
Semaphores, in particular, can't depend on anything that sleeps,
but there are even some mutexes that could be affected inside
Linux core. Holding them while waiting for an user event is
complex, untested and can cause all sorts of issues.

Thanks,
Mauro

  reply	other threads:[~2026-02-03 15:25 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-02 20:44 [RFC PATCH v2] media: Virtual camera driver Jarkko Sakkinen
2026-02-02 21:28 ` Jarkko Sakkinen
2026-02-02 22:50 ` Sakari Ailus
2026-02-03  0:10   ` Jarkko Sakkinen
2026-02-03  1:36     ` Jarkko Sakkinen
2026-02-03 20:57       ` Laurent Pinchart
2026-02-03 21:11         ` Jarkko Sakkinen
2026-02-03 21:21           ` Laurent Pinchart
2026-02-03  8:09 ` Jarkko Sakkinen
2026-02-03  8:32   ` Jarkko Sakkinen
2026-02-03 10:27 ` johannes.goede
2026-02-03 13:16   ` Jani Nikula
2026-02-03 21:09     ` Laurent Pinchart
2026-02-03 13:20   ` Jani Nikula
2026-02-03 14:19     ` johannes.goede
2026-02-03 15:25       ` Mauro Carvalho Chehab [this message]
2026-02-03 18:53       ` Jani Nikula
2026-02-03 19:07         ` Jarkko Sakkinen
2026-02-03 19:15           ` Jarkko Sakkinen
2026-02-03 21:22             ` Laurent Pinchart
2026-02-03 21:40               ` Jarkko Sakkinen
2026-02-03 21:18       ` Laurent Pinchart
2026-02-03 17:56   ` Jarkko Sakkinen

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=20260203162544.09635a09@foz.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=anisse@astier.eu \
    --cc=hverkuil@kernel.org \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=jani.nikula@linux.intel.com \
    --cc=jarkko@kernel.org \
    --cc=johannes.goede@oss.qualcomm.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=oleksandr@natalenko.name \
    --cc=ribalda@chromium.org \
    --cc=sakari.ailus@linux.intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox