2 (c) 2004-2008 François Revol.
3 Parts (c) Be,Inc. (ProducerNode sample code).
5 Current version of my USB Webcam driver. WORK IN PROGRESS!
6 Uses the USB Kit (userland API, needs libusb) to publish a
7 media node representing the webcam.
9 It currently only works with my Sonix webcam (3Euro cheapo
10 cam, using an SN9C120 chip), but is modular enough to easily
11 expand it, some code is already there to detect Quickcams.
13 Note however that most webcams only support isochronous
14 transfers, so will NOT work in R5 or even Zeta as isochronous
15 is mostly not working. That's the reason for only supporting
16 my Sonix webcam as it is bulk capable.
17 As soon as iso support is added to the USB stack and the
18 USB Kit it should be possible to support other webcams quite
21 For now you should be able to build it under Zeta with the
24 There are 3 kinds of device-specific folders :
25 addons/ contains actual usb chip support code for each device.
26 sensors/ contains code to handle CMOS sensors, as each model
27 of a specific brand usually have a different CMOS chip
28 despite a common usb chip.
29 cstransforms/ for colorspace transforms so other device using
30 the same weird colorspace can reuse the code (not yet
31 used, sonix has its own code for now). It should be
32 possible to use Translator-based transforms, making
33 it easy to support webcams sending JPEG pictures.
34 Another option is to turn all cstransforms into actual
35 Translators usable by other apps, or also media codecs
36 but that would be more work for few added value.
39 - finish the bayer cstransform and use that instead of copied
40 (MIT) code in Sonix addon.
41 - implement handling picture sizes correctly (currently forced
42 in the ProducerNode and the Sonix code to 320x240)
43 - there are currently 2 Deframer classes, the StreamingDeframer
44 although more complex seems to work much better than the
45 BufferingDeframer. Make my mind about them.
46 - write isochronous code when USB Kit supports it
47 - add quickcam support (I have some code around) (requires iso)
48 - add code to support Fuji FinePix to merge the FinePix addon
49 from bebits ? (need to find one to test)
50 - design an extensible API to publish possible controls as
51 ParameterWeb or forward ParameterWeb changes right to the
52 device-specific addon and provide default handlers for usual
55 References and other drivers of interest:
57 * Logitech opensource effort:
58 http://www.quickcamteam.net/
60 * Sonix linux drivers (several of them):
61 http://sourceforge.net/projects/sonix/ -- http://sonix.sourceforge.net/
62 http://freshmeat.net/projects/sonic-snap/?branch_id=55324&release_id=183982
63 http://tgnard.free.fr/linux/
65 http://www.mnementh.co.uk/sonix/sn9c102.pdf
67 * some of the (many!) linux quickcam drivers:
68 http://www.lrr.in.tum.de/~acher/quickcam/quickcam.html
69 http://www.seismo.ethz.ch/linux/webcam.html
72 http://nw802.cvs.sourceforge.net NW80x based (like the QuickCam I have here)
73 http://tuukkat.awardspace.com/quickcam/quickcam.html for PID 0xd001
74 http://blognux.free.fr/sources/EasyCam2/04032006_11:11/drivers/nw802/
76 http://www.digchip.com/datasheets/parts/datasheet/132/NW800.php
78 * Creative's own list of linux drivers:
79 http://connect.creativelabs.com/opensource/Lists/Webcam%20Support/AllItems.aspx
81 * Other webcam drivers:
82 http://zc0302.sourceforge.net/zc0302.php?page=cams
83 http://www.smcc.demon.nl/webcam/ (philips)
84 http://www.medias.ne.jp/~takam/bsd/NetBSD.html
85 http://blognux.free.fr/sources/EasyCam2/04032006_19:49/
86 http://www.wifi.com.ar/english/doc/webcam/ov511cameras.html
87 http://mxhaard.free.fr/spca5xx.html
89 http://lkml.indiana.edu/hypermail/linux/kernel/0904.0/03427.html
91 * CMOS Sensor datasheets (rather, marketing buzz):
92 http://mxhaard.free.fr/spca50x/Doc/ many
93 http://www.tascorp.com.tw/product_file/TAS5110C1B_Brief_V0.3.pdf
94 http://www.tascorp.com.tw/product_file/TAS5130D1B_Brief_V0.3.pdf
95 http://www.mnementh.co.uk/sonix/hv7131e1.pdf
97 http://www.digchip.com/datasheets/parts/datasheet/132/NW800.php
98 http://www.digchip.com/datasheets/parts/datasheet/132/NW802.php
99 http://web.archive.org/web/*/divio.com/*
100 All from eTOMS (ET31X110 would be == NW800 but isn't there):
101 http://www.etomscorp.com/english/webdesign/product_search.asp
102 http://web.archive.org/web/*re_pd_sr_1nr_50/http://etomscorp.com/*
104 http://www.ortodoxism.ro/datasheets2/2/05jj45dcrga6zr0zjg7hrde83cpy.pdf
107 http://www.iglu.org.il/lxr/source/include/linux/usb.h
109 * Linux V4L webcam list:
110 http://linuxtv.org/v4lwiki/index.php/Webcams
112 * Linux source code crossref:
113 http://lxr.linux.no/linux
115 * Fuji FinePix BeOS driver, should probably be merged at some point:
116 http://bebits.com/app/4185
118 * Macam generic OSX webcam driver (interesting but sadly GPL and in ObjC):
119 http://webcam-osx.sourceforge.net/index.html
120 http://webcam-osx.sourceforge.net/cameras/index.php list of supported cams in OSX
121 http://sourceforge.net/projects/webcam-osx