xref: /haiku/src/add-ons/media/media-add-ons/usb_webcam/README.txt (revision 74b3713ab98b669bbc98d4b5c074c9dd89db613d)
132065846SFrançois RevolUSB Webcam driver
2941a8959SFrançois Revol(c) 2004-2007 François Revol.
3a6ccb0beSFrançois RevolParts (c) Be,Inc. (ProducerNode sample code).
432065846SFrançois Revol
532065846SFrançois RevolCurrent version of my USB Webcam driver. WORK IN PROGRESS!
632065846SFrançois RevolUses the USB Kit (userland API, needs libusb) to publish a
732065846SFrançois Revolmedia node representing the webcam.
832065846SFrançois Revol
932065846SFrançois RevolIt currently only works with my Sonix webcam (3Euro cheapo
10ffe8b391SFrançois Revolcam, using an SN9C120 chip), but is modular enough to easily
11ffe8b391SFrançois Revolexpand it, some code is already there to detect Quickcams.
1232065846SFrançois Revol
1332065846SFrançois RevolNote however that most webcams only support isochronous
1432065846SFrançois Revoltransfers, so will NOT work in R5 or even Zeta as isochronous
1532065846SFrançois Revolis mostly not working. That's the reason for only supporting
1632065846SFrançois Revolmy Sonix webcam as it is bulk capable.
1732065846SFrançois RevolAs soon as iso support is added to the USB stack and the
1832065846SFrançois RevolUSB Kit it should be possible to support other webcams quite
1932065846SFrançois Revoleasily.
2032065846SFrançois Revol
2132065846SFrançois RevolFor now you should be able to build it under Zeta with the
2232065846SFrançois Revolmakefile provided.
2332065846SFrançois Revol
24ffe8b391SFrançois RevolThere are 3 kinds of device-specific folders :
25ffe8b391SFrançois Revoladdons/ contains actual usb chip support code for each device.
26ffe8b391SFrançois Revolsensors/ contains code to handle CMOS sensors, as each model
27ffe8b391SFrançois Revol	of a specific brand usually have a different CMOS chip
28ffe8b391SFrançois Revol	despite a common usb chip.
29ffe8b391SFrançois Revolcstransforms/ for colorspace transforms so other device using
30ffe8b391SFrançois Revol	the same weird colorspace can reuse the code (not yet
31ffe8b391SFrançois Revol	used, sonix has its own code for now). It should be
32ffe8b391SFrançois Revol	possible to use Translator-based transforms, making
33ffe8b391SFrançois Revol	it easy to support webcams sending JPEG pictures.
34ffe8b391SFrançois Revol	Another option is to turn all cstransforms into actual
35ffe8b391SFrançois Revol	Translators usable by other apps, or also media codecs
36ffe8b391SFrançois Revol	but that would be more work for few added value.
37ffe8b391SFrançois Revol
38a6ccb0beSFrançois RevolOther notes and TODO:
39a6ccb0beSFrançois Revol- finish the bayer cstransform and use that instead of copied
40a6ccb0beSFrançois Revol(MIT) code in Sonix addon.
41a6ccb0beSFrançois Revol- implement handling picture sizes correctly (currently forced
42a6ccb0beSFrançois Revolin the ProducerNode and the Sonix code to 320x240)
43a6ccb0beSFrançois Revol- there are currently 2 Deframer classes, the StreamingDeframer
44a6ccb0beSFrançois Revolalthough more complex seems to work much better than the
45a6ccb0beSFrançois RevolBufferingDeframer. Make my mind about them.
46a6ccb0beSFrançois Revol- write isochronous code when USB Kit supports it
47a6ccb0beSFrançois Revol- add quickcam support (I have some code around) (requires iso)
48a6ccb0beSFrançois Revol- add code to support Fuji FinePix to merge the FinePix addon
49a6ccb0beSFrançois Revolfrom bebits ? (need to find one to test)
50a6ccb0beSFrançois Revol- design an extensible API to publish possible controls as
51a6ccb0beSFrançois RevolParameterWeb or forward ParameterWeb changes right to the
52a6ccb0beSFrançois Revoldevice-specific addon and provide default handlers for usual
53a6ccb0beSFrançois Revolcontrols ?
54a6ccb0beSFrançois Revol
55*74b3713aSFrançois RevolReferences and other drivers of interest:
5632065846SFrançois Revol
5732065846SFrançois Revol* Sonix linux drivers (several of them):
58ffe8b391SFrançois Revolhttp://sourceforge.net/projects/sonix/ -- http://sonix.sourceforge.net/
5932065846SFrançois Revolhttp://freshmeat.net/projects/sonic-snap/?branch_id=55324&release_id=183982
6032065846SFrançois Revolhttp://tgnard.free.fr/linux/
61ffe8b391SFrançois Revol(datasheet)
62ffe8b391SFrançois Revolhttp://www.mnementh.co.uk/sonix/sn9c102.pdf
6332065846SFrançois Revol
64*74b3713aSFrançois Revol* some of the (many!) linux quickcam drivers:
65*74b3713aSFrançois Revolhttp://www.lrr.in.tum.de/~acher/quickcam/quickcam.html
66*74b3713aSFrançois Revolhttp://www.seismo.ethz.ch/linux/webcam.html
67*74b3713aSFrançois Revol
68*74b3713aSFrançois Revol* Creative's own list of linux drivers:
69*74b3713aSFrançois Revolhttp://connect.creativelabs.com/opensource/Lists/Webcam%20Support/AllItems.aspx
70*74b3713aSFrançois Revol
7132065846SFrançois Revol* Other webcam drivers:
7232065846SFrançois Revolhttp://zc0302.sourceforge.net/zc0302.php?page=cams
73ffe8b391SFrançois Revolhttp://www.medias.ne.jp/~takam/bsd/NetBSD.html
7432065846SFrançois Revol
7532065846SFrançois Revol* CMOS Sensor datasheets (rather, marketing buzz):
7632065846SFrançois Revolhttp://www.tascorp.com.tw/product_file/TAS5110C1B_Brief_V0.3.pdf
7732065846SFrançois Revolhttp://www.tascorp.com.tw/product_file/TAS5130D1B_Brief_V0.3.pdf
7832065846SFrançois Revol
7932065846SFrançois Revol* Linux USB stack:
8032065846SFrançois Revolhttp://www.iglu.org.il/lxr/source/include/linux/usb.h
8132065846SFrançois Revol
8232065846SFrançois Revol* Linux V4L webcam list:
8332065846SFrançois Revolhttp://linuxtv.org/v4lwiki/index.php/Webcams
8432065846SFrançois Revol
85*74b3713aSFrançois Revol* Linux source code crossref:
86*74b3713aSFrançois Revolhttp://lxr.linux.no/linux
87*74b3713aSFrançois Revol
88ffe8b391SFrançois Revol* Fuji FinePix BeOS driver, should probably be merged at some point:
89ffe8b391SFrançois Revolhttp://bebits.com/app/4185
90ffe8b391SFrançois Revol
91*74b3713aSFrançois Revol* Macam generic OSX webcam driver (interesting but sadly GPL and in ObjC):
92*74b3713aSFrançois Revolhttp://webcam-osx.sourceforge.net/index.html
93*74b3713aSFrançois Revolhttp://webcam-osx.sourceforge.net/cameras/index.php list of supported cams in OSX
94*74b3713aSFrançois Revolhttp://sourceforge.net/projects/webcam-osx
95