Em Ter, 2007-05-29 Ãs 21:04 +0200, Thierry Merle escreveu:Interesting but impossible to do for ioctl calls.
Mauro Carvalho Chehab a Ãcrit :I don't think we need to change the API. The API already exports the
OK, so we must open the V4L2 API to add a custom pixel format.Yes. The first focus, IMO, should be the last one.Hi Mauro and Markus,
Just to summ up what I understood we need:
What do we need in userspace, only for v4l (dvb is not concerned):
- colorspace translations
- filters that be done in hardware if the selected hardware can, otherwise software plugin
- decompression algorithm like stk11xx or usbvision (the decompression algorithm is in kernelspace since it is of linear complexity but shall be moved to userspace)
format, as a fourcc-like info. We just need to add newer codes as
they'll be added into kernel.
While brainstorming, I thought it would be funny to create userspace drivers like FUSE based projects do.
Applications would see nothing but a new device driver to access, all decompression algorithm would be in userspace.
The path from the application to the v4l2 kernel driver:
[Application]<->[/mnt/video0 (created by FUSE-like userspace lib)]<->[/dev/video0 (created by kernel v4l2 driver)]
There are limitations that I don't know, but this would be transparent for the applications.
This seems to be an interesting approach.
-Yes, it is possible. In fact, some devices currently work by generatingSo we have a userspace lib that will demux/uncompress device driver output.
a common audio and video stream. The driver may just send the packet
as-is, leaving to the userspace API the function to de-merge and
synchronize audio and video.
This lib will know each device driver particularities to know how to demux/uncompress in a a/v format that will be understood by the application.
Yes. However, we should try to do loose coupling whenever possible, to
keep maintainership of the "library"(*) as simple as possible.
(*) With this approach, it seems that it will turn into a helper daemon,
instead of just a library.
Cheers,
Mauro