USB Webcam driver(c) 2004-2008 FranΓ§ois Revol.Parts (c) Be,Inc. (ProducerNode sample code).Current version of my USB Webcam driver. WORK IN PROGRESS!Uses the USB Kit (userland API, needs libusb) to publish amedia node representing the webcam.It currently only works with my Sonix webcam (3Euro cheapocam, using an SN9C120 chip), but is modular enough to easilyexpand it, some code is already there to detect Quickcams.Note however that most webcams only support isochronoustransfers, so will NOT work in R5 or even Zeta as isochronousis mostly not working. That's the reason for only supportingmy Sonix webcam as it is bulk capable.As soon as iso support is added to the USB stack and theUSB Kit it should be possible to support other webcams quiteeasily.For now you should be able to build it under Zeta with themakefile provided.There are 3 kinds of device-specific folders :addons/ contains actual usb chip support code for each device.sensors/ contains code to handle CMOS sensors, as each modelof a specific brand usually have a different CMOS chipdespite a common usb chip.cstransforms/ for colorspace transforms so other device usingthe same weird colorspace can reuse the code (not yetused, sonix has its own code for now). It should bepossible to use Translator-based transforms, makingit easy to support webcams sending JPEG pictures.Another option is to turn all cstransforms into actualTranslators usable by other apps, or also media codecsbut that would be more work for few added value.Other notes and TODO:- finish the bayer cstransform and use that instead of copied(MIT) code in Sonix addon.- implement handling picture sizes correctly (currently forcedin the ProducerNode and the Sonix code to 320x240)- there are currently 2 Deframer classes, the StreamingDeframeralthough more complex seems to work much better than theBufferingDeframer. Make my mind about them.- write isochronous code when USB Kit supports it- add quickcam support (I have some code around) (requires iso)- add code to support Fuji FinePix to merge the FinePix addonfrom bebits ? (need to find one to test)- design an extensible API to publish possible controls asParameterWeb or forward ParameterWeb changes right to thedevice-specific addon and provide default handlers for usualcontrols ?References and other drivers of interest:* Logitech opensource effort:http://www.quickcamteam.net/* Sonix linux drivers (several of them):http://sourceforge.net/projects/sonix/ -- http://sonix.sourceforge.net/http://freshmeat.net/projects/sonic-snap/?branch_id=55324&release_id=183982http://tgnard.free.fr/linux/(datasheet)http://www.mnementh.co.uk/sonix/sn9c102.pdf* some of the (many!) linux quickcam drivers:http://www.lrr.in.tum.de/~acher/quickcam/quickcam.htmlhttp://www.seismo.ethz.ch/linux/webcam.html* NW80x based:http://nw802.cvs.sourceforge.net NW80x based (like the QuickCam I have here)http://tuukkat.awardspace.com/quickcam/quickcam.html for PID 0xd001http://blognux.free.fr/sources/EasyCam2/04032006_11:11/drivers/nw802/datasheets:http://www.digchip.com/datasheets/parts/datasheet/132/NW800.php* Creative's own list of linux drivers:http://connect.creativelabs.com/opensource/Lists/Webcam%20Support/AllItems.aspx* Other webcam drivers:http://zc0302.sourceforge.net/zc0302.php?page=camshttp://www.smcc.demon.nl/webcam/ (philips)http://www.medias.ne.jp/~takam/bsd/NetBSD.htmlhttp://blognux.free.fr/sources/EasyCam2/04032006_19:49/http://www.wifi.com.ar/english/doc/webcam/ov511cameras.htmlhttp://mxhaard.free.fr/spca5xx.htmlhttp://lkml.indiana.edu/hypermail/linux/kernel/0904.0/03427.html* CMOS Sensor datasheets (rather, marketing buzz):http://mxhaard.free.fr/spca50x/Doc/ manyhttp://www.tascorp.com.tw/product_file/TAS5110C1B_Brief_V0.3.pdfhttp://www.tascorp.com.tw/product_file/TAS5130D1B_Brief_V0.3.pdfhttp://www.mnementh.co.uk/sonix/hv7131e1.pdfDivio NW80x:http://www.digchip.com/datasheets/parts/datasheet/132/NW800.phphttp://www.digchip.com/datasheets/parts/datasheet/132/NW802.phphttp://web.archive.org/web/*/divio.com/*All from eTOMS (ET31X110 would be == NW800 but isn't there):http://www.etomscorp.com/english/webdesign/product_search.asphttp://web.archive.org/web/*re_pd_sr_1nr_50/http://etomscorp.com/*Agilent HDCS:http://www.ortodoxism.ro/datasheets2/2/05jj45dcrga6zr0zjg7hrde83cpy.pdf* Linux USB stack:http://www.iglu.org.il/lxr/source/include/linux/usb.h* Linux V4L webcam list:http://linuxtv.org/v4lwiki/index.php/Webcams* Linux source code crossref:http://lxr.linux.no/linux* Fuji FinePix BeOS driver, should probably be merged at some point:http://bebits.com/app/4185* Macam generic OSX webcam driver (interesting but sadly GPL and in ObjC):http://webcam-osx.sourceforge.net/index.htmlhttp://webcam-osx.sourceforge.net/cameras/index.php list of supported cams in OSXhttp://sourceforge.net/projects/webcam-osx