From Fedora Project Wiki
m (Reverted edits by Alberto783 (talk) to last revision by Jwrdegoede)
 
(33 intermediate revisions by 7 users not shown)
Line 1: Line 1:
= Better Webcam Support =
= Better Webcam Support =


== Summary ==
== Summary ==
Line 12: Line 10:
== Current status ==
== Current status ==
* Targeted release: [[Releases/10|  Fedora 10]]  
* Targeted release: [[Releases/10|  Fedora 10]]  
* Last updated: (Jun 25 2008)
* Last updated: (Oct 23 2008)
* Percentage of completion: 30%
* Percentage of completion: 100%


== Detailed Description ==
== Detailed Description ==
Line 21: Line 19:
# Those drivers that are in the mainline kernel are often v4l2 while many applications will only work with v4l1. Even v4l2 apps often don't work with v4l2 webcam's as the webcams often have camspecific (compressed) pixelformats and most applications don't support all these,
# Those drivers that are in the mainline kernel are often v4l2 while many applications will only work with v4l1. Even v4l2 apps often don't work with v4l2 webcam's as the webcams often have camspecific (compressed) pixelformats and most applications don't support all these,


The plan is to fix 1) by working together with the driver upstream on cleaning the driver (and porting it to v4l2 if needed in the process) and then submitting it for inclusion in the mainline kernel, currently I'm working together with gspca to get [http://moinejf.free.fr/ gspcav2] cleaned up and merged, this will vastly improve the amount of supported webcams.
1) Has been largely fixed by working together with gspca upstream to get [http://moinejf.free.fr/ gspcav2] cleaned up and merged, Linus has merged gspcav2 (through the v4l-dvb subsystem) for 2.6.27,
this vastly improves the amount of supported webcams in 2.6.27. I'm currently working on getting the
people behind the [http://groups.google.com/group/microdia micromedia driver] for the quite popular sonix sn9c20x based cams, to port their driver to a gspca subdriver and move the cam specific format decoding to userspace as was done with all the gspca decoding routines. The plan is to work together with the various upstreams to port any remaining standalone usb webcam drivers to gspca subdrivers, this is a process which will continue after F-10's release.


2) has been fixed by creating a utility library which contains all the conversion stuff and v4l1 compatibility functions so that applications can easily be modified to work properly with v4l2 webcams,
2) Has been fixed by creating a utility library which contains all the conversion stuff and v4l1 compatibility functions so that applications can easily be modified to work properly with v4l2 webcams,
for more info on his library called libv4l, see:
for more info on his library called libv4l, see:
http://hansdegoede.livejournal.com/3636.html
http://hansdegoede.livejournal.com/3636.html
The most popular v4l applications in Fedora have all been patched to use libv4l: amsn, camE, camstream, cheese (gstreamer), ekiga (ptlib), gyachi, xawtv and ucview (unicap)
Also refer http://kernelnewbies.org/Linux_2_6_26#head-6d4ee1ddea983f5c8ac491b8685a94ea6fa4132b


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 33: Line 37:
== Scope ==
== Scope ==


This may require temporarily carrying kernel patches if the gspcav2 (and maybe other) drivers are clearly moving upstream, but not there yet in time for release.
This may require temporarily carrying kernel patches if drivers are clearly moving upstream, but not there yet in time for release.


This requires creating a wrapper library for v4l1 emulation and making modifcations to webcam using applications so that they load this wrapper library.
This requires packaging libv4l for v4l1 emulation and format conversion and making modifications to webcam using applications so that they use libv4l.


== Test Plan ==
== Test Plan ==


I've bought several different webcams (about 7 or so atm) and I intend to get them all working out of the box, with a wide palette of webcam using applications.
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 [http://www.rastageeks.org/ov51x-jpeg/index.php/Main_Page out of tree driver]
|-
| Philips SPC 200NC || 0471:0325 || zc3xx || PAS106 || works
|-
| Creative Webcam Pro || 05a9:a511 || ov511 || ? || Does not work [http://www.rastageeks.org/ov51x-jpeg/index.php/Main_Page 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 [http://nw802.sourceforge.net/ out of tree driver]
|-
| Sitecom Voicecam || 0c45:62bb || sn0c202 || ov7660 || Does not work [http://groups.google.com/group/microdia 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 [http://qce-ga.sourceforge.net/ 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 [http://moinejf.free.fr/webcam.html 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 ==
== User Experience ==
Line 55: Line 126:
== Documentation ==
== Documentation ==


None atm.
Fedora 10 comes with a much cleaned up and ported to v4l2 version of the [http://mxhaard.free.fr/spca5xx.html 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:
<code> export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so </code>
 
And then start the application from that same terminal!
 
For 64 bit applications the command is:
 
<code> export LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so </code>
 
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 ==
== Release Notes ==


None, except that if this is finished in time it would be good to make some PR with this.
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 [https://fedoraproject.org/wiki/Features/BetterWebcamSupport BetterWebcamSupport feature page], for a list of all cams supported by the original version of gspca see the [http://mxhaard.free.fr/spca5xx.html original gspca website]. The v4l2 version of gspca in Fedora-10 supports all these webcams and more!


== Comments and Discussion ==
== Comments and Discussion ==
Line 69: Line 159:
----
----


[[Category:ProposedFeature]]
[[Category:FeatureAcceptedF10]]

Latest revision as of 14:32, 11 April 2012

Better Webcam Support

Summary

Currently many webcams do not work with Fedora out of the box even though Linux driver exist for them, the intent is to fix this.

Owner

  • Name: Hans de Goede

Current status

  • Targeted release: Fedora 10
  • Last updated: (Oct 23 2008)
  • Percentage of completion: 100%

Detailed Description

Webcams not working even though there are Linux drivers has 2 causes:

  1. The drivers are not in the mainline kernel
  2. Those drivers that are in the mainline kernel are often v4l2 while many applications will only work with v4l1. Even v4l2 apps often don't work with v4l2 webcam's as the webcams often have camspecific (compressed) pixelformats and most applications don't support all these,

1) Has been largely fixed by working together with gspca upstream to get gspcav2 cleaned up and merged, Linus has merged gspcav2 (through the v4l-dvb subsystem) for 2.6.27, this vastly improves the amount of supported webcams in 2.6.27. I'm currently working on getting the people behind the micromedia driver for the quite popular sonix sn9c20x based cams, to port their driver to a gspca subdriver and move the cam specific format decoding to userspace as was done with all the gspca decoding routines. The plan is to work together with the various upstreams to port any remaining standalone usb webcam drivers to gspca subdrivers, this is a process which will continue after F-10's release.

2) Has been fixed by creating a utility library which contains all the conversion stuff and v4l1 compatibility functions so that applications can easily be modified to work properly with v4l2 webcams, for more info on his library called libv4l, see: http://hansdegoede.livejournal.com/3636.html

The most popular v4l applications in Fedora have all been patched to use libv4l: amsn, camE, camstream, cheese (gstreamer), ekiga (ptlib), gyachi, xawtv and ucview (unicap)

Also refer http://kernelnewbies.org/Linux_2_6_26#head-6d4ee1ddea983f5c8ac491b8685a94ea6fa4132b

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 packaging libv4l for v4l1 emulation and format conversion and making modifications to webcam using applications so that they use libv4l.

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