akvirtualcamera icon indicating copy to clipboard operation
akvirtualcamera copied to clipboard

Feature: Pipewire support

Open ids1024 opened this issue 3 years ago • 4 comments

As I understand, Pipewire is (going to be) the modern way to support this kind of thing on Linux, which seems nicer than a special kernel module.

I haven't looked enough into how akvirtualcamera or pipewire work to see what that would involved, but perhaps it could/should be supported here.

ids1024 avatar Nov 09 '20 15:11 ids1024

Yes this is on my radar actually, I was looking about Pipewire the last week and it seems possible, but more projects needs to adopt it, otherwise it won't work in old software.

hipersayanX avatar Nov 12 '20 16:11 hipersayanX

but more projects needs to adopt it, otherwise it won't work in old software.

Right. As some of the posts I've seen about Pipewire's development, Cheese supports it automatically by virtue of using gstreamer. Not sure how much other software supports it yet.

Having good virtual camera support with Webcamoid could be a nice thing to point to for why programs/libraries should include a pipewire backend for webcams. But a kernel driver like akvcam will still be necessary for at least old software, for some time.

ids1024 avatar Nov 12 '20 16:11 ids1024

Right. As some of the posts I've seen about Pipewire's development, Cheese supports it automatically by virtue of using gstreamer. Not sure how much other software supports it yet.

I'm interested in the webcam and desktop sharing feature, and the user space driver rater than kernel space, that's a real big improvement over V4L2 :smile: I'm busy working with other things, but definitively I'll add support for Pipewire before next Webcamoid release, for capturing at least, the virtual camera will come much later.

Having good virtual camera support with Webcamoid could be a nice thing to point to for why programs/libraries should include a pipewire backend for webcams. But a kernel driver like akvcam will still be necessary for at least old software, for some time.

There is another option for supporting classic V4l2 programs that I was researching which is using fuse for creating the V4L2 devices but I was stuck with mmap implementation and there are some ioctls that can't be implemented, I was searching here and there and I think I've found some way to implement mmap and in the last case I can discard extended controls implementation. Also if I can implement it, I'll have support for FreeBSD and other operating systems for free :smile:

hipersayanX avatar Nov 12 '20 18:11 hipersayanX

Running into issues with ioctls is pretty much what I would expect, but it would definitely be great to have a fuse-based solution, if it can work!

ids1024 avatar Nov 12 '20 20:11 ids1024