Even Better Webcam Support
Summary
The Better Webcam support feature for F-10 has added support for many webcams, but there still are many models which are unsupported the goal of this feature is to get a whole lot more webcams supported out of the box.
Owner
- Name: Hans de Goede
Current status
- Targeted release: Fedora 12
- Last updated: (Jun 15 2009)
- Percentage of completion: 30%
Detailed Description
The Better Webcam support feature for F-10 has done much of the groundwork needed for properly supporting webcams in Linux. We now have a library (libv4l) for decompressing various proprietary video formats in userspace, and almost all webcam using applications have been patched to use this library.
The second push for better webcam contains of 3 pieces:
- Lots of testing and bugfixing / improving of existing in kernel drivers. I need access to cams for this! As you can see in the
matrix below I already have quite a few of them, most of which were bought from my own money especially for this. If you have old cams to donate please contact me!
- Add video processing to libv4l for better video quality for cams which lack any of the following in hardware:
- White Balancing
- Gamma Correction
- Automatic adjustment of Exposure / Gain
- Clean up existing out of tree drivers, moving the decompression to libv4l were needed and merge them into the mainline, specifically the following ones:
- qc-usb: stv0600 (and alike) based cams mainly logitech quickcam express (done as of kernel 2.6.29)
- ov51x-jpeg: ov511(+) and ov518(+) driver
- qc-usb-messenger: st6422 based cams mainly logitech quickcam messenger models
- sn9c20x: sn9c20x based cams, many newer cheap cams
Benefit to Fedora
Out of the box working hardware makes for happy end users and good reviews.
Scope
This may require temporarily carrying kernel patches if drivers are clearly moving upstream, but not there yet in time for release.
This requires updating libv4l to a version which contains the new video processing code and can decompress any formats produced by new drivers.
Test Plan
I currently test with the following webcams:
Webcam | USB ID | Bridge | Sensor | Status |
---|---|---|---|---|
Sweex WC001 | 0c45:6005 | sn9c101 | tas5110 | works |
Sweex WC004 | 0c45:6011 | sn9c101 | ov6650 | works |
Qware EasyCam WB-001 | 0c45:6028 | sn9c102 | pas202 | works * |
Intel Create and Share | 0733:0401 | spca501 | integrated | works |
Creative Live! VISTA VF0420 | 041e:4064 | ov519 | OV7670 | works |
Trust WB-1400T | 093a:2468 | pac207 | integrated | works |
I.T. Works PCW 03 | 093a:2460 | pac207 | integrated | works |
Logitech QuickCam IM/Connect | 046d:08d9 | zc3xx | HV7131R | works |
Labtec notebook cam | 046d:08aa | zc3xx | HDCS2020 | works |
Creative WebCam Vista | 041e:403b | spca561 | integrated | works |
Logitech QuickCam Express Plus | 046d:092f | spca561 | integrated | works |
Philips PCVC820K/00 | 05a9:0518 | ov518 | ? | Does not work out of tree driver |
Philips SPC 200NC | 0471:0325 | zc3xx | PAS106 | works |
Creative Webcam Pro | 05a9:a511 | ov511 | ? | Does not work out of tree driver |
I.T. Works notebook cam | 093a:2621 | pac7302 | integrated | works ** |
Trust WB-3400T | 093a:260e | pac7311 | integrated | works *** |
Dynalink ??? | 06be:d001 | NW802 | integrated | Does not work out of tree driver |
Sitecom Voicecam | 0c45:62bb | sn0c202 | ov7660 | Does not work out of tree driver |
Silvercrest Webcam 1.3mpix | eb1a:2820 | eMPIA em28xx | ? | Does not work |
Logitech Sphere MP | 046d:08cc | uvcvideo | NA | works |
Logitech QuickCam Express | 046d:0840 | STV0600 | PB100 | Does not work out of tree driver |
Pleomax / Typhoon Easycam 330K | 093a:2600 | pac7311 | integrated | works *** |
Creative Live! Cam Video IM | 041e:4053 | zc3xx | TAS5130 | works |
(*) works, but does not work well in low light conditions (**) works, but has jpeg compression artifacts when used in bright daylight (***) sortof works, really bad cams, do not buy!
Also see here for cams which are supported by gspca and their testing status with the new cleaned up gspcav2.
Tests are done with the following applications:
- xawtv
- cheese
- ekiga
- camorama *
- vlc *
- mplayer *
- skype *
(*) Not in Fedora
User Experience
Out of the box working hardware.
Dependencies
None.
Contingency Plan
Don't ship the drivers / wrapper if they aren't ready.
Documentation
Fedora 10 comes with a much cleaned up and ported to v4l2 version of the gspca webcam driver. Many of the supported webcams produce video data in a manufacturer specific video format, Fedora 10 comes with libv4l which handles conversion of these custom formats to the standard video formats that most applications need. The most popular v4l applications in Fedora have all been modified to use libv4l directly: amsn, camE, camstream, cheese (gstreamer), ekiga (ptlib), gyachi, xawtv and ucview (unicap). If you encounter a Fedora application which has not been patched yet, you can use the method described for 3th party applications below. Please also file a bug and put Hans de Goede <hdegoede@redhat.com> in the CC of that bug.
For 3th party applications such as for example skype a compatibility library wrapper has been made available. You can make 32 bits applications use this wrapper by typing the following command in a terminal before starting the application from that same terminal:
export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
And then start the application from that same terminal!
For 64 bit applications the command is:
export LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so
Note that for example skype is a 32 bit applications, so even when running a 64 bit version of Fedora you should use the 32 bit command!
Don't get fooled by the v4l1compat.so name, this library wrapper does not only add v4l1 applicatiom compatibility to v4l2 drivers (such as the new gspca and the uvc driver) but it also handles conversion from cam specific formats to generic video formats for v4l2 applications. If you only want the conversion, without the v4l1 compatibility you can use "v4l2convert.so" instead of v4l1compat.so .
Release Notes
Fedora 10 comes with much improved support for webcams.
Next to improvements to the UVC driver which was first introduced in Fedora 9 and supports any webcam with a vista compliant logo, Fedora 10 also features a brand new v4l2 version of gspca, an usb webcam driver framework with support for many different usb webcam bridges and sensors.
Userspace support for webcams has also been improved by adding libv4l and updating all webcam using applications to use libv4l, this makes these applications understand the often manufacturer specific and custom video formats emitted by many webcams, esp. by many of the webcams supported by gspca.
For a list of all webcams and applications with which Fedora-10's new webcam support has been tested see the BetterWebcamSupport feature page, for a list of all cams supported by the original version of gspca see the original gspca website. The v4l2 version of gspca in Fedora-10 supports all these webcams and more!
Comments and Discussion
See Talk:Features/BetterWebcamSupport