xref: /haiku/src/add-ons/media/media-add-ons/usb_webcam/README.txt (revision 40f0a873164a1a2494c1fc45cc7addfd7f603913)
132065846SFrançois RevolUSB Webcam driver
2a1830cbdSFrançois Revol(c) 2004-2008 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
5574b3713aSFrançois RevolReferences and other drivers of interest:
5632065846SFrançois Revol
570866ac7eSFrançois Revol* Logitech opensource effort:
580866ac7eSFrançois Revolhttp://www.quickcamteam.net/
590866ac7eSFrançois Revol
6032065846SFrançois Revol* Sonix linux drivers (several of them):
61ffe8b391SFrançois Revolhttp://sourceforge.net/projects/sonix/ -- http://sonix.sourceforge.net/
6232065846SFrançois Revolhttp://freshmeat.net/projects/sonic-snap/?branch_id=55324&release_id=183982
6332065846SFrançois Revolhttp://tgnard.free.fr/linux/
64ffe8b391SFrançois Revol(datasheet)
65ffe8b391SFrançois Revolhttp://www.mnementh.co.uk/sonix/sn9c102.pdf
6632065846SFrançois Revol
6774b3713aSFrançois Revol* some of the (many!) linux quickcam drivers:
6874b3713aSFrançois Revolhttp://www.lrr.in.tum.de/~acher/quickcam/quickcam.html
6974b3713aSFrançois Revolhttp://www.seismo.ethz.ch/linux/webcam.html
7039cd0ceaSFrançois Revol
7139cd0ceaSFrançois Revol* NW80x based:
7239cd0ceaSFrançois Revolhttp://nw802.cvs.sourceforge.net NW80x based (like the QuickCam I have here)
73d55e0f83SFrançois Revolhttp://tuukkat.awardspace.com/quickcam/quickcam.html for PID 0xd001
7439cd0ceaSFrançois Revolhttp://blognux.free.fr/sources/EasyCam2/04032006_11:11/drivers/nw802/
7539cd0ceaSFrançois Revoldatasheets:
7639cd0ceaSFrançois Revolhttp://www.digchip.com/datasheets/parts/datasheet/132/NW800.php
7774b3713aSFrançois Revol
7874b3713aSFrançois Revol* Creative's own list of linux drivers:
7974b3713aSFrançois Revolhttp://connect.creativelabs.com/opensource/Lists/Webcam%20Support/AllItems.aspx
8074b3713aSFrançois Revol
8132065846SFrançois Revol* Other webcam drivers:
8232065846SFrançois Revolhttp://zc0302.sourceforge.net/zc0302.php?page=cams
8339cd0ceaSFrançois Revolhttp://www.smcc.demon.nl/webcam/ (philips)
84ffe8b391SFrançois Revolhttp://www.medias.ne.jp/~takam/bsd/NetBSD.html
8539cd0ceaSFrançois Revolhttp://blognux.free.fr/sources/EasyCam2/04032006_19:49/
8639cd0ceaSFrançois Revolhttp://www.wifi.com.ar/english/doc/webcam/ov511cameras.html
87c38af24cSFrançois Revolhttp://mxhaard.free.fr/spca5xx.html
8832065846SFrançois Revol
89*40f0a873SFrançois Revolhttp://lkml.indiana.edu/hypermail/linux/kernel/0904.0/03427.html
90*40f0a873SFrançois Revol
9132065846SFrançois Revol* CMOS Sensor datasheets (rather, marketing buzz):
92c38af24cSFrançois Revolhttp://mxhaard.free.fr/spca50x/Doc/ many
9332065846SFrançois Revolhttp://www.tascorp.com.tw/product_file/TAS5110C1B_Brief_V0.3.pdf
9432065846SFrançois Revolhttp://www.tascorp.com.tw/product_file/TAS5130D1B_Brief_V0.3.pdf
95c38af24cSFrançois Revolhttp://www.mnementh.co.uk/sonix/hv7131e1.pdf
9639cd0ceaSFrançois RevolDivio NW80x:
9739cd0ceaSFrançois Revolhttp://www.digchip.com/datasheets/parts/datasheet/132/NW800.php
9839cd0ceaSFrançois Revolhttp://www.digchip.com/datasheets/parts/datasheet/132/NW802.php
9939cd0ceaSFrançois Revolhttp://web.archive.org/web/*/divio.com/*
10039cd0ceaSFrançois RevolAll from eTOMS (ET31X110 would be == NW800 but isn't there):
10139cd0ceaSFrançois Revolhttp://www.etomscorp.com/english/webdesign/product_search.asp
10239cd0ceaSFrançois Revolhttp://web.archive.org/web/*re_pd_sr_1nr_50/http://etomscorp.com/*
10339cd0ceaSFrançois RevolAgilent HDCS:
10439cd0ceaSFrançois Revolhttp://www.ortodoxism.ro/datasheets2/2/05jj45dcrga6zr0zjg7hrde83cpy.pdf
10532065846SFrançois Revol
10632065846SFrançois Revol* Linux USB stack:
10732065846SFrançois Revolhttp://www.iglu.org.il/lxr/source/include/linux/usb.h
10832065846SFrançois Revol
10932065846SFrançois Revol* Linux V4L webcam list:
11032065846SFrançois Revolhttp://linuxtv.org/v4lwiki/index.php/Webcams
11132065846SFrançois Revol
11274b3713aSFrançois Revol* Linux source code crossref:
11374b3713aSFrançois Revolhttp://lxr.linux.no/linux
11474b3713aSFrançois Revol
115ffe8b391SFrançois Revol* Fuji FinePix BeOS driver, should probably be merged at some point:
116ffe8b391SFrançois Revolhttp://bebits.com/app/4185
117ffe8b391SFrançois Revol
11874b3713aSFrançois Revol* Macam generic OSX webcam driver (interesting but sadly GPL and in ObjC):
11974b3713aSFrançois Revolhttp://webcam-osx.sourceforge.net/index.html
12074b3713aSFrançois Revolhttp://webcam-osx.sourceforge.net/cameras/index.php list of supported cams in OSX
12174b3713aSFrançois Revolhttp://sourceforge.net/projects/webcam-osx
122