State of Linux webcam support

Luca Risolia luca.risolia at studio.unibo.it
Fri Sep 28 12:58:35 UTC 2007


On Friday 28 September 2007 14:13:37 Bertrik Sikken wrote:
> Hi all,
>
> A couple of years ago I worked on getting some webcams working
> with Linux. To be honest, I was unpleasantly surprised.
> There seems to be a lack of direction on how webcams
> are even supposed to be supported.
>
> The problem is that many USB webcams send raw 'bayer' sensor
> data in a compressed form to the PC in order to get reasonable
> frames-per-second over a full-speed (12 Mb/s) USB connection
> AFAIK, the linux kernel developers decided that is was no longer
> allowed to do decompression and bayer format conversion in the kernel.
>
> This leaves a huge gap between kernel drivers that simply
> stream raw or compressed bayer data (or other proprietary
> format) and applications that expect to received simple
> RGB frames from the v4l(2) device file.
>
> Many webcam drivers are consequently maintained out of the
> official kernel and *DO* include decompression and bayer
> conversion to at least get webcams into a workable state.
> (Examples, there are many more:
> * Philips PWC driver: http://www.saillard.org/linux/pwc/
> * Various other drivers: http://www.linux-projects.org
> * Spca driver: http://mxhaard.free.fr/spca5xx.html )
>
> Some ideas:
> * create a user-space library for webcams that reads the compressed
>   data from a v4l(2) device file, decompresses and unbayers it,
>   then exposes it through a standard API to applications.
> * as above, instead of library, use gstreamer plug-ins (each compressed
>   webcam format would have its own plugin, with perhaps a single plugin
>   for unbayering).
> * bypass the kernel drivers entirely and use libusb to talk to the
>   webcams. A problem is that (AFAIK) libusb does not support isochronous
>   USB transfers and many cameras use this transfer mode.
>
> Any thoughts on how to improve Linux webcam support?

Hello Bertrik,
        you may want to have a look at the V4L extension project:
http://thierry.merle.free.fr/v4l2_extension/general.html
There's also a mailing list.

BR
Luca



More information about the devel mailing list