[arch-dev-public] Request for new extra package: libv4l / Roadmap to better Webcam support
It all starts here: http://bugs.archlinux.org/task/11736 Many webcam drivers are now available for Linux in the 2.6.27 kernel. The current basis is video4linux 2 (v4l2), but there are problems: 1) Many applications only support v4l1, while many v4l2 drivers have missing or incomplete v4l1 emulations 2) Many webcams only support weird image formats requiring conversion which is not done in the kernel, so they won't work in either v4l1 or v4l2 programs. The solution is libv4l. See http://hansdegoede.livejournal.com/3636.html and http://people.atrpms.net/~hdegoede/libv4l-0.5.1.tar.gz. libv4l provides the following features: 1) Using libv4l1, all v4l2 devices are supported by old v4l1 applications. All that has to be done is replace open, close, mmap and ioctl calls to the video device by v4l1_open, v4l1_close, v4l1_mmap and v4l1_ioctl respectively. 2) libv4l2 provides a similar wrapper for v4l2 applications. 3) Both of these libraries use libv4lconvert to convert all known image formats to BGR24 or YUV420 if necessary, so that applications will be able to use them. 4) There are two LD_PRELOAD wrappers, v4l1compat and v4l2convert. v4l1compat can be preloaded to allow (binary) v4l1 applications to use all v4l2 devices and use the conversion feature of libv4lconvert. v4l2convert can be preloaded to allow (binary) v4l2 applications to use the conversion features as well. I suggest the following roadmap: 1) Add libv4l 0.5.1 to extra (I can do that). 2) Provide a HOWTO on the wiki on how to use the LD_PRELOAD wrappers to gain support for your camera (Should be done by a user who has done stuff on the wiki before). 3) Adjust applications to use libv4l directly. http://linuxtv.org/v4lwiki/index.php/Libv4l_Progress is part of a cross-distro effort (although all the work so far has been done by Fedora apparently) to fix applications. Right now, patches for gstreamer, vlc and xawtv exist, ptlib already includes support for libv4l when it is installed at compile-time. Apply those patches and in the long run adjust more applications to use libv4l, then submit those patches upstream. Just from my personal experience: I own a camera that is supported by the gspca_ov519 driver included in 2.6.27. However, this camera has only support for jpeg, and thus won't work in any v4l(2) application. By preloading v4l2convert.so, this camera works like a charm in skype. All this should result in support for ALL webcams in ALL v4l(2) applications. Are there any objections against implementing this or any additions?
2008/10/15, Thomas Bächler <thomas@archlinux.org>:
All this should result in support for ALL webcams in ALL v4l(2) applications. Are there any objections against implementing this or any additions?
+1 I agree. -- Arch Linux Developer (voidnull) AUR & Pacman Italian Translations Microdia Developer http://www.archlinux.it
On Wed, Oct 15, 2008 at 07:00:59PM +0200, Thomas Bächler wrote:
All this should result in support for ALL webcams in ALL v4l(2) applications. Are there any objections against implementing this or any additions?
No objections. This is awesome, I wish I knew about it sooner. -S
On Wed, Oct 15, 2008 at 12:00 PM, Thomas Bächler <thomas@archlinux.org> wrote:
All this should result in support for ALL webcams in ALL v4l(2) applications. Are there any objections against implementing this or any additions?
Looks good to me. I trust you on this one, as I don't really do much with webcams at all. I do, however, have some crappy $5 chinese camera, if you need anything tested on a crappy camera that has poor support even on Win32.
participants (4)
-
Aaron Griffin
-
Giovanni Scafora
-
Simo Leone
-
Thomas Bächler