xref: /haiku/src/add-ons/media/media-add-ons/usb_webcam/README.txt (revision a6ccb0bef66c3a964945404b2548881e770ba5d7)
132065846SFrançois RevolUSB Webcam driver
232065846SFrançois Revol(c) 2004,2005,2006 François Revol.
3*a6ccb0beSFranç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
2432065846SFrançois RevolMaking a Jamfile might get tricky as several source files are
2532065846SFrançois Revolcreated by the makefile itself to include addons and censors
2632065846SFrançois Revolin the build.
2732065846SFrançois Revol
28ffe8b391SFrançois RevolThere are 3 kinds of device-specific folders :
29ffe8b391SFrançois Revoladdons/ contains actual usb chip support code for each device.
30ffe8b391SFrançois Revolsensors/ contains code to handle CMOS sensors, as each model
31ffe8b391SFrançois Revol	of a specific brand usually have a different CMOS chip
32ffe8b391SFrançois Revol	despite a common usb chip.
33ffe8b391SFrançois Revolcstransforms/ for colorspace transforms so other device using
34ffe8b391SFrançois Revol	the same weird colorspace can reuse the code (not yet
35ffe8b391SFrançois Revol	used, sonix has its own code for now). It should be
36ffe8b391SFrançois Revol	possible to use Translator-based transforms, making
37ffe8b391SFrançois Revol	it easy to support webcams sending JPEG pictures.
38ffe8b391SFrançois Revol	Another option is to turn all cstransforms into actual
39ffe8b391SFrançois Revol	Translators usable by other apps, or also media codecs
40ffe8b391SFrançois Revol	but that would be more work for few added value.
41ffe8b391SFrançois Revol
42*a6ccb0beSFrançois RevolOther notes and TODO:
43*a6ccb0beSFrançois Revol- finish the bayer cstransform and use that instead of copied
44*a6ccb0beSFrançois Revol(MIT) code in Sonix addon.
45*a6ccb0beSFrançois Revol- implement handling picture sizes correctly (currently forced
46*a6ccb0beSFrançois Revolin the ProducerNode and the Sonix code to 320x240)
47*a6ccb0beSFrançois Revol- there are currently 2 Deframer classes, the StreamingDeframer
48*a6ccb0beSFrançois Revolalthough more complex seems to work much better than the
49*a6ccb0beSFrançois RevolBufferingDeframer. Make my mind about them.
50*a6ccb0beSFrançois Revol- write isochronous code when USB Kit supports it
51*a6ccb0beSFrançois Revol- add quickcam support (I have some code around) (requires iso)
52*a6ccb0beSFrançois Revol- add code to support Fuji FinePix to merge the FinePix addon
53*a6ccb0beSFrançois Revolfrom bebits ? (need to find one to test)
54*a6ccb0beSFrançois Revol- design an extensible API to publish possible controls as
55*a6ccb0beSFrançois RevolParameterWeb or forward ParameterWeb changes right to the
56*a6ccb0beSFrançois Revoldevice-specific addon and provide default handlers for usual
57*a6ccb0beSFrançois Revolcontrols ?
58*a6ccb0beSFrançois Revol
5932065846SFrançois RevolReferences:
6032065846SFrançois Revol
6132065846SFrançois Revol* Sonix linux drivers (several of them):
62ffe8b391SFrançois Revolhttp://sourceforge.net/projects/sonix/ -- http://sonix.sourceforge.net/
6332065846SFrançois Revolhttp://freshmeat.net/projects/sonic-snap/?branch_id=55324&release_id=183982
6432065846SFrançois Revolhttp://tgnard.free.fr/linux/
65ffe8b391SFrançois Revol(datasheet)
66ffe8b391SFrançois Revolhttp://www.mnementh.co.uk/sonix/sn9c102.pdf
6732065846SFrançois Revol
6832065846SFrançois Revol* Other webcam drivers:
6932065846SFrançois Revolhttp://zc0302.sourceforge.net/zc0302.php?page=cams
70ffe8b391SFrançois Revolhttp://www.medias.ne.jp/~takam/bsd/NetBSD.html
7132065846SFrançois Revol
7232065846SFrançois Revol* CMOS Sensor datasheets (rather, marketing buzz):
7332065846SFrançois Revolhttp://www.tascorp.com.tw/product_file/TAS5110C1B_Brief_V0.3.pdf
7432065846SFrançois Revolhttp://www.tascorp.com.tw/product_file/TAS5130D1B_Brief_V0.3.pdf
7532065846SFrançois Revol
7632065846SFrançois Revol* Linux USB stack:
7732065846SFrançois Revolhttp://www.iglu.org.il/lxr/source/include/linux/usb.h
7832065846SFrançois Revol
7932065846SFrançois Revol* Linux V4L webcam list:
8032065846SFrançois Revolhttp://linuxtv.org/v4lwiki/index.php/Webcams
8132065846SFrançois Revol
82ffe8b391SFrançois Revol* Fuji FinePix BeOS driver, should probably be merged at some point:
83ffe8b391SFrançois Revolhttp://bebits.com/app/4185
84ffe8b391SFrançois Revol
85