aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/video4linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 18:20:36 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 18:20:36 -0400
commit1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch)
tree0bba044c4ce775e45a88a51686b5d9f90697ea9d /Documentation/video4linux
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
Diffstat (limited to 'Documentation/video4linux')
-rw-r--r--Documentation/video4linux/API.html399
-rw-r--r--Documentation/video4linux/CARDLIST.bttv121
-rw-r--r--Documentation/video4linux/CARDLIST.saa713435
-rw-r--r--Documentation/video4linux/CARDLIST.tuner46
-rw-r--r--Documentation/video4linux/CQcam.txt412
-rw-r--r--Documentation/video4linux/README.cpia191
-rw-r--r--Documentation/video4linux/README.cx8869
-rw-r--r--Documentation/video4linux/README.ir72
-rw-r--r--Documentation/video4linux/README.saa713473
-rw-r--r--Documentation/video4linux/Zoran557
-rw-r--r--Documentation/video4linux/bttv/CONTRIBUTORS25
-rw-r--r--Documentation/video4linux/bttv/Cards964
-rw-r--r--Documentation/video4linux/bttv/ICs37
-rw-r--r--Documentation/video4linux/bttv/Insmod-options173
-rw-r--r--Documentation/video4linux/bttv/MAKEDEV28
-rw-r--r--Documentation/video4linux/bttv/Modprobe.conf11
-rw-r--r--Documentation/video4linux/bttv/Modules.conf14
-rw-r--r--Documentation/video4linux/bttv/PROBLEMS62
-rw-r--r--Documentation/video4linux/bttv/README90
-rw-r--r--Documentation/video4linux/bttv/README.WINVIEW33
-rw-r--r--Documentation/video4linux/bttv/README.freeze74
-rw-r--r--Documentation/video4linux/bttv/README.quirks83
-rw-r--r--Documentation/video4linux/bttv/Sound-FAQ148
-rw-r--r--Documentation/video4linux/bttv/Specs3
-rw-r--r--Documentation/video4linux/bttv/THANKS24
-rw-r--r--Documentation/video4linux/bttv/Tuners115
-rw-r--r--Documentation/video4linux/meye.txt130
-rw-r--r--Documentation/video4linux/radiotrack.txt147
-rw-r--r--Documentation/video4linux/w9966.txt33
-rw-r--r--Documentation/video4linux/zr36120.txt159
30 files changed, 4328 insertions, 0 deletions
diff --git a/Documentation/video4linux/API.html b/Documentation/video4linux/API.html
new file mode 100644
index 000000000000..4b3d8f640a4a
--- /dev/null
+++ b/Documentation/video4linux/API.html
@@ -0,0 +1,399 @@
1<HTML><HEAD>
2<TITLE>Video4Linux Kernel API Reference v0.1:19990430</TITLE>
3</HEAD>
4<! Revision History: >
5<! 4/30/1999 - Fred Gleason (fredg@wava.com)>
6<! Documented extensions for the Radio Data System (RDS) extensions >
7<BODY bgcolor="#ffffff">
8<H3>Devices</H3>
9Video4Linux provides the following sets of device files. These live on the
10character device formerly known as "/dev/bttv". /dev/bttv should be a
11symlink to /dev/video0 for most people.
12<P>
13<TABLE>
14<TR><TH>Device Name</TH><TH>Minor Range</TH><TH>Function</TH>
15<TR><TD>/dev/video</TD><TD>0-63</TD><TD>Video Capture Interface</TD>
16<TR><TD>/dev/radio</TD><TD>64-127</TD><TD>AM/FM Radio Devices</TD>
17<TR><TD>/dev/vtx</TD><TD>192-223</TD><TD>Teletext Interface Chips</TD>
18<TR><TD>/dev/vbi</TD><TD>224-239</TD><TD>Raw VBI Data (Intercast/teletext)</TD>
19</TABLE>
20<P>
21Video4Linux programs open and scan the devices to find what they are looking
22for. Capability queries define what each interface supports. The
23described API is only defined for video capture cards. The relevant subset
24applies to radio cards. Teletext interfaces talk the existing VTX API.
25<P>
26<H3>Capability Query Ioctl</H3>
27The <B>VIDIOCGCAP</B> ioctl call is used to obtain the capability
28information for a video device. The <b>struct video_capability</b> object
29passed to the ioctl is completed and returned. It contains the following
30information
31<P>
32<TABLE>
33<TR><TD><b>name[32]</b><TD>Canonical name for this interface</TD>
34<TR><TD><b>type</b><TD>Type of interface</TD>
35<TR><TD><b>channels</b><TD>Number of radio/tv channels if appropriate</TD>
36<TR><TD><b>audios</b><TD>Number of audio devices if appropriate</TD>
37<TR><TD><b>maxwidth</b><TD>Maximum capture width in pixels</TD>
38<TR><TD><b>maxheight</b><TD>Maximum capture height in pixels</TD>
39<TR><TD><b>minwidth</b><TD>Minimum capture width in pixels</TD>
40<TR><TD><b>minheight</b><TD>Minimum capture height in pixels</TD>
41</TABLE>
42<P>
43The type field lists the capability flags for the device. These are
44as follows
45<P>
46<TABLE>
47<TR><TH>Name</TH><TH>Description</TH>
48<TR><TD><b>VID_TYPE_CAPTURE</b><TD>Can capture to memory</TD>
49<TR><TD><b>VID_TYPE_TUNER</b><TD>Has a tuner of some form</TD>
50<TR><TD><b>VID_TYPE_TELETEXT</b><TD>Has teletext capability</TD>
51<TR><TD><b>VID_TYPE_OVERLAY</b><TD>Can overlay its image onto the frame buffer</TD>
52<TR><TD><b>VID_TYPE_CHROMAKEY</b><TD>Overlay is Chromakeyed</TD>
53<TR><TD><b>VID_TYPE_CLIPPING</b><TD>Overlay clipping is supported</TD>
54<TR><TD><b>VID_TYPE_FRAMERAM</b><TD>Overlay overwrites frame buffer memory</TD>
55<TR><TD><b>VID_TYPE_SCALES</b><TD>The hardware supports image scaling</TD>
56<TR><TD><b>VID_TYPE_MONOCHROME</b><TD>Image capture is grey scale only</TD>
57<TR><TD><b>VID_TYPE_SUBCAPTURE</b><TD>Capture can be of only part of the image</TD>
58</TABLE>
59<P>
60The minimum and maximum sizes listed for a capture device do not imply all
61that all height/width ratios or sizes within the range are possible. A
62request to set a size will be honoured by the largest available capture
63size whose capture is no large than the requested rectangle in either
64direction. For example the quickcam has 3 fixed settings.
65<P>
66<H3>Frame Buffer</H3>
67Capture cards that drop data directly onto the frame buffer must be told the
68base address of the frame buffer, its size and organisation. This is a
69privileged ioctl and one that eventually X itself should set.
70<P>
71The <b>VIDIOCSFBUF</b> ioctl sets the frame buffer parameters for a capture
72card. If the card does not do direct writes to the frame buffer then this
73ioctl will be unsupported. The <b>VIDIOCGFBUF</b> ioctl returns the
74currently used parameters. The structure used in both cases is a
75<b>struct video_buffer</b>.
76<P>
77<TABLE>
78<TR><TD><b>void *base</b></TD><TD>Base physical address of the buffer</TD>
79<TR><TD><b>int height</b></TD><TD>Height of the frame buffer</TD>
80<TR><TD><b>int width</b></TD><TD>Width of the frame buffer</TD>
81<TR><TD><b>int depth</b></TD><TD>Depth of the frame buffer</TD>
82<TR><TD><b>int bytesperline</b></TD><TD>Number of bytes of memory between the start of two adjacent lines</TD>
83</TABLE>
84<P>
85Note that these values reflect the physical layout of the frame buffer.
86The visible area may be smaller. In fact under XFree86 this is commonly the
87case. XFree86 DGA can provide the parameters required to set up this ioctl.
88Setting the base address to NULL indicates there is no physical frame buffer
89access.
90<P>
91<H3>Capture Windows</H3>
92The capture area is described by a <b>struct video_window</b>. This defines
93a capture area and the clipping information if relevant. The
94<b>VIDIOCGWIN</b> ioctl recovers the current settings and the
95<b>VIDIOCSWIN</b> sets new values. A successful call to <b>VIDIOCSWIN</b>
96indicates that a suitable set of parameters have been chosen. They do not
97indicate that exactly what was requested was granted. The program should
98call <b>VIDIOCGWIN</b> to check if the nearest match was suitable. The
99<b>struct video_window</b> contains the following fields.
100<P>
101<TABLE>
102<TR><TD><b>x</b><TD>The X co-ordinate specified in X windows format.</TD>
103<TR><TD><b>y</b><TD>The Y co-ordinate specified in X windows format.</TD>
104<TR><TD><b>width</b><TD>The width of the image capture.</TD>
105<TR><TD><b>height</b><TD>The height of the image capture.</TD>
106<TR><TD><b>chromakey</b><TD>A host order RGB32 value for the chroma key.</TD>
107<TR><TD><b>flags</b><TD>Additional capture flags.</TD>
108<TR><TD><b>clips</b><TD>A list of clipping rectangles. <em>(Set only)</em></TD>
109<TR><TD><b>clipcount</b><TD>The number of clipping rectangles. <em>(Set only)</em></TD>
110</TABLE>
111<P>
112Clipping rectangles are passed as an array. Each clip consists of the following
113fields available to the user.
114<P>
115<TABLE>
116<TR><TD><b>x</b></TD><TD>X co-ordinate of rectangle to skip</TD>
117<TR><TD><b>y</b></TD><TD>Y co-ordinate of rectangle to skip</TD>
118<TR><TD><b>width</b></TD><TD>Width of rectangle to skip</TD>
119<TR><TD><b>height</b></TD><TD>Height of rectangle to skip</TD>
120</TABLE>
121<P>
122Merely setting the window does not enable capturing. Overlay capturing
123(i.e. PCI-PCI transfer to the frame buffer of the video card)
124is activated by passing the <b>VIDIOCCAPTURE</b> ioctl a value of 1, and
125disabled by passing it a value of 0.
126<P>
127Some capture devices can capture a subfield of the image they actually see.
128This is indicated when VIDEO_TYPE_SUBCAPTURE is defined.
129The video_capture describes the time and special subfields to capture.
130The video_capture structure contains the following fields.
131<P>
132<TABLE>
133<TR><TD><b>x</b></TD><TD>X co-ordinate of source rectangle to grab</TD>
134<TR><TD><b>y</b></TD><TD>Y co-ordinate of source rectangle to grab</TD>
135<TR><TD><b>width</b></TD><TD>Width of source rectangle to grab</TD>
136<TR><TD><b>height</b></TD><TD>Height of source rectangle to grab</TD>
137<TR><TD><b>decimation</b></TD><TD>Decimation to apply</TD>
138<TR><TD><b>flags</b></TD><TD>Flag settings for grabbing</TD>
139</TABLE>
140The available flags are
141<P>
142<TABLE>
143<TR><TH>Name</TH><TH>Description</TH>
144<TR><TD><b>VIDEO_CAPTURE_ODD</b><TD>Capture only odd frames</TD>
145<TR><TD><b>VIDEO_CAPTURE_EVEN</b><TD>Capture only even frames</TD>
146</TABLE>
147<P>
148<H3>Video Sources</H3>
149Each video4linux video or audio device captures from one or more
150source <b>channels</b>. Each channel can be queries with the
151<b>VDIOCGCHAN</b> ioctl call. Before invoking this function the caller
152must set the channel field to the channel that is being queried. On return
153the <b>struct video_channel</b> is filled in with information about the
154nature of the channel itself.
155<P>
156The <b>VIDIOCSCHAN</b> ioctl takes an integer argument and switches the
157capture to this input. It is not defined whether parameters such as colour
158settings or tuning are maintained across a channel switch. The caller should
159maintain settings as desired for each channel. (This is reasonable as
160different video inputs may have different properties).
161<P>
162The <b>struct video_channel</b> consists of the following
163<P>
164<TABLE>
165<TR><TD><b>channel</b></TD><TD>The channel number</TD>
166<TR><TD><b>name</b></TD><TD>The input name - preferably reflecting the label
167on the card input itself</TD>
168<TR><TD><b>tuners</b></TD><TD>Number of tuners for this input</TD>
169<TR><TD><b>flags</b></TD><TD>Properties the tuner has</TD>
170<TR><TD><b>type</b></TD><TD>Input type (if known)</TD>
171<TR><TD><b>norm</b><TD>The norm for this channel</TD>
172</TABLE>
173<P>
174The flags defined are
175<P>
176<TABLE>
177<TR><TD><b>VIDEO_VC_TUNER</b><TD>Channel has tuners.</TD>
178<TR><TD><b>VIDEO_VC_AUDIO</b><TD>Channel has audio.</TD>
179<TR><TD><b>VIDEO_VC_NORM</b><TD>Channel has norm setting.</TD>
180</TABLE>
181<P>
182The types defined are
183<P>
184<TABLE>
185<TR><TD><b>VIDEO_TYPE_TV</b><TD>The input is a TV input.</TD>
186<TR><TD><b>VIDEO_TYPE_CAMERA</b><TD>The input is a camera.</TD>
187</TABLE>
188<P>
189<H3>Image Properties</H3>
190The image properties of the picture can be queried with the <b>VIDIOCGPICT</b>
191ioctl which fills in a <b>struct video_picture</b>. The <b>VIDIOCSPICT</b>
192ioctl allows values to be changed. All values except for the palette type
193are scaled between 0-65535.
194<P>
195The <b>struct video_picture</b> consists of the following fields
196<P>
197<TABLE>
198<TR><TD><b>brightness</b><TD>Picture brightness</TD>
199<TR><TD><b>hue</b><TD>Picture hue (colour only)</TD>
200<TR><TD><b>colour</b><TD>Picture colour (colour only)</TD>
201<TR><TD><b>contrast</b><TD>Picture contrast</TD>
202<TR><TD><b>whiteness</b><TD>The whiteness (greyscale only)</TD>
203<TR><TD><b>depth</b><TD>The capture depth (may need to match the frame buffer depth)</TD>
204<TR><TD><b>palette</b><TD>Reports the palette that should be used for this image</TD>
205</TABLE>
206<P>
207The following palettes are defined
208<P>
209<TABLE>
210<TR><TD><b>VIDEO_PALETTE_GREY</b><TD>Linear intensity grey scale (255 is brightest).</TD>
211<TR><TD><b>VIDEO_PALETTE_HI240</b><TD>The BT848 8bit colour cube.</TD>
212<TR><TD><b>VIDEO_PALETTE_RGB565</b><TD>RGB565 packed into 16 bit words.</TD>
213<TR><TD><b>VIDEO_PALETTE_RGB555</b><TD>RGV555 packed into 16 bit words, top bit undefined.</TD>
214<TR><TD><b>VIDEO_PALETTE_RGB24</b><TD>RGB888 packed into 24bit words.</TD>
215<TR><TD><b>VIDEO_PALETTE_RGB32</b><TD>RGB888 packed into the low 3 bytes of 32bit words. The top 8bits are undefined.</TD>
216<TR><TD><b>VIDEO_PALETTE_YUV422</b><TD>Video style YUV422 - 8bits packed 4bits Y 2bits U 2bits V</TD>
217<TR><TD><b>VIDEO_PALETTE_YUYV</b><TD>Describe me</TD>
218<TR><TD><b>VIDEO_PALETTE_UYVY</b><TD>Describe me</TD>
219<TR><TD><b>VIDEO_PALETTE_YUV420</b><TD>YUV420 capture</TD>
220<TR><TD><b>VIDEO_PALETTE_YUV411</b><TD>YUV411 capture</TD>
221<TR><TD><b>VIDEO_PALETTE_RAW</b><TD>RAW capture (BT848)</TD>
222<TR><TD><b>VIDEO_PALETTE_YUV422P</b><TD>YUV 4:2:2 Planar</TD>
223<TR><TD><b>VIDEO_PALETTE_YUV411P</b><TD>YUV 4:1:1 Planar</TD>
224</TABLE>
225<P>
226<H3>Tuning</H3>
227Each video input channel can have one or more tuners associated with it. Many
228devices will not have tuners. TV cards and radio cards will have one or more
229tuners attached.
230<P>
231Tuners are described by a <b>struct video_tuner</b> which can be obtained by
232the <b>VIDIOCGTUNER</b> ioctl. Fill in the tuner number in the structure
233then pass the structure to the ioctl to have the data filled in. The
234tuner can be switched using <b>VIDIOCSTUNER</b> which takes an integer argument
235giving the tuner to use. A struct tuner has the following fields
236<P>
237<TABLE>
238<TR><TD><b>tuner</b><TD>Number of the tuner</TD>
239<TR><TD><b>name</b><TD>Canonical name for this tuner (eg FM/AM/TV)</TD>
240<TR><TD><b>rangelow</b><TD>Lowest tunable frequency</TD>
241<TR><TD><b>rangehigh</b><TD>Highest tunable frequency</TD>
242<TR><TD><b>flags</b><TD>Flags describing the tuner</TD>
243<TR><TD><b>mode</b><TD>The video signal mode if relevant</TD>
244<TR><TD><b>signal</b><TD>Signal strength if known - between 0-65535</TD>
245</TABLE>
246<P>
247The following flags exist
248<P>
249<TABLE>
250<TR><TD><b>VIDEO_TUNER_PAL</b><TD>PAL tuning is supported</TD>
251<TR><TD><b>VIDEO_TUNER_NTSC</b><TD>NTSC tuning is supported</TD>
252<TR><TD><b>VIDEO_TUNER_SECAM</b><TD>SECAM tuning is supported</TD>
253<TR><TD><b>VIDEO_TUNER_LOW</b><TD>Frequency is in a lower range</TD>
254<TR><TD><b>VIDEO_TUNER_NORM</b><TD>The norm for this tuner is settable</TD>
255<TR><TD><b>VIDEO_TUNER_STEREO_ON</b><TD>The tuner is seeing stereo audio</TD>
256<TR><TD><b>VIDEO_TUNER_RDS_ON</b><TD>The tuner is seeing a RDS datastream</TD>
257<TR><TD><b>VIDEO_TUNER_MBS_ON</b><TD>The tuner is seeing a MBS datastream</TD>
258</TABLE>
259<P>
260The following modes are defined
261<P>
262<TABLE>
263<TR><TD><b>VIDEO_MODE_PAL</b><TD>The tuner is in PAL mode</TD>
264<TR><TD><b>VIDEO_MODE_NTSC</b><TD>The tuner is in NTSC mode</TD>
265<TR><TD><b>VIDEO_MODE_SECAM</b><TD>The tuner is in SECAM mode</TD>
266<TR><TD><b>VIDEO_MODE_AUTO</b><TD>The tuner auto switches, or mode does not apply</TD>
267</TABLE>
268<P>
269Tuning frequencies are an unsigned 32bit value in 1/16th MHz or if the
270<b>VIDEO_TUNER_LOW</b> flag is set they are in 1/16th KHz. The current
271frequency is obtained as an unsigned long via the <b>VIDIOCGFREQ</b> ioctl and
272set by the <b>VIDIOCSFREQ</b> ioctl.
273<P>
274<H3>Audio</H3>
275TV and Radio devices have one or more audio inputs that may be selected.
276The audio properties are queried by passing a <b>struct video_audio</b> to <b>VIDIOCGAUDIO</b> ioctl. The
277<b>VIDIOCSAUDIO</b> ioctl sets audio properties.
278<P>
279The structure contains the following fields
280<P>
281<TABLE>
282<TR><TD><b>audio</b><TD>The channel number</TD>
283<TR><TD><b>volume</b><TD>The volume level</TD>
284<TR><TD><b>bass</b><TD>The bass level</TD>
285<TR><TD><b>treble</b><TD>The treble level</TD>
286<TR><TD><b>flags</b><TD>Flags describing the audio channel</TD>
287<TR><TD><b>name</b><TD>Canonical name for the audio input</TD>
288<TR><TD><b>mode</b><TD>The mode the audio input is in</TD>
289<TR><TD><b>balance</b><TD>The left/right balance</TD>
290<TR><TD><b>step</b><TD>Actual step used by the hardware</TD>
291</TABLE>
292<P>
293The following flags are defined
294<P>
295<TABLE>
296<TR><TD><b>VIDEO_AUDIO_MUTE</b><TD>The audio is muted</TD>
297<TR><TD><b>VIDEO_AUDIO_MUTABLE</b><TD>Audio muting is supported</TD>
298<TR><TD><b>VIDEO_AUDIO_VOLUME</b><TD>The volume is controllable</TD>
299<TR><TD><b>VIDEO_AUDIO_BASS</b><TD>The bass is controllable</TD>
300<TR><TD><b>VIDEO_AUDIO_TREBLE</b><TD>The treble is controllable</TD>
301<TR><TD><b>VIDEO_AUDIO_BALANCE</b><TD>The balance is controllable</TD>
302</TABLE>
303<P>
304The following decoding modes are defined
305<P>
306<TABLE>
307<TR><TD><b>VIDEO_SOUND_MONO</b><TD>Mono signal</TD>
308<TR><TD><b>VIDEO_SOUND_STEREO</b><TD>Stereo signal (NICAM for TV)</TD>
309<TR><TD><b>VIDEO_SOUND_LANG1</b><TD>European TV alternate language 1</TD>
310<TR><TD><b>VIDEO_SOUND_LANG2</b><TD>European TV alternate language 2</TD>
311</TABLE>
312<P>
313<H3>Reading Images</H3>
314Each call to the <b>read</b> syscall returns the next available image
315from the device. It is up to the caller to set format and size (using
316the VIDIOCSPICT and VIDIOCSWIN ioctls) and then to pass a suitable
317size buffer and length to the function. Not all devices will support
318read operations.
319<P>
320A second way to handle image capture is via the mmap interface if supported.
321To use the mmap interface a user first sets the desired image size and depth
322properties. Next the VIDIOCGMBUF ioctl is issued. This reports the size
323of buffer to mmap and the offset within the buffer for each frame. The
324number of frames supported is device dependent and may only be one.
325<P>
326The video_mbuf structure contains the following fields
327<P>
328<TABLE>
329<TR><TD><b>size</b><TD>The number of bytes to map</TD>
330<TR><TD><b>frames</b><TD>The number of frames</TD>
331<TR><TD><b>offsets</b><TD>The offset of each frame</TD>
332</TABLE>
333<P>
334Once the mmap has been made the VIDIOCMCAPTURE ioctl starts the
335capture to a frame using the format and image size specified in the
336video_mmap (which should match or be below the initial query size).
337When the VIDIOCMCAPTURE ioctl returns the frame is <em>not</em>
338captured yet, the driver just instructed the hardware to start the
339capture. The application has to use the VIDIOCSYNC ioctl to wait
340until the capture of a frame is finished. VIDIOCSYNC takes the frame
341number you want to wait for as argument.
342<p>
343It is allowed to call VIDIOCMCAPTURE multiple times (with different
344frame numbers in video_mmap->frame of course) and thus have multiple
345outstanding capture requests. A simple way do to double-buffering
346using this feature looks like this:
347<pre>
348/* setup everything */
349VIDIOCMCAPTURE(0)
350while (whatever) {
351 VIDIOCMCAPTURE(1)
352 VIDIOCSYNC(0)
353 /* process frame 0 while the hardware captures frame 1 */
354 VIDIOCMCAPTURE(0)
355 VIDIOCSYNC(1)
356 /* process frame 1 while the hardware captures frame 0 */
357}
358</pre>
359Note that you are <em>not</em> limited to only two frames. The API
360allows up to 32 frames, the VIDIOCGMBUF ioctl returns the number of
361frames the driver granted. Thus it is possible to build deeper queues
362to avoid loosing frames on load peaks.
363<p>
364While capturing to memory the driver will make a "best effort" attempt
365to capture to screen as well if requested. This normally means all
366frames that "miss" memory mapped capture will go to the display.
367<P>
368A final ioctl exists to allow a device to obtain related devices if a
369driver has multiple components (for example video0 may not be associated
370with vbi0 which would cause an intercast display program to make a bad
371mistake). The VIDIOCGUNIT ioctl reports the unit numbers of the associated
372devices if any exist. The video_unit structure has the following fields.
373<P>
374<TABLE>
375<TR><TD><b>video</b><TD>Video capture device</TD>
376<TR><TD><b>vbi</b><TD>VBI capture device</TD>
377<TR><TD><b>radio</b><TD>Radio device</TD>
378<TR><TD><b>audio</b><TD>Audio mixer</TD>
379<TR><TD><b>teletext</b><TD>Teletext device</TD>
380</TABLE>
381<P>
382<H3>RDS Datastreams</H3>
383For radio devices that support it, it is possible to receive Radio Data
384System (RDS) data by means of a read() on the device. The data is packed in
385groups of three, as follows:
386<TABLE>
387<TR><TD>First Octet</TD><TD>Least Significant Byte of RDS Block</TD></TR>
388<TR><TD>Second Octet</TD><TD>Most Significant Byte of RDS Block
389<TR><TD>Third Octet</TD><TD>Bit 7:</TD><TD>Error bit. Indicates that
390an uncorrectable error occurred during reception of this block.</TD></TR>
391<TR><TD>&nbsp;</TD><TD>Bit 6:</TD><TD>Corrected bit. Indicates that
392an error was corrected for this data block.</TD></TR>
393<TR><TD>&nbsp;</TD><TD>Bits 5-3:</TD><TD>Received Offset. Indicates the
394offset received by the sync system.</TD></TR>
395<TR><TD>&nbsp;</TD><TD>Bits 2-0:</TD><TD>Offset Name. Indicates the
396offset applied to this data.</TD></TR>
397</TABLE>
398</BODY>
399</HTML>
diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv
new file mode 100644
index 000000000000..e46761c39e3f
--- /dev/null
+++ b/Documentation/video4linux/CARDLIST.bttv
@@ -0,0 +1,121 @@
1card=0 - *** UNKNOWN/GENERIC ***
2card=1 - MIRO PCTV
3card=2 - Hauppauge (bt848)
4card=3 - STB, Gateway P/N 6000699 (bt848)
5card=4 - Intel Create and Share PCI/ Smart Video Recorder III
6card=5 - Diamond DTV2000
7card=6 - AVerMedia TVPhone
8card=7 - MATRIX-Vision MV-Delta
9card=8 - Lifeview FlyVideo II (Bt848) LR26 / MAXI TV Video PCI2 LR26
10card=9 - IMS/IXmicro TurboTV
11card=10 - Hauppauge (bt878)
12card=11 - MIRO PCTV pro
13card=12 - ADS Technologies Channel Surfer TV (bt848)
14card=13 - AVerMedia TVCapture 98
15card=14 - Aimslab Video Highway Xtreme (VHX)
16card=15 - Zoltrix TV-Max
17card=16 - Prolink Pixelview PlayTV (bt878)
18card=17 - Leadtek WinView 601
19card=18 - AVEC Intercapture
20card=19 - Lifeview FlyVideo II EZ /FlyKit LR38 Bt848 (capture only)
21card=20 - CEI Raffles Card
22card=21 - Lifeview FlyVideo 98/ Lucky Star Image World ConferenceTV LR50
23card=22 - Askey CPH050/ Phoebe Tv Master + FM
24card=23 - Modular Technology MM201/MM202/MM205/MM210/MM215 PCTV, bt878
25card=24 - Askey CPH05X/06X (bt878) [many vendors]
26card=25 - Terratec TerraTV+ Version 1.0 (Bt848)/ Terra TValue Version 1.0/ Vobis TV-Boostar
27card=26 - Hauppauge WinCam newer (bt878)
28card=27 - Lifeview FlyVideo 98/ MAXI TV Video PCI2 LR50
29card=28 - Terratec TerraTV+ Version 1.1 (bt878)
30card=29 - Imagenation PXC200
31card=30 - Lifeview FlyVideo 98 LR50
32card=31 - Formac iProTV, Formac ProTV I (bt848)
33card=32 - Intel Create and Share PCI/ Smart Video Recorder III
34card=33 - Terratec TerraTValue Version Bt878
35card=34 - Leadtek WinFast 2000/ WinFast 2000 XP
36card=35 - Lifeview FlyVideo 98 LR50 / Chronos Video Shuttle II
37card=36 - Lifeview FlyVideo 98FM LR50 / Typhoon TView TV/FM Tuner
38card=37 - Prolink PixelView PlayTV pro
39card=38 - Askey CPH06X TView99
40card=39 - Pinnacle PCTV Studio/Rave
41card=40 - STB TV PCI FM, Gateway P/N 6000704 (bt878), 3Dfx VoodooTV 100
42card=41 - AVerMedia TVPhone 98
43card=42 - ProVideo PV951
44card=43 - Little OnAir TV
45card=44 - Sigma TVII-FM
46card=45 - MATRIX-Vision MV-Delta 2
47card=46 - Zoltrix Genie TV/FM
48card=47 - Terratec TV/Radio+
49card=48 - Askey CPH03x/ Dynalink Magic TView
50card=49 - IODATA GV-BCTV3/PCI
51card=50 - Prolink PV-BT878P+4E / PixelView PlayTV PAK / Lenco MXTV-9578 CP
52card=51 - Eagle Wireless Capricorn2 (bt878A)
53card=52 - Pinnacle PCTV Studio Pro
54card=53 - Typhoon TView RDS + FM Stereo / KNC1 TV Station RDS
55card=54 - Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]
56card=55 - Askey CPH031/ BESTBUY Easy TV
57card=56 - Lifeview FlyVideo 98FM LR50
58card=57 - GrandTec 'Grand Video Capture' (Bt848)
59card=58 - Askey CPH060/ Phoebe TV Master Only (No FM)
60card=59 - Askey CPH03x TV Capturer
61card=60 - Modular Technology MM100PCTV
62card=61 - AG Electronics GMV1
63card=62 - Askey CPH061/ BESTBUY Easy TV (bt878)
64card=63 - ATI TV-Wonder
65card=64 - ATI TV-Wonder VE
66card=65 - Lifeview FlyVideo 2000S LR90
67card=66 - Terratec TValueRadio
68card=67 - IODATA GV-BCTV4/PCI
69card=68 - 3Dfx VoodooTV FM (Euro), VoodooTV 200 (USA)
70card=69 - Active Imaging AIMMS
71card=70 - Prolink Pixelview PV-BT878P+ (Rev.4C,8E)
72card=71 - Lifeview FlyVideo 98EZ (capture only) LR51
73card=72 - Prolink Pixelview PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM)
74card=73 - Sensoray 311
75card=74 - RemoteVision MX (RV605)
76card=75 - Powercolor MTV878/ MTV878R/ MTV878F
77card=76 - Canopus WinDVR PCI (COMPAQ Presario 3524JP, 5112JP)
78card=77 - GrandTec Multi Capture Card (Bt878)
79card=78 - Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF
80card=79 - DSP Design TCVIDEO
81card=80 - Hauppauge WinTV PVR
82card=81 - IODATA GV-BCTV5/PCI
83card=82 - Osprey 100/150 (878)
84card=83 - Osprey 100/150 (848)
85card=84 - Osprey 101 (848)
86card=85 - Osprey 101/151
87card=86 - Osprey 101/151 w/ svid
88card=87 - Osprey 200/201/250/251
89card=88 - Osprey 200/250
90card=89 - Osprey 210/220
91card=90 - Osprey 500
92card=91 - Osprey 540
93card=92 - Osprey 2000
94card=93 - IDS Eagle
95card=94 - Pinnacle PCTV Sat
96card=95 - Formac ProTV II (bt878)
97card=96 - MachTV
98card=97 - Euresys Picolo
99card=98 - ProVideo PV150
100card=99 - AD-TVK503
101card=100 - Hercules Smart TV Stereo
102card=101 - Pace TV & Radio Card
103card=102 - IVC-200
104card=103 - Grand X-Guard / Trust 814PCI
105card=104 - Nebula Electronics DigiTV
106card=105 - ProVideo PV143
107card=106 - PHYTEC VD-009-X1 MiniDIN (bt878)
108card=107 - PHYTEC VD-009-X1 Combi (bt878)
109card=108 - PHYTEC VD-009 MiniDIN (bt878)
110card=109 - PHYTEC VD-009 Combi (bt878)
111card=110 - IVC-100
112card=111 - IVC-120G
113card=112 - pcHDTV HD-2000 TV
114card=113 - Twinhan DST + clones
115card=114 - Winfast VC100
116card=115 - Teppro TEV-560/InterVision IV-560
117card=116 - SIMUS GVC1100
118card=117 - NGS NGSTV+
119card=118 - LMLBT4
120card=119 - Tekram M205 PRO
121card=120 - Conceptronic CONTVFMi
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
new file mode 100644
index 000000000000..a6c82fa4de02
--- /dev/null
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -0,0 +1,35 @@
1 0 -> UNKNOWN/GENERIC
2 1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001]
3 2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138]
4 3 -> LifeView FlyVIDEO2000 [5168:0138]
5 4 -> EMPRESS [1131:6752]
6 5 -> SKNet Monster TV [1131:4e85]
7 6 -> Tevion MD 9717
8 7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01]
9 8 -> Terratec Cinergy 400 TV [153B:1142]
10 9 -> Medion 5044
11 10 -> Kworld/KuroutoShikou SAA7130-TVPCI
12 11 -> Terratec Cinergy 600 TV [153B:1143]
13 12 -> Medion 7134 [16be:0003]
14 13 -> Typhoon TV+Radio 90031
15 14 -> ELSA EX-VISION 300TV [1048:226b]
16 15 -> ELSA EX-VISION 500TV [1048:226b]
17 16 -> ASUS TV-FM 7134 [1043:4842,1043:4830,1043:4840]
18 17 -> AOPEN VA1000 POWER [1131:7133]
19 18 -> BMK MPEX No Tuner
20 19 -> Compro VideoMate TV [185b:c100]
21 20 -> Matrox CronosPlus [102B:48d0]
22 21 -> 10MOONS PCI TV CAPTURE CARD [1131:2001]
23 22 -> Medion 2819/ AverMedia M156 [1461:a70b,1461:2115]
24 23 -> BMK MPEX Tuner
25 24 -> KNC One TV-Station DVR [1894:a006]
26 25 -> ASUS TV-FM 7133 [1043:4843]
27 26 -> Pinnacle PCTV Stereo (saa7134) [11bd:002b]
28 27 -> Manli MuchTV M-TV002
29 28 -> Manli MuchTV M-TV001
30 29 -> Nagase Sangyo TransGear 3000TV [1461:050c]
31 30 -> Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) [1019:4cb4]
32 31 -> Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM) [1019:4cb5]
33 32 -> AVACS SmartTV
34 33 -> AVerMedia DVD EZMaker [1461:10ff]
35 34 -> LifeView FlyTV Platinum33 mini [5168:0212]
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
new file mode 100644
index 000000000000..f7bafe862ba0
--- /dev/null
+++ b/Documentation/video4linux/CARDLIST.tuner
@@ -0,0 +1,46 @@
1tuner=0 - Temic PAL (4002 FH5)
2tuner=1 - Philips PAL_I (FI1246 and compatibles)
3tuner=2 - Philips NTSC (FI1236,FM1236 and compatibles)
4tuner=3 - Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)
5tuner=4 - NoTuner
6tuner=5 - Philips PAL_BG (FI1216 and compatibles)
7tuner=6 - Temic NTSC (4032 FY5)
8tuner=7 - Temic PAL_I (4062 FY5)
9tuner=8 - Temic NTSC (4036 FY5)
10tuner=9 - Alps HSBH1
11tuner=10 - Alps TSBE1
12tuner=11 - Alps TSBB5
13tuner=12 - Alps TSBE5
14tuner=13 - Alps TSBC5
15tuner=14 - Temic PAL_BG (4006FH5)
16tuner=15 - Alps TSCH6
17tuner=16 - Temic PAL_DK (4016 FY5)
18tuner=17 - Philips NTSC_M (MK2)
19tuner=18 - Temic PAL_I (4066 FY5)
20tuner=19 - Temic PAL* auto (4006 FN5)
21tuner=20 - Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5)
22tuner=21 - Temic NTSC (4039 FR5)
23tuner=22 - Temic PAL/SECAM multi (4046 FM5)
24tuner=23 - Philips PAL_DK (FI1256 and compatibles)
25tuner=24 - Philips PAL/SECAM multi (FQ1216ME)
26tuner=25 - LG PAL_I+FM (TAPC-I001D)
27tuner=26 - LG PAL_I (TAPC-I701D)
28tuner=27 - LG NTSC+FM (TPI8NSR01F)
29tuner=28 - LG PAL_BG+FM (TPI8PSB01D)
30tuner=29 - LG PAL_BG (TPI8PSB11D)
31tuner=30 - Temic PAL* auto + FM (4009 FN5)
32tuner=31 - SHARP NTSC_JP (2U5JF5540)
33tuner=32 - Samsung PAL TCPM9091PD27
34tuner=33 - MT20xx universal
35tuner=34 - Temic PAL_BG (4106 FH5)
36tuner=35 - Temic PAL_DK/SECAM_L (4012 FY5)
37tuner=36 - Temic NTSC (4136 FY5)
38tuner=37 - LG PAL (newer TAPC series)
39tuner=38 - Philips PAL/SECAM multi (FM1216ME MK3)
40tuner=39 - LG NTSC (newer TAPC series)
41tuner=40 - HITACHI V7-J180AT
42tuner=41 - Philips PAL_MK (FI1216 MK)
43tuner=42 - Philips 1236D ATSC/NTSC daul in
44tuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F)
45tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant)
46tuner=45 - Microtune 4049 FM5
diff --git a/Documentation/video4linux/CQcam.txt b/Documentation/video4linux/CQcam.txt
new file mode 100644
index 000000000000..e415e3604539
--- /dev/null
+++ b/Documentation/video4linux/CQcam.txt
@@ -0,0 +1,412 @@
1c-qcam - Connectix Color QuickCam video4linux kernel driver
2
3Copyright (C) 1999 Dave Forrest <drf5n@virginia.edu>
4 released under GNU GPL.
5
61999-12-08 Dave Forrest, written with kernel version 2.2.12 in mind
7
8
9Table of Contents
10
111.0 Introduction
122.0 Compilation, Installation, and Configuration
133.0 Troubleshooting
144.0 Future Work / current work arounds
159.0 Sample Program, v4lgrab
1610.0 Other Information
17
18
191.0 Introduction
20
21 The file ../drivers/char/c-qcam.c is a device driver for the
22Logitech (nee Connectix) parallel port interface color CCD camera.
23This is a fairly inexpensive device for capturing images. Logitech
24does not currently provide information for developers, but many people
25have engineered several solutions for non-Microsoft use of the Color
26Quickcam.
27
281.1 Motivation
29
30 I spent a number of hours trying to get my camera to work, and I
31hope this document saves you some time. My camera will not work with
32the 2.2.13 kernel as distributed, but with a few patches to the
33module, I was able to grab some frames. See 4.0, Future Work.
34
35
36
372.0 Compilation, Installation, and Configuration
38
39 The c-qcam depends on parallel port support, video4linux, and the
40Color Quickcam. It is also nice to have the parallel port readback
41support enabled. I enabled these as modules during the kernel
42configuration. The appropriate flags are:
43
44 CONFIG_PRINTER M for lp.o, parport.o parport_pc.o modules
45 CONFIG_PNP_PARPORT M for autoprobe.o IEEE1284 readback module
46 CONFIG_PRINTER_READBACK M for parport_probe.o IEEE1284 readback module
47 CONFIG_VIDEO_DEV M for videodev.o video4linux module
48 CONFIG_VIDEO_CQCAM M for c-qcam.o Color Quickcam module
49
50 With these flags, the kernel should compile and install the modules.
51To record and monitor the compilation, I use:
52
53 (make zlilo ; \
54 make modules; \
55 make modules_install ;
56 depmod -a ) &>log &
57 less log # then a capital 'F' to watch the progress
58
59But that is my personal preference.
60
612.2 Configuration
62
63 The configuration requires module configuration and device
64configuration. I like kmod or kerneld process with the
65/etc/modprobe.conf file so the modules can automatically load/unload as
66they are used. The video devices could already exist, be generated
67using MAKEDEV, or need to be created. The following sections detail
68these procedures.
69
70
712.1 Module Configuration
72
73 Using modules requires a bit of work to install and pass the
74parameters. Understand that entries in /etc/modprobe.conf of:
75
76 alias parport_lowlevel parport_pc
77 options parport_pc io=0x378 irq=none
78 alias char-major-81 videodev
79 alias char-major-81-0 c-qcam
80
81will cause the kmod/modprobe to do certain things. If you are
82using kmod, then a request for a 'char-major-81-0' will cause
83the 'c-qcam' module to load. If you have other video sources with
84modules, you might want to assign the different minor numbers to
85different modules.
86
872.2 Device Configuration
88
89 At this point, we need to ensure that the device files exist.
90Video4linux used the /dev/video* files, and we want to attach the
91Quickcam to one of these.
92
93 ls -lad /dev/video* # should produce a list of the video devices
94
95If the video devices do not exist, you can create them with:
96
97 su
98 cd /dev
99 for ii in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
100 mknod video$ii c 81 $ii # char-major-81-[0-16]
101 chown root.root video$ii # owned by root
102 chmod 600 video$ii # read/writable by root only
103 done
104
105 Lots of people connect video0 to video and bttv, but you might want
106your c-qcam to mean something more:
107
108 ln -s video0 c-qcam # make /dev/c-qcam a working file
109 ln -s c-qcam video # make /dev/c-qcam your default video source
110
111 But these are conveniences. The important part is to make the proper
112special character files with the right major and minor numbers. All
113of the special device files are listed in ../devices.txt. If you
114would like the c-qcam readable by non-root users, you will need to
115change the permissions.
116
1173.0 Troubleshooting
118
119 If the sample program below, v4lgrab, gives you output then
120everything is working.
121
122 v4lgrab | wc # should give you a count of characters
123
124 Otherwise, you have some problem.
125
126 The c-qcam is IEEE1284 compatible, so if you are using the proc file
127system (CONFIG_PROC_FS), the parallel printer support
128(CONFIG_PRINTER), the IEEE 1284 system,(CONFIG_PRINTER_READBACK), you
129should be able to read some identification from your quickcam with
130
131 modprobe -v parport
132 modprobe -v parport_probe
133 cat /proc/parport/PORTNUMBER/autoprobe
134Returns:
135 CLASS:MEDIA;
136 MODEL:Color QuickCam 2.0;
137 MANUFACTURER:Connectix;
138
139 A good response to this indicates that your color quickcam is alive
140and well. A common problem is that the current driver does not
141reliably detect a c-qcam, even though one is attached. In this case,
142
143 modprobe -v c-qcam
144or
145 insmod -v c-qcam
146
147 Returns a message saying "Device or resource busy" Development is
148currently underway, but a workaround is to patch the module to skip
149the detection code and attach to a defined port. Check the
150video4linux mailing list and archive for more current information.
151
1523.1 Checklist:
153
154 Can you get an image?
155 v4lgrab >qcam.ppm ; wc qcam.ppm ; xv qcam.ppm
156
157 Is a working c-qcam connected to the port?
158 grep ^ /proc/parport/?/autoprobe
159
160 Do the /dev/video* files exist?
161 ls -lad /dev/video
162
163 Is the c-qcam module loaded?
164 modprobe -v c-qcam ; lsmod
165
166 Does the camera work with alternate programs? cqcam, etc?
167
168
169
170
1714.0 Future Work / current workarounds
172
173 It is hoped that this section will soon become obsolete, but if it
174isn't, you might try patching the c-qcam module to add a parport=xxx
175option as in the bw-qcam module so you can specify the parallel port:
176
177 insmod -v c-qcam parport=0
178
179And bypass the detection code, see ../../drivers/char/c-qcam.c and
180look for the 'qc_detect' code and call.
181
182 Note that there is work in progress to change the video4linux API,
183this work is documented at the video4linux2 site listed below.
184
185
1869.0 --- A sample program using v4lgrabber,
187
188This program is a simple image grabber that will copy a frame from the
189first video device, /dev/video0 to standard output in portable pixmap
190format (.ppm) Using this like: 'v4lgrab | convert - c-qcam.jpg'
191produced this picture of me at
192 http://mug.sys.virginia.edu/~drf5n/extras/c-qcam.jpg
193
194-------------------- 8< ---------------- 8< -----------------------------
195
196/* Simple Video4Linux image grabber. */
197/*
198 * Video4Linux Driver Test/Example Framegrabbing Program
199 *
200 * Compile with:
201 * gcc -s -Wall -Wstrict-prototypes v4lgrab.c -o v4lgrab
202 * Use as:
203 * v4lgrab >image.ppm
204 *
205 * Copyright (C) 1998-05-03, Phil Blundell <philb@gnu.org>
206 * Copied from http://www.tazenda.demon.co.uk/phil/vgrabber.c
207 * with minor modifications (Dave Forrest, drf5n@virginia.edu).
208 *
209 */
210
211#include <unistd.h>
212#include <sys/types.h>
213#include <sys/stat.h>
214#include <fcntl.h>
215#include <stdio.h>
216#include <sys/ioctl.h>
217#include <stdlib.h>
218
219#include <linux/types.h>
220#include <linux/videodev.h>
221
222#define FILE "/dev/video0"
223
224/* Stole this from tvset.c */
225
226#define READ_VIDEO_PIXEL(buf, format, depth, r, g, b) \
227{ \
228 switch (format) \
229 { \
230 case VIDEO_PALETTE_GREY: \
231 switch (depth) \
232 { \
233 case 4: \
234 case 6: \
235 case 8: \
236 (r) = (g) = (b) = (*buf++ << 8);\
237 break; \
238 \
239 case 16: \
240 (r) = (g) = (b) = \
241 *((unsigned short *) buf); \
242 buf += 2; \
243 break; \
244 } \
245 break; \
246 \
247 \
248 case VIDEO_PALETTE_RGB565: \
249 { \
250 unsigned short tmp = *(unsigned short *)buf; \
251 (r) = tmp&0xF800; \
252 (g) = (tmp<<5)&0xFC00; \
253 (b) = (tmp<<11)&0xF800; \
254 buf += 2; \
255 } \
256 break; \
257 \
258 case VIDEO_PALETTE_RGB555: \
259 (r) = (buf[0]&0xF8)<<8; \
260 (g) = ((buf[0] << 5 | buf[1] >> 3)&0xF8)<<8; \
261 (b) = ((buf[1] << 2 ) & 0xF8)<<8; \
262 buf += 2; \
263 break; \
264 \
265 case VIDEO_PALETTE_RGB24: \
266 (r) = buf[0] << 8; (g) = buf[1] << 8; \
267 (b) = buf[2] << 8; \
268 buf += 3; \
269 break; \
270 \
271 default: \
272 fprintf(stderr, \
273 "Format %d not yet supported\n", \
274 format); \
275 } \
276}
277
278int get_brightness_adj(unsigned char *image, long size, int *brightness) {
279 long i, tot = 0;
280 for (i=0;i<size*3;i++)
281 tot += image[i];
282 *brightness = (128 - tot/(size*3))/3;
283 return !((tot/(size*3)) >= 126 && (tot/(size*3)) <= 130);
284}
285
286int main(int argc, char ** argv)
287{
288 int fd = open(FILE, O_RDONLY), f;
289 struct video_capability cap;
290 struct video_window win;
291 struct video_picture vpic;
292
293 unsigned char *buffer, *src;
294 int bpp = 24, r, g, b;
295 unsigned int i, src_depth;
296
297 if (fd < 0) {
298 perror(FILE);
299 exit(1);
300 }
301
302 if (ioctl(fd, VIDIOCGCAP, &cap) < 0) {
303 perror("VIDIOGCAP");
304 fprintf(stderr, "(" FILE " not a video4linux device?)\n");
305 close(fd);
306 exit(1);
307 }
308
309 if (ioctl(fd, VIDIOCGWIN, &win) < 0) {
310 perror("VIDIOCGWIN");
311 close(fd);
312 exit(1);
313 }
314
315 if (ioctl(fd, VIDIOCGPICT, &vpic) < 0) {
316 perror("VIDIOCGPICT");
317 close(fd);
318 exit(1);
319 }
320
321 if (cap.type & VID_TYPE_MONOCHROME) {
322 vpic.depth=8;
323 vpic.palette=VIDEO_PALETTE_GREY; /* 8bit grey */
324 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
325 vpic.depth=6;
326 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
327 vpic.depth=4;
328 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
329 fprintf(stderr, "Unable to find a supported capture format.\n");
330 close(fd);
331 exit(1);
332 }
333 }
334 }
335 } else {
336 vpic.depth=24;
337 vpic.palette=VIDEO_PALETTE_RGB24;
338
339 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
340 vpic.palette=VIDEO_PALETTE_RGB565;
341 vpic.depth=16;
342
343 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
344 vpic.palette=VIDEO_PALETTE_RGB555;
345 vpic.depth=15;
346
347 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
348 fprintf(stderr, "Unable to find a supported capture format.\n");
349 return -1;
350 }
351 }
352 }
353 }
354
355 buffer = malloc(win.width * win.height * bpp);
356 if (!buffer) {
357 fprintf(stderr, "Out of memory.\n");
358 exit(1);
359 }
360
361 do {
362 int newbright;
363 read(fd, buffer, win.width * win.height * bpp);
364 f = get_brightness_adj(buffer, win.width * win.height, &newbright);
365 if (f) {
366 vpic.brightness += (newbright << 8);
367 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
368 perror("VIDIOSPICT");
369 break;
370 }
371 }
372 } while (f);
373
374 fprintf(stdout, "P6\n%d %d 255\n", win.width, win.height);
375
376 src = buffer;
377
378 for (i = 0; i < win.width * win.height; i++) {
379 READ_VIDEO_PIXEL(src, vpic.palette, src_depth, r, g, b);
380 fputc(r>>8, stdout);
381 fputc(g>>8, stdout);
382 fputc(b>>8, stdout);
383 }
384
385 close(fd);
386 return 0;
387}
388-------------------- 8< ---------------- 8< -----------------------------
389
390
39110.0 --- Other Information
392
393Use the ../../Maintainers file, particularly the VIDEO FOR LINUX and PARALLEL
394PORT SUPPORT sections
395
396The video4linux page:
397 http://roadrunner.swansea.linux.org.uk/v4l.shtml
398
399The video4linux2 page:
400 http://millennium.diads.com/bdirks/v4l2.htm
401
402Some web pages about the quickcams:
403 http://www.dkfz-heidelberg.de/Macromol/wedemann/mini-HOWTO-cqcam.html
404
405 http://www.crynwr.com/qcpc/ QuickCam Third-Party Drivers
406 http://www.crynwr.com/qcpc/re.html Some Reverse Engineering
407 http://cse.unl.edu/~cluening/gqcam/ v4l client
408 http://phobos.illtel.denver.co.us/pub/qcread/ doesn't use v4l
409 ftp://ftp.cs.unm.edu/pub/chris/quickcam/ Has lots of drivers
410 http://www.cs.duke.edu/~reynolds/quickcam/ Has lots of information
411
412
diff --git a/Documentation/video4linux/README.cpia b/Documentation/video4linux/README.cpia
new file mode 100644
index 000000000000..c95e7bbc0fdf
--- /dev/null
+++ b/Documentation/video4linux/README.cpia
@@ -0,0 +1,191 @@
1This is a driver for the CPiA PPC2 driven parallel connected
2Camera. For example the Creative WebcamII is CPiA driven.
3
4 ) [1]Peter Pregler, Linz 2000, published under the [2]GNU GPL
5
6---------------------------------------------------------------------------
7
8USAGE:
9
10General:
11========
12
131) Make sure you have created the video devices (/dev/video*):
14
15- if you have a recent MAKEDEV do a 'cd /dev;./MAKEDEV video'
16- otherwise do a:
17
18cd /dev
19mknod video0 c 81 0
20ln -s video0 video
21
222) Compile the kernel (see below for the list of options to use),
23 configure your parport and reboot.
24
253) If all worked well you should get messages similar
26 to the following (your versions may be different) on the console:
27
28V4L-Driver for Vision CPiA based cameras v0.7.4
29parport0: read2 timeout.
30parport0: Multimedia device, VLSI Vision Ltd PPC2
31Parallel port driver for Vision CPiA based camera
32 CPIA Version: 1.20 (2.0)
33 CPIA PnP-ID: 0553:0002:0100
34 VP-Version: 1.0 0100
35 1 camera(s) found
36
37
38As modules:
39===========
40
41Make sure you have selected the following kernel options (you can
42select all stuff as modules):
43
44The cpia-stuff is in the section 'Character devices -> Video For Linux'.
45
46CONFIG_PARPORT=m
47CONFIG_PARPORT_PC=m
48CONFIG_PARPORT_PC_FIFO=y
49CONFIG_PARPORT_1284=y
50CONFIG_VIDEO_DEV=m
51CONFIG_VIDEO_CPIA=m
52CONFIG_VIDEO_CPIA_PP=m
53
54For autoloading of all those modules you need to tell module-init-tools
55some stuff. Add the following line to your module-init-tools config-file
56(e.g. /etc/modprobe.conf or wherever your distribution does store that
57stuff):
58
59options parport_pc io=0x378 irq=7 dma=3
60alias char-major-81 cpia_pp
61
62The first line tells the dma/irq channels to use. Those _must_ match
63the settings of your BIOS. Do NOT simply use the values above. See
64Documentation/parport.txt for more information about this. The second
65line associates the video-device file with the driver. Of cause you
66can also load the modules once upon boot (usually done in /etc/modules).
67
68Linked into the kernel:
69=======================
70
71Make sure you have selected the following kernel options. Note that
72you cannot compile the parport-stuff as modules and the cpia-driver
73statically (the other way round is okay though).
74
75The cpia-stuff is in the section 'Character devices -> Video For Linux'.
76
77CONFIG_PARPORT=y
78CONFIG_PARPORT_PC=y
79CONFIG_PARPORT_PC_FIFO=y
80CONFIG_PARPORT_1284=y
81CONFIG_VIDEO_DEV=y
82CONFIG_VIDEO_CPIA=y
83CONFIG_VIDEO_CPIA_PP=y
84
85To use DMA/irq you will need to tell the kernel upon boot time the
86hardware configuration of the parport. You can give the boot-parameter
87at the LILO-prompt or specify it in lilo.conf. I use the following
88append-line in lilo.conf:
89
90 append="parport=0x378,7,3"
91
92See Documentation/parport.txt for more information about the
93configuration of the parport and the values given above. Do not simply
94use the values given above.
95
96---------------------------------------------------------------------------
97FEATURES:
98
99- mmap/read v4l-interface (but no overlay)
100- image formats: CIF/QCIF, SIF/QSIF, various others used by isabel;
101 note: all sizes except CIF/QCIF are implemented by clipping, i.e.
102 pixels are not uploaded from the camera
103- palettes: VIDEO_PALETTE_GRAY, VIDEO_PALETTE_RGB565, VIDEO_PALETTE_RGB555,
104 VIDEO_PALETTE_RGB24, VIDEO_PALETTE_RGB32, VIDEO_PALETTE_YUYV,
105 VIDEO_PALETTE_UYVY, VIDEO_PALETTE_YUV422
106- state information (color balance, exposure, ...) is preserved between
107 device opens
108- complete control over camera via proc-interface (_all_ camera settings are
109 supported), there is also a python-gtk application available for this [3]
110- works under SMP (but the driver is completely serialized and synchronous)
111 so you get no benefit from SMP, but at least it does not crash your box
112- might work for non-Intel architecture, let us know about this
113
114---------------------------------------------------------------------------
115TESTED APPLICATIONS:
116
117- a simple test application based on Xt is available at [3]
118- another test-application based on gqcam-0.4 (uses GTK)
119- gqcam-0.6 should work
120- xawtv-3.x (also the webcam software)
121- xawtv-2.46
122- w3cam (cgi-interface and vidcat, e.g. you may try out 'vidcat |xv
123 -maxpect -root -quit +noresetroot -rmode 5 -')
124- vic, the MBONE video conferencing tool (version 2.8ucl4-1)
125- isabel 3R4beta (barely working, but AFAICT all the problems are on
126 their side)
127- camserv-0.40
128
129See [3] for pointers to v4l-applications.
130
131---------------------------------------------------------------------------
132KNOWN PROBLEMS:
133
134- some applications do not handle the image format correctly, you will
135 see strange horizontal stripes instead of a nice picture -> make sure
136 your application does use a supported image size or queries the driver
137 for the actually used size (reason behind this: the camera cannot
138 provide any image format, so if size NxM is requested the driver will
139 use a format to the closest fitting N1xM1, the application should now
140 query for this granted size, most applications do not).
141- all the todo ;)
142- if there is not enough light and the picture is too dark try to
143 adjust the SetSensorFPS setting, automatic frame rate adjustment
144 has its price
145- do not try out isabel 3R4beta (built 135), you will be disappointed
146
147---------------------------------------------------------------------------
148TODO:
149
150- multiple camera support (struct camera or something) - This should work,
151 but hasn't been tested yet.
152- architecture independence?
153- SMP-safe asynchronous mmap interface
154- nibble mode for old parport interfaces
155- streaming capture, this should give a performance gain
156
157---------------------------------------------------------------------------
158IMPLEMENTATION NOTES:
159
160The camera can act in two modes, streaming or grabbing. Right now a
161polling grab-scheme is used. Maybe interrupt driven streaming will be
162used for a asynchronous mmap interface in the next major release of the
163driver. This might give a better frame rate.
164
165---------------------------------------------------------------------------
166THANKS (in no particular order):
167
168- Scott J. Bertin <sbertin@mindspring.com> for cleanups, the proc-filesystem
169 and much more
170- Henry Bruce <whb@vvl.co.uk> for providing developers information about
171 the CPiA chip, I wish all companies would treat Linux as seriously
172- Karoly Erdei <Karoly.Erdei@risc.uni-linz.ac.at> and RISC-Linz for being
173 my boss ;) resp. my employer and for providing me the hardware and
174 allow me to devote some working time to this project
175- Manuel J. Petit de Gabriel <mpetit@dit.upm.es> for providing help
176 with Isabel (http://isabel.dit.upm.es/)
177- Bas Huisman <bhuism@cs.utwente.nl> for writing the initial parport code
178- Jarl Totland <Jarl.Totland@bdc.no> for setting up the mailing list
179 and maintaining the web-server[3]
180- Chris Whiteford <Chris@informinteractive.com> for fixes related to the
181 1.02 firmware
182- special kudos to all the tester whose machines crashed and/or
183 will crash. :)
184
185---------------------------------------------------------------------------
186REFERENCES
187
188 1. http://www.risc.uni-linz.ac.at/people/ppregler
189 mailto:Peter_Pregler@email.com
190 2. see the file COPYING in the top directory of the kernel tree
191 3. http://webcam.sourceforge.net/
diff --git a/Documentation/video4linux/README.cx88 b/Documentation/video4linux/README.cx88
new file mode 100644
index 000000000000..897ab834839a
--- /dev/null
+++ b/Documentation/video4linux/README.cx88
@@ -0,0 +1,69 @@
1
2cx8800 release notes
3====================
4
5This is a v4l2 device driver for the cx2388x chip.
6
7
8current status
9==============
10
11video
12 - Basically works.
13 - Some minor image quality glitches.
14 - For now only capture, overlay support isn't completed yet.
15
16audio
17 - The chip specs for the on-chip TV sound decoder are next
18 to useless :-/
19 - Neverless the builtin TV sound decoder starts working now,
20 at least for PAL-BG. Other TV norms need other code ...
21 FOR ANY REPORTS ON THIS PLEASE MENTION THE TV NORM YOU ARE
22 USING.
23 - Most tuner chips do provide mono sound, which may or may not
24 be useable depending on the board design. With the Hauppauge
25 cards it works, so there is mono sound available as fallback.
26 - audio data dma (i.e. recording without loopback cable to the
27 sound card) should be possible, but there is no code yet ...
28
29vbi
30 - some code present. Doesn't crash any more, but also doesn't
31 work yet ...
32
33
34how to add support for new cards
35================================
36
37The driver needs some config info for the TV cards. This stuff is in
38cx88-cards.c. If the driver doesn't work well you likely need a new
39entry for your card in that file. Check the kernel log (using dmesg)
40to see whenever the driver knows your card or not. There is a line
41like this one:
42
43 cx8800[0]: subsystem: 0070:3400, board: Hauppauge WinTV \
44 34xxx models [card=1,autodetected]
45
46If your card is listed as "board: UNKNOWN/GENERIC" it is unknown to
47the driver. What to do then?
48
49 (1) Try upgrading to the latest snapshot, maybe it has been added
50 meanwhile.
51 (2) You can try to create a new entry yourself, have a look at
52 cx88-cards.c. If that worked, mail me your changes as unified
53 diff ("diff -u").
54 (3) Or you can mail me the config information. I need at least the
55 following informations to add the card:
56
57 * the PCI Subsystem ID ("0070:3400" from the line above,
58 "lspci -v" output is fine too).
59 * the tuner type used by the card. You can try to find one by
60 trial-and-error using the tuner=<n> insmod option. If you
61 know which one the card has you can also have a look at the
62 list in CARDLIST.tuner
63
64Have fun,
65
66 Gerd
67
68--
69Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
diff --git a/Documentation/video4linux/README.ir b/Documentation/video4linux/README.ir
new file mode 100644
index 000000000000..0da47a847056
--- /dev/null
+++ b/Documentation/video4linux/README.ir
@@ -0,0 +1,72 @@
1
2infrared remote control support in video4linux drivers
3======================================================
4
5
6basics
7------
8
9Current versions use the linux input layer to support infrared
10remote controls. I suggest to download my input layer tools
11from http://bytesex.org/snapshot/input-<date>.tar.gz
12
13Modules you have to load:
14
15 saa7134 statically built in, i.e. just the driver :)
16 bttv ir-kbd-gpio or ir-kbd-i2c depending on your
17 card.
18
19ir-kbd-gpio and ir-kbd-i2c don't support all cards lirc supports
20(yet), mainly for the reason that the code of lirc_i2c and lirc_gpio
21was very confusing and I decided to basically start over from scratch.
22Feel free to contact me in case of trouble. Note that the ir-kbd-*
23modules work on 2.6.x kernels only through ...
24
25
26how it works
27------------
28
29The modules register the remote as keyboard within the linux input
30layer, i.e. you'll see the keys of the remote as normal key strokes
31(if CONFIG_INPUT_KEYBOARD is enabled).
32
33Using the event devices (CONFIG_INPUT_EVDEV) it is possible for
34applications to access the remote via /dev/input/event<n> devices.
35You might have to create the special files using "/sbin/MAKEDEV
36input". The input layer tools mentioned above use the event device.
37
38The input layer tools are nice for trouble shooting, i.e. to check
39whenever the input device is really present, which of the devices it
40is, check whenever pressing keys on the remote actually generates
41events and the like. You can also use the kbd utility to change the
42keymaps (2.6.x kernels only through).
43
44
45using with lircd
46================
47
48The cvs version of the lircd daemon supports reading events from the
49linux input layer (via event device). The input layer tools tarball
50comes with a lircd config file.
51
52
53using without lircd
54===================
55
56XFree86 likely can be configured to recognise the remote keys. Once I
57simply tried to configure one of the multimedia keyboards as input
58device, which had the effect that XFree86 recognised some of the keys
59of my remote control and passed volume up/down key presses as
60XF86AudioRaiseVolume and XF86AudioLowerVolume key events to the X11
61clients.
62
63It likely is possible to make that fly with a nice xkb config file,
64I know next to nothing about that through.
65
66
67Have fun,
68
69 Gerd
70
71--
72Gerd Knorr <kraxel@bytesex.org>
diff --git a/Documentation/video4linux/README.saa7134 b/Documentation/video4linux/README.saa7134
new file mode 100644
index 000000000000..1a446c65365e
--- /dev/null
+++ b/Documentation/video4linux/README.saa7134
@@ -0,0 +1,73 @@
1
2
3What is it?
4===========
5
6This is a v4l2/oss device driver for saa7130/33/34/35 based capture / TV
7boards. See http://www.semiconductors.philips.com/pip/saa7134hl for a
8description.
9
10
11Status
12======
13
14Almost everything is working. video, sound, tuner, radio, mpeg ts, ...
15
16As with bttv, card-specific tweaks are needed. Check CARDLIST for a
17list of known TV cards and saa7134-cards.c for the drivers card
18configuration info.
19
20
21Build
22=====
23
24Pick up videodev + v4l2 patches from http://bytesex.org/patches/.
25Configure, build, install + boot the new kernel. You'll need at least
26these config options:
27
28 CONFIG_I2C=m
29 CONFIG_VIDEO_DEV=m
30
31Type "make" to build the driver now. "make install" installs the
32driver. "modprobe saa7134" should load it. Depending on the card you
33might have to pass card=<nr> as insmod option, check CARDLIST for
34valid choices.
35
36
37Changes / Fixes
38===============
39
40Please mail me unified diffs ("diff -u") with your changes, and don't
41forget to tell me what it changes / which problem it fixes / whatever
42it is good for ...
43
44
45Known Problems
46==============
47
48* The tuner for the flyvideos isn't detected automatically and the
49 default might not work for you depending on which version you have.
50 There is a tuner= insmod option to override the driver's default.
51
52Card Variations:
53================
54
55Cards can use either of these two crystals (xtal):
56 - 32.11 MHz -> .audio_clock=0x187de7
57 - 24.576MHz -> .audio_clock=0x200000
58(xtal * .audio_clock = 51539600)
59
60
61Credits
62=======
63
64andrew.stevens@philips.com + werner.leeb@philips.com for providing
65saa7134 hardware specs and sample board.
66
67
68Have fun,
69
70 Gerd
71
72--
73Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
diff --git a/Documentation/video4linux/Zoran b/Documentation/video4linux/Zoran
new file mode 100644
index 000000000000..01425c21986b
--- /dev/null
+++ b/Documentation/video4linux/Zoran
@@ -0,0 +1,557 @@
1Frequently Asked Questions:
2===========================
3subject: unified zoran driver (zr360x7, zoran, buz, dc10(+), dc30(+), lml33)
4website: http://mjpeg.sourceforge.net/driver-zoran/
5
61. What cards are supported
71.1 What the TV decoder can do an what not
81.2 What the TV encoder can do an what not
92. How do I get this damn thing to work
103. What mainboard should I use (or why doesn't my card work)
114. Programming interface
125. Applications
136. Concerning buffer sizes, quality, output size etc.
147. It hangs/crashes/fails/whatevers! Help!
158. Maintainers/Contacting
169. License
17
18===========================
19
201. What cards are supported
21
22Iomega Buz, Linux Media Labs LML33/LML33R10, Pinnacle/Miro
23DC10/DC10+/DC30/DC30+ and related boards (available under various names).
24
25Iomega Buz:
26* Zoran zr36067 PCI controller
27* Zoran zr36060 MJPEG codec
28* Philips saa7111 TV decoder
29* Philips saa7185 TV encoder
30Drivers to use: videodev, i2c-core, i2c-algo-bit,
31 videocodec, saa7111, saa7185, zr36060, zr36067
32Inputs/outputs: Composite and S-video
33Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
34Card number: 7
35
36Linux Media Labs LML33:
37* Zoran zr36067 PCI controller
38* Zoran zr36060 MJPEG codec
39* Brooktree bt819 TV decoder
40* Brooktree bt856 TV encoder
41Drivers to use: videodev, i2c-core, i2c-algo-bit,
42 videocodec, bt819, bt856, zr36060, zr36067
43Inputs/outputs: Composite and S-video
44Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
45Card number: 5
46
47Linux Media Labs LML33R10:
48* Zoran zr36067 PCI controller
49* Zoran zr36060 MJPEG codec
50* Philips saa7114 TV decoder
51* Analog Devices adv7170 TV encoder
52Drivers to use: videodev, i2c-core, i2c-algo-bit,
53 videocodec, saa7114, adv7170, zr36060, zr36067
54Inputs/outputs: Composite and S-video
55Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
56Card number: 6
57
58Pinnacle/Miro DC10(new):
59* Zoran zr36057 PCI controller
60* Zoran zr36060 MJPEG codec
61* Philips saa7110a TV decoder
62* Analog Devices adv7176 TV encoder
63Drivers to use: videodev, i2c-core, i2c-algo-bit,
64 videocodec, saa7110, adv7175, zr36060, zr36067
65Inputs/outputs: Composite, S-video and Internal
66Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
67Card number: 1
68
69Pinnacle/Miro DC10+:
70* Zoran zr36067 PCI controller
71* Zoran zr36060 MJPEG codec
72* Philips saa7110a TV decoder
73* Analog Devices adv7176 TV encoder
74Drivers to use: videodev, i2c-core, i2c-algo-bit,
75 videocodec, sa7110, adv7175, zr36060, zr36067
76Inputs/outputs: Composite, S-video and Internal
77Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
78Card number: 2
79
80Pinnacle/Miro DC10(old): *
81* Zoran zr36057 PCI controller
82* Zoran zr36050 MJPEG codec
83* Zoran zr36016 Video Front End or Fuji md0211 Video Front End (clone?)
84* Micronas vpx3220a TV decoder
85* mse3000 TV encoder or Analog Devices adv7176 TV encoder *
86Drivers to use: videodev, i2c-core, i2c-algo-bit,
87 videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067
88Inputs/outputs: Composite, S-video and Internal
89Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
90Card number: 0
91
92Pinnacle/Miro DC30: *
93* Zoran zr36057 PCI controller
94* Zoran zr36050 MJPEG codec
95* Zoran zr36016 Video Front End
96* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
97* Analog Devices adv7176 TV encoder
98Drivers to use: videodev, i2c-core, i2c-algo-bit,
99 videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067
100Inputs/outputs: Composite, S-video and Internal
101Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
102Card number: 3
103
104Pinnacle/Miro DC30+: *
105* Zoran zr36067 PCI controller
106* Zoran zr36050 MJPEG codec
107* Zoran zr36016 Video Front End
108* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
109* Analog Devices adv7176 TV encoder
110Drivers to use: videodev, i2c-core, i2c-algo-bit,
111 videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36015, zr36067
112Inputs/outputs: Composite, S-video and Internal
113Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
114Card number: 4
115
116Note: No module for the mse3000 is available yet
117Note: No module for the vpx3224 is available yet
118Note: use encoder=X or decoder=X for non-default i2c chips (see i2c-id.h)
119
120===========================
121
1221.1 What the TV decoder can do an what not
123
124The best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that
125information is not enough. There are several formats of the TV standards.
126And not every TV decoder is able to handle every format. Also the every
127combination is supported by the driver. There are currently 11 different
128tv broadcast formats all aver the world.
129
130The CCIR defines parameters needed for broadcasting the signal.
131The CCIR has defined different standards: A,B,D,E,F,G,D,H,I,K,K1,L,M,N,...
132The CCIR says not much about about the colorsystem used !!!
133And talking about a colorsystem says not to much about how it is broadcast.
134
135The CCIR standards A,E,F are not used any more.
136
137When you speak about NTSC, you usually mean the standard: CCIR - M using
138the NTSC colorsystem which is used in the USA, Japan, Mexico, Canada
139and a few others.
140
141When you talk about PAL, you usually mean: CCIR - B/G using the PAL
142colorsystem which is used in many Countries.
143
144When you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem
145which is used in France, and a few others.
146
147There the other version of SECAM, CCIR - D/K is used in Bulgaria, China,
148Slovakai, Hungary, Korea (Rep.), Poland, Rumania and a others.
149
150The CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in
151Egypt, Libya, Sri Lanka, Syrain Arab. Rep.
152
153The CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong,
154Ireland, Nigeria, South Africa.
155
156The CCIR - N uses the PAL colorsystem and PAL frame size but the NTSC framerate,
157and is used in Argentinia, Uruguay, an a few others
158
159We do not talk about how the audio is broadcast !
160
161A rather good sites about the TV standards are:
162http://www.sony.jp/ServiceArea/Voltage_map/
163http://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/
164and http://www.cabl.com/restaurant/channel.html
165
166Other weird things around: NTSC 4.43 is a modificated NTSC, which is mainly
167used in PAL VCR's that are able to play back NTSC. PAL 60 seems to be the same
168as NTSC 4.43 . The Datasheets also talk about NTSC 44, It seems as if it would
169be the same as NTSC 4.43.
170NTSC Combs seems to be a decoder mode where the decoder uses a comb filter
171to split coma and luma instead of a Delay line.
172
173But I did not defiantly find out what NTSC Comb is.
174
175Philips saa7111 TV decoder
176was introduced in 1997, is used in the BUZ and
177can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM
178
179Philips saa7110a TV decoder
180was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and
181can handle: PAL B/G, NTSC M and SECAM
182
183Philips saa7114 TV decoder
184was introduced in 2000, is used in the LML33R10 and
185can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM
186
187Brooktree bt819 TV decoder
188was introduced in 1996, and is used in the LML33 and
189can handle: PAL B/D/G/H/I, NTSC M
190
191Micronas vpx3220a TV decoder
192was introduced in 1996, is used in the DC30 and DC30+ and
193can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC 44, PAL 60, SECAM,NTSC Comb
194
195===========================
196
1971.2 What the TV encoder can do an what not
198
199The TV encoder are doing the "same" as the decoder, but in the oder direction.
200You feed them digital data and the generate a Composite or SVHS signal.
201For information about the colorsystems and TV norm take a look in the
202TV decoder section.
203
204Philips saa7185 TV Encoder
205was introduced in 1996, is used in the BUZ
206can generate: PAL B/G, NTSC M
207
208Brooktree bt856 TV Encoder
209was introduced in 1994, is used in the LML33
210can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina)
211
212Analog Devices adv7170 TV Encoder
213was introduced in 2000, is used in the LML300R10
214can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL 60
215
216Analog Devices adv7175 TV Encoder
217was introduced in 1996, is used in the DC10, DC10+, DC10 old, DC30, DC30+
218can generate: PAL B/D/G/H/I/N, PAL M, NTSC M
219
220ITT mse3000 TV encoder
221was introduced in 1991, is used in the DC10 old
222can generate: PAL , NTSC , SECAM
223
224The adv717x, should be able to produce PAL N. But you find nothing PAL N
225specific in the the registers. Seem that you have to reuse a other standard
226to generate PAL N, maybe it would work if you use the PAL M settings.
227
228==========================
229
2302. How do I get this damn thing to work
231
232Load zr36067.o. If it can't autodetect your card, use the card=X insmod
233option with X being the card number as given in the previous section.
234To have more than one card, use card=X1[,X2[,X3,[X4[..]]]]
235
236To automate this, add the following to your /etc/modprobe.conf:
237
238options zr36067 card=X1[,X2[,X3[,X4[..]]]]
239alias char-major-81-0 zr36067
240
241One thing to keep in mind is that this doesn't load zr36067.o itself yet. It
242just automates loading. If you start using xawtv, the device won't load on
243some systems, since you're trying to load modules as a user, which is not
244allowed ("permission denied"). A quick workaround is to add 'Load "v4l"' to
245XF86Config-4 when you use X by default, or to run 'v4l-conf -c <device>' in
246one of your startup scripts (normally rc.local) if you don't use X. Both
247make sure that the modules are loaded on startup, under the root account.
248
249===========================
250
2513. What mainboard should I use (or why doesn't my card work)
252
253<insert lousy disclaimer here>. In short: good=SiS/Intel, bad=VIA.
254
255Experience tells us that people with a Buz, on average, have more problems
256than users with a DC10+/LML33. Also, it tells us that people owning a VIA-
257based mainboard (ktXXX, MVP3) have more problems than users with a mainboard
258based on a different chipset. Here's some notes from Andrew Stevens:
259--
260Here's my experience of using LML33 and Buz on various motherboards:
261
262VIA MVP3
263 Forget it. Pointless. Doesn't work.
264Intel 430FX (Pentium 200)
265 LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie)
266Intel 440BX (early stepping)
267 LML33 tolerable. Buz starting to get annoying (6-10 frames/hour)
268Intel 440BX (late stepping)
269 Buz tolerable, LML3 almost perfect (occasional single frame drops)
270SiS735
271 LML33 perfect, Buz tolerable.
272VIA KT133(*)
273 LML33 starting to get annoying, Buz poor enough that I have up.
274
275Both 440BX boards were dual CPU versions.
276--
277Bernhard Praschinger later added:
278--
279AMD 751
280 Buz perfect-tolerable
281AMD 760
282 Buz perfect-tolerable
283--
284In general, people on the user mailinglist won't give you much of a chance
285if you have a VIA-based motherboard. They may be cheap, but sometimes, you'd
286rather want to spend some more money on better boards. In general, VIA
287mainboard's IDE/PCI performance will also suck badly compared to others.
288You'll noticed the DC10+/DC30+ aren't mentioned anywhere in the overview.
289Basically, you can assume that if the Buz works, the LML33 will work too. If
290the LML33 works, the DC10+/DC30+ will work too. They're most tolerant to
291different mainboard chipsets from all of the supported cards.
292
293If you experience timeouts during capture, buy a better mainboard or lower
294the quality/buffersize during capture (see 'Concerning buffer sizes, quality,
295output size etc.'). If it hangs, there's little we can do as of now. Check
296your IRQs and make sure the card has its own interrupts.
297
298===========================
299
3004. Programming interface
301
302This driver conforms to video4linux and video4linux2, both can be used to
303use the driver. Since video4linux didn't provide adequate calls to fully
304use the cards' features, we've introduced several programming extensions,
305which are currently officially accepted in the 2.4.x branch of the kernel.
306These extensions are known as the v4l/mjpeg extensions. See zoran.h for
307details (structs/ioctls).
308
309Information - video4linux:
310http://roadrunner.swansea.linux.org.uk/v4lapi.shtml
311Documentation/video4linux/API.html
312/usr/include/linux/videodev.h
313
314Information - video4linux/mjpeg extensions:
315./zoran.h
316(also see below)
317
318Information - video4linux2:
319http://www.thedirks.org/v4l2/
320/usr/include/linux/videodev2.h
321http://www.bytesex.org/v4l/
322
323More information on the video4linux/mjpeg extensions, by Serguei
324Miridonovi and Rainer Johanni:
325--
326The ioctls for that interface are as follows:
327
328BUZIOC_G_PARAMS
329BUZIOC_S_PARAMS
330
331Get and set the parameters of the buz. The user should always do a
332BUZIOC_G_PARAMS (with a struct buz_params) to obtain the default
333settings, change what he likes and then make a BUZIOC_S_PARAMS call.
334
335BUZIOC_REQBUFS
336
337Before being able to capture/playback, the user has to request
338the buffers he is wanting to use. Fill the structure
339zoran_requestbuffers with the size (recommended: 256*1024) and
340the number (recommended 32 up to 256). There are no such restrictions
341as for the Video for Linux buffers, you should LEAVE SUFFICIENT
342MEMORY for your system however, else strange things will happen ....
343On return, the zoran_requestbuffers structure contains number and
344size of the actually allocated buffers.
345You should use these numbers for doing a mmap of the buffers
346into the user space.
347The BUZIOC_REQBUFS ioctl also makes it happen, that the next mmap
348maps the MJPEG buffer instead of the V4L buffers.
349
350BUZIOC_QBUF_CAPT
351BUZIOC_QBUF_PLAY
352
353Queue a buffer for capture or playback. The first call also starts
354streaming capture. When streaming capture is going on, you may
355only queue further buffers or issue syncs until streaming
356capture is switched off again with a argument of -1 to
357a BUZIOC_QBUF_CAPT/BUZIOC_QBUF_PLAY ioctl.
358
359BUZIOC_SYNC
360
361Issue this ioctl when all buffers are queued. This ioctl will
362block until the first buffer becomes free for saving its
363data to disk (after BUZIOC_QBUF_CAPT) or for reuse (after BUZIOC_QBUF_PLAY).
364
365BUZIOC_G_STATUS
366
367Get the status of the input lines (video source connected/norm).
368
369For programming example, please, look at lavrec.c and lavplay.c code in
370lavtools-1.2p2 package (URL: http://www.cicese.mx/~mirsev/DC10plus/)
371and the 'examples' directory in the original Buz driver distribution.
372
373Additional notes for software developers:
374
375 The driver returns maxwidth and maxheight parameters according to
376 the current TV standard (norm). Therefore, the software which
377 communicates with the driver and "asks" for these parameters should
378 first set the correct norm. Well, it seems logically correct: TV
379 standard is "more constant" for current country than geometry
380 settings of a variety of TV capture cards which may work in ITU or
381 square pixel format. Remember that users now can lock the norm to
382 avoid any ambiguity.
383--
384Please note that lavplay/lavrec are also included in the MJPEG-tools
385(http://mjpeg.sf.net/).
386
387===========================
388
3895. Applications
390
391Applications known to work with this driver:
392
393TV viewing:
394* xawtv
395* kwintv
396* probably any TV application that supports video4linux or video4linux2.
397
398MJPEG capture/playback:
399* mjpegtools/lavtools (or Linux Video Studio)
400* gstreamer
401* mplayer
402
403General raw capture:
404* xawtv
405* gstreamer
406* probably any application that supports video4linux or video4linux2
407
408Video editing:
409* Cinelerra
410* MainActor
411* mjpegtools (or Linux Video Studio)
412
413===========================
414
4156. Concerning buffer sizes, quality, output size etc.
416
417The zr36060 can do 1:2 JPEG compression. This is really the theoretical
418maximum that the chipset can reach. The driver can, however, limit compression
419to a maximum (size) of 1:4. The reason for this is that some cards (e.g. Buz)
420can't handle 1:2 compression without stopping capture after only a few minutes.
421With 1:4, it'll mostly work. If you have a Buz, use 'low_bitrate=1' to go into
4221:4 max. compression mode.
423
424100% JPEG quality is thus 1:2 compression in practice. So for a full PAL frame
425(size 720x576). The JPEG fields are stored in YUY2 format, so the size of the
426fields are 720x288x16/2 bits/field (2 fields/frame) = 207360 bytes/field x 2 =
427414720 bytes/frame (add some more bytes for headers and DHT (huffman)/DQT
428(quantization) tables, and you'll get to something like 512kB per frame for
4291:2 compression. For 1:4 compression, you'd have frames of half this size.
430
431Some additional explanation by Martin Samuelsson, which also explains the
432importance of buffer sizes:
433--
434> Hmm, I do not think it is really that way. With the current (downloaded
435> at 18:00 Monday) driver I get that output sizes for 10 sec:
436> -q 50 -b 128 : 24.283.332 Bytes
437> -q 50 -b 256 : 48.442.368
438> -q 25 -b 128 : 24.655.992
439> -q 25 -b 256 : 25.859.820
440
441I woke up, and can't go to sleep again. I'll kill some time explaining why
442this doesn't look strange to me.
443
444Let's do some math using a width of 704 pixels. I'm not sure whether the Buz
445actually use that number or not, but that's not too important right now.
446
447704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block;
4483168 blocks per field. Each pixel consist of two bytes; 128 bytes per block;
4491024 bits per block. 100% in the new driver mean 1:2 compression; the maximum
450output becomes 512 bits per block. Actually 510, but 512 is simpler to use
451for calculations.
452
453Let's say that we specify d1q50. We thus want 256 bits per block; times 3168
454becomes 811008 bits; 101376 bytes per field. We're talking raw bits and bytes
455here, so we don't need to do any fancy corrections for bits-per-pixel or such
456things. 101376 bytes per field.
457
458d1 video contains two fields per frame. Those sum up to 202752 bytes per
459frame, and one of those frames goes into each buffer.
460
461But wait a second! -b128 gives 128kB buffers! It's not possible to cram
462202752 bytes of JPEG data into 128kB!
463
464This is what the driver notice and automatically compensate for in your
465examples. Let's do some math using this information:
466
467128kB is 131072 bytes. In this buffer, we want to store two fields, which
468leaves 65536 bytes for each field. Using 3168 blocks per field, we get
46920.68686868... available bytes per block; 165 bits. We can't allow the
470request for 256 bits per block when there's only 165 bits available! The -q50
471option is silently overridden, and the -b128 option takes precedence, leaving
472us with the equivalence of -q32.
473
474This gives us a data rate of 165 bits per block, which, times 3168, sums up
475to 65340 bytes per field, out of the allowed 65536. The current driver has
476another level of rate limiting; it won't accept -q values that fill more than
4776/8 of the specified buffers. (I'm not sure why. "Playing it safe" seem to be
478a safe bet. Personally, I think I would have lowered requested-bits-per-block
479by one, or something like that.) We can't use 165 bits per block, but have to
480lower it again, to 6/8 of the available buffer space: We end up with 124 bits
481per block, the equivalence of -q24. With 128kB buffers, you can't use greater
482than -q24 at -d1. (And PAL, and 704 pixels width...)
483
484The third example is limited to -q24 through the same process. The second
485example, using very similar calculations, is limited to -q48. The only
486example that actually grab at the specified -q value is the last one, which
487is clearly visible, looking at the file size.
488--
489
490Conclusion: the quality of the resulting movie depends on buffer size, quality,
491whether or not you use 'low_bitrate=1' as insmod option for the zr36060.c
492module to do 1:4 instead of 1:2 compression, etc.
493
494If you experience timeouts, lowering the quality/buffersize or using
495'low_bitrate=1 as insmod option for zr36060.o might actually help, as is
496proven by the Buz.
497
498===========================
499
5007. It hangs/crashes/fails/whatevers! Help!
501
502Make sure that the card has its own interrupts (see /proc/interrupts), check
503the output of dmesg at high verbosity (load zr36067.o with debug=2,
504load all other modules with debug=1). Check that your mainboard is favorable
505(see question 2) and if not, test the card in another computer. Also see the
506notes given in question 3 and try lowering quality/buffersize/capturesize
507if recording fails after a period of time.
508
509If all this doesn't help, give a clear description of the problem including
510detailed hardware information (memory+brand, mainboard+chipset+brand, which
511MJPEG card, processor, other PCI cards that might be of interest), give the
512system PnP information (/proc/interrupts, /proc/dma, /proc/devices), and give
513the kernel version, driver version, glibc version, gcc version and any other
514information that might possibly be of interest. Also provide the dmesg output
515at high verbosity. See 'Contacting' on how to contact the developers.
516
517===========================
518
5198. Maintainers/Contacting
520
521The driver is currently maintained by Laurent Pinchart and Ronald Bultje
522(<laurent.pinchart@skynet.be> and <rbultje@ronald.bitfreak.net>). For bug
523reports or questions, please contact the mailinglist instead of the developers
524individually. For user questions (i.e. bug reports or how-to questions), send
525an email to <mjpeg-users@lists.sf.net>, for developers (i.e. if you want to
526help programming), send an email to <mjpeg-developer@lists.sf.net>. See
527http://www.sf.net/projects/mjpeg/ for subscription information.
528
529For bug reports, be sure to include all the information as described in
530the section 'It hangs/crashes/fails/whatevers! Help!'. Please make sure
531you're using the latest version (http://mjpeg.sf.net/driver-zoran/).
532
533Previous maintainers/developers of this driver include Serguei Miridonov
534<mirsev@cicese.mx>, Wolfgang Scherr <scherr@net4you.net>, Dave Perks
535<dperks@ibm.net> and Rainer Johanni <Rainer@Johanni.de>.
536
537===========================
538
5399. License
540
541This driver is distributed under the terms of the General Public License.
542
543 This program is free software; you can redistribute it and/or modify
544 it under the terms of the GNU General Public License as published by
545 the Free Software Foundation; either version 2 of the License, or
546 (at your option) any later version.
547
548 This program is distributed in the hope that it will be useful,
549 but WITHOUT ANY WARRANTY; without even the implied warranty of
550 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
551 GNU General Public License for more details.
552
553 You should have received a copy of the GNU General Public License
554 along with this program; if not, write to the Free Software
555 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
556
557See http://www.gnu.org/ for more information.
diff --git a/Documentation/video4linux/bttv/CONTRIBUTORS b/Documentation/video4linux/bttv/CONTRIBUTORS
new file mode 100644
index 000000000000..aef49db8847d
--- /dev/null
+++ b/Documentation/video4linux/bttv/CONTRIBUTORS
@@ -0,0 +1,25 @@
1Contributors to bttv:
2
3Michael Chu <mmchu@pobox.com>
4 AverMedia fix and more flexible card recognition
5
6Alan Cox <alan@redhat.com>
7 Video4Linux interface and 2.1.x kernel adaptation
8
9Chris Kleitsch
10 Hardware I2C
11
12Gerd Knorr <kraxel@cs.tu-berlin.de>
13 Radio card (ITT sound processor)
14
15bigfoot <bigfoot@net-way.net>
16Ragnar Hojland Espinosa <ragnar@macula.net>
17 ConferenceTV card
18
19
20+ many more (please mail me if you are missing in this list and would
21 like to be mentioned)
22
23
24
25
diff --git a/Documentation/video4linux/bttv/Cards b/Documentation/video4linux/bttv/Cards
new file mode 100644
index 000000000000..7f8c7eb70ab2
--- /dev/null
+++ b/Documentation/video4linux/bttv/Cards
@@ -0,0 +1,964 @@
1
2Gunther Mayer's bttv card gallery (graphical version of this text file :-)
3is available at: http://www.bttv-gallery.de/
4
5
6Supported cards:
7Bt848/Bt848a/Bt849/Bt878/Bt879 cards
8------------------------------------
9
10All cards with Bt848/Bt848a/Bt849/Bt878/Bt879 and normal
11Composite/S-VHS inputs are supported. Teletext and Intercast support
12(PAL only) for ALL cards via VBI sample decoding in software.
13
14Some cards with additional multiplexing of inputs or other additional
15fancy chips are only partially supported (unless specifications by the
16card manufacturer are given). When a card is listed here it isn't
17necessarily fully supported.
18
19All other cards only differ by additional components as tuners, sound
20decoders, EEPROMs, teletext decoders ...
21
22
23Unsupported Cards:
24------------------
25
26Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by
27this driver.
28
29
30MATRIX Vision
31-------------
32
33MV-Delta
34- Bt848A
35- 4 Composite inputs, 1 S-VHS input (shared with 4th composite)
36- EEPROM
37
38http://www.matrix-vision.de/
39
40This card has no tuner but supports all 4 composite (1 shared with an
41S-VHS input) of the Bt848A.
42Very nice card if you only have satellite TV but several tuners connected
43to the card via composite.
44
45Many thanks to Matrix-Vision for giving us 2 cards for free which made
46Bt848a/Bt849 single crytal operation support possible!!!
47
48
49
50Miro/Pinnacle PCTV
51------------------
52
53- Bt848
54 some (all??) come with 2 crystals for PAL/SECAM and NTSC
55- PAL, SECAM or NTSC TV tuner (Philips or TEMIC)
56- MSP34xx sound decoder on add on board
57 decoder is supported but AFAIK does not yet work
58 (other sound MUX setting in GPIO port needed??? somebody who fixed this???)
59- 1 tuner, 1 composite and 1 S-VHS input
60- tuner type is autodetected
61
62http://www.miro.de/
63http://www.miro.com/
64
65
66Many thanks for the free card which made first NTSC support possible back
67in 1997!
68
69
70Hauppauge Win/TV pci
71--------------------
72
73There are many different versions of the Hauppauge cards with different
74tuners (TV+Radio ...), teletext decoders.
75Note that even cards with same model numbers have (depending on the revision)
76different chips on it.
77
78- Bt848 (and others but always in 2 crystal operation???)
79 newer cards have a Bt878
80- PAL, SECAM, NTSC or tuner with or without Radio support
81
82e.g.:
83 PAL:
84 TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
85 TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3
86
87 NTSC:
88 TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
89 TSA5518: no datasheet available on Philips site
90- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip
91 with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM)
92 SAA5246 (I2C 0x22) is supported
93- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y
94 with configuration information
95 I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf)
96- 1 tuner, 1 composite and (depending on model) 1 S-VHS input
97- 14052B: mux for selection of sound source
98- sound decoder: TDA9800, MSP34xx (stereo cards)
99
100
101Askey CPH-Series
102----------------
103Developed by TelSignal(?), OEMed by many vendors (Typhoon, Anubis, Dynalink)
104
105 Card series:
106 CPH01x: BT848 capture only
107 CPH03x: BT848
108 CPH05x: BT878 with FM
109 CPH06x: BT878 (w/o FM)
110 CPH07x: BT878 capture only
111
112 TV standards:
113 CPH0x0: NTSC-M/M
114 CPH0x1: PAL-B/G
115 CPH0x2: PAL-I/I
116 CPH0x3: PAL-D/K
117 CPH0x4: SECAM-L/L
118 CPH0x5: SECAM-B/G
119 CPH0x6: SECAM-D/K
120 CPH0x7: PAL-N/N
121 CPH0x8: PAL-B/H
122 CPH0x9: PAL-M/M
123
124 CPH03x was often sold as "TV capturer".
125
126 Identifying:
127 1) 878 cards can be identified by PCI Subsystem-ID:
128 144f:3000 = CPH06x
129 144F:3002 = CPH05x w/ FM
130 144F:3005 = CPH06x_LC (w/o remote control)
131 1) The cards have a sticker with "CPH"-model on the back.
132 2) These cards have a number printed on the PCB just above the tuner metal box:
133 "80-CP2000300-x" = CPH03X
134 "80-CP2000500-x" = CPH05X
135 "80-CP2000600-x" = CPH06X / CPH06x_LC
136
137 Askey sells these cards as "Magic TView series", Brand "MagicXpress".
138 Other OEM often call these "Tview", "TView99" or else.
139
140Lifeview Flyvideo Series:
141-------------------------
142 The naming of these series differs in time and space.
143
144 Identifying:
145 1) Some models can be identified by PCI subsystem ID:
146 1852:1852 = Flyvideo 98 FM
147 1851:1850 = Flyvideo 98
148 1851:1851 = Flyvideo 98 EZ (capture only)
149 2) There is a print on the PCB:
150 LR25 = Flyvideo (Zoran ZR36120, SAA7110A)
151 LR26 Rev.N = Flyvideo II (Bt848)
152 Rev.O = Flyvideo II (Bt878)
153 LR37 Rev.C = Flyvideo EZ (Capture only, ZR36120 + SAA7110)
154 LR38 Rev.A1= Flyvideo II EZ (Bt848 capture only)
155 LR50 Rev.Q = Flyvideo 98 (w/eeprom and PCI subsystem ID)
156 Rev.W = Flyvideo 98 (no eeprom)
157 LR51 Rev.E = Flyvideo 98 EZ (capture only)
158 LR90 = Flyvideo 2000 (Bt878)
159 Flyvideo 2000S (Bt878) w/Stereo TV (Package incl. LR91 daughterboard)
160 LR91 = Stereo daughter card for LR90
161 LR97 = Flyvideo DVBS
162 LR99 Rev.E = Low profile card for OEM integration (only internal audio!) bt878
163 LR136 = Flyvideo 2100/3100 (Low profile, SAA7130/SAA7134)
164 LR137 = Flyvideo DV2000/DV3000 (SAA7130/SAA7134 + IEEE1394)
165 LR138 Rev.C= Flyvideo 2000 (SAA7130)
166 or Flyvideo 3000 (SAA7134) w/Stereo TV
167 These exist in variations w/FM and w/Remote sometimes denoted
168 by suffixes "FM" and "R".
169 3) You have a laptop (miniPCI card):
170 Product = FlyTV Platinum Mini
171 Model/Chip = LR212/saa7135
172
173 Lifeview.com.tw states (Feb. 2002):
174 "The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98."
175 Their Bt8x8 cards are listed as discontinued.
176 Flyvideo 2000S was probably sold as Flyvideo 3000 in some contries(Europe?).
177 The new Flyvideo 2000/3000 are SAA7130/SAA7134 based.
178
179 "Flyvideo II" had been the name for the 848 cards, nowadays (in Germany)
180 this name is re-used for LR50 Rev.W.
181 The Lifeview website mentioned Flyvideo III at some time, but such a card
182 has not yet been seen (perhaps it was the german name for LR90 [stereo]).
183 These cards are sold by many OEMs too.
184
185 FlyVideo A2 (Elta 8680)= LR90 Rev.F (w/Remote, w/o FM, stereo TV by tda9821) {Germany}
186 Lifeview 3000 (Elta 8681) as sold by Plus(April 2002), Germany = LR138 w/ saa7134
187
188
189Typhoon TV card series:
190-----------------------
191 These can be CPH, Flyvideo, Pixelview or KNC1 series.
192 Typhoon is the brand of Anubis.
193 Model 50680 got re-used, some model no. had different contents over time.
194
195 Models:
196 50680 "TV Tuner PCI Pal BG"(old,red package)=can be CPH03x(bt848) or CPH06x(bt878)
197 50680 "TV Tuner Pal BG" (blue package)= Pixelview PV-BT878P+ (Rev 9B)
198 50681 "TV Tuner PCI Pal I" (variant of 50680)
199 50682 "TView TV/FM Tuner Pal BG" = Flyvideo 98FM (LR50 Rev.Q)
200 Note: The package has a picture of CPH05x (which would be a real TView)
201 50683 "TV Tuner PCI SECAM" (variant of 50680)
202 50684 "TV Tuner Pal BG" = Pixelview 878TV(Rev.3D)
203 50686 "TV Tuner" = KNC1 TV Station
204 50687 "TV Tuner stereo" = KNC1 TV Station pro
205 50688 "TV Tuner RDS" (black package) = KNC1 TV Station RDS
206 50689 TV SAT DVB-S CARD CI PCI (SAA7146AH, SU1278?) = "KNC1 TV Station DVB-S"
207 50692 "TV/FM Tuner" (small PCB)
208 50694 TV TUNER CARD RDS (PHILIPS CHIPSET SAA7134HL)
209 50696 TV TUNER STEREO (PHILIPS CHIPSET SAA7134HL, MK3ME Tuner)
210 50804 PC-SAT TV/Audio Karte = Techni-PC-Sat (ZORAN 36120PQC, Tuner:Alps)
211 50866 TVIEW SAT RECEIVER+ADR
212 50868 "TV/FM Tuner Pal I" (variant of 50682)
213 50999 "TV/FM Tuner Secam" (variant of 50682)
214
215
216Guillemot
217---------
218 Maxi-TV PCI (ZR36120)
219 Maxi TV Video 2 = LR50 Rev.Q (FI1216MF, PAL BG+SECAM)
220 Maxi TV Video 3 = CPH064 (PAL BG + SECAM)
221
222Mentor
223------
224 Mentor TV card ("55-878TV-U1") = Pixelview 878TV(Rev.3F) (w/FM w/Remote)
225
226Prolink
227-------
228 TV cards:
229 PixelView Play TV pro - (Model: PV-BT878P+ REV 8E)
230 PixelView Play TV pro - (Model: PV-BT878P+ REV 9D)
231 PixelView Play TV pro - (Model: PV-BT878P+ REV 4C / 8D / 10A )
232 PixelView Play TV - (Model: PV-BT848P+)
233 878TV - (Model: PV-BT878TV)
234
235 Multimedia TV packages (card + software pack):
236 PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software
237 PixelView Play TV PAK - (Model: PV-BT878P+ REV 4E)
238 PixelView Play TV/VCR - (Model: PV-M3200 REV 4C / 8D / 10A )
239 PixelView Studio PAK - (Model: M2200 REV 4C / 8D / 10A )
240 PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E)
241 PixelView DigitalVCR PAK - (Model: PV-M2400 REV 4C / 8D / 10A )
242
243 PixelView PlayTV PAK II (TV/FM card + usb camera) PV-M3800
244 PixelView PlayTV XP PV-M4700,PV-M4700(w/FM)
245 PixelView PlayTV DVR PV-M4600 package contents:PixelView PlayTV pro, windvr & videoMail s/w
246
247 Further Cards:
248 PV-BT878P+rev.9B (Play TV Pro, opt. w/FM w/NICAM)
249 PV-BT878P+rev.2F
250 PV-BT878P Rev.1D (bt878, capture only)
251
252 XCapture PV-CX881P (cx23881)
253 PlayTV HD PV-CX881PL+, PV-CX881PL+(w/FM) (cx23881)
254
255 DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030
256 DTV2000 DVB-S = Twinhan VP-1020
257
258 Video Conferencing:
259 PixelView Meeting PAK - (Model: PV-BT878P)
260 PixelView Meeting PAK Lite - (Model: PV-BT878P)
261 PixelView Meeting PAK plus - (Model: PV-BT878P+rev 4C/8D/10A)
262 PixelView Capture - (Model: PV-BT848P)
263
264 PixelView PlayTV USB pro
265 Model No. PV-NT1004+, PV-NT1004+ (w/FM) = NT1004 USB decoder chip + SAA7113 video decoder chip
266
267Dynalink
268--------
269 These are CPH series.
270
271Phoebemicro
272-----------
273 TV Master = CPH030 or CPH060
274 TV Master FM = CPH050
275
276Genius/Kye
277----------
278 Video Wonder/Genius Internet Video Kit = LR37 Rev.C
279 Video Wonder Pro II (848 or 878) = LR26
280
281Tekram
282------
283 VideoCap C205 (Bt848)
284 VideoCap C210 (zr36120 +Philips)
285 CaptureTV M200 (ISA)
286 CaptureTV M205 (Bt848)
287
288Lucky Star
289----------
290 Image World Conference TV = LR50 Rev. Q
291
292Leadtek
293-------
294 WinView 601 (Bt848)
295 WinView 610 (Zoran)
296 WinFast2000
297 WinFast2000 XP
298
299KNC One
300-------
301 TV-Station
302 TV-Station SE (+Software Bundle)
303 TV-Station pro (+TV stereo)
304 TV-Station FM (+Radio)
305 TV-Station RDS (+RDS)
306 TV Station SAT (analog satellite)
307 TV-Station DVB-S
308
309 newer Cards have saa7134, but model name stayed the same?
310
311Provideo
312--------
313 PV951 or PV-951 (also are sold as:
314 Boeder TV-FM Video Capture Card
315 Titanmedia Supervision TV-2400
316 Provideo PV951 TF
317 3DeMon PV951
318 MediaForte TV-Vision PV951
319 Yoko PV951
320 Vivanco Tuner Card PCI Art.-Nr.: 68404
321 ) now named PV-951T
322
323 Surveillance Series
324 PV-141
325 PV-143
326 PV-147
327 PV-148 (capture only)
328 PV-150
329 PV-151
330
331 TV-FM Tuner Series
332 PV-951TDV (tv tuner + 1394)
333 PV-951T/TF
334 PV-951PT/TF
335 PV-956T/TF Low Profile
336 PV-911
337
338Highscreen
339----------
340 TV Karte = LR50 Rev.S
341 TV-Boostar = Terratec Terra TV+ Version 1.0 (Bt848, tda9821) "ceb105.pcb"
342
343Zoltrix
344-------
345 Face to Face Capture (Bt848 capture only) (PCB "VP-2848")
346 Face To Face TV MAX (Bt848) (PCB "VP-8482 Rev1.3")
347 Genie TV (Bt878) (PCB "VP-8790 Rev 2.1")
348 Genie Wonder Pro
349
350AVerMedia
351---------
352 AVer FunTV Lite (ISA, AV3001 chipset) "M101.C"
353 AVerTV
354 AVerTV Stereo
355 AVerTV Studio (w/FM)
356 AVerMedia TV98 with Remote
357 AVerMedia TV/FM98 Stereo
358 AVerMedia TVCAM98
359 TVCapture (Bt848)
360 TVPhone (Bt848)
361 TVCapture98 (="AVerMedia TV98" in USA) (Bt878)
362 TVPhone98 (Bt878, w/FM)
363
364 PCB PCI-ID Model-Name Eeprom Tuner Sound Country
365 --------------------------------------------------------------------
366 M101.C ISA !
367 M108-B Bt848 -- FR1236 US (2),(3)
368 M1A8-A Bt848 AVer TV-Phone FM1216 --
369 M168-T 1461:0003 AVerTV Studio 48:17 FM1216 TDA9840T D (1) w/FM w/Remote
370 M168-U 1461:0004 TVCapture98 40:11 FI1216 -- D w/Remote
371 M168II-B 1461:0003 Medion MD9592 48:16 FM1216 TDA9873H D w/FM
372
373 (1) Daughterboard MB68-A with TDA9820T and TDA9840T
374 (2) Sony NE41S soldered (stereo sound?)
375 (3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz
376
377 US site has different drivers for (as of 09/2002):
378 EZ Capture/InterCam PCI (BT-848 chip)
379 EZ Capture/InterCam PCI (BT-878 chip)
380 TV-Phone (BT-848 chip)
381 TV98 (BT-848 chip)
382 TV98 With Remote (BT-848 chip)
383 TV98 (BT-878 chip)
384 TV98 With Remote (BT-878)
385 TV/FM98 (BT-878 chip)
386 AVerTV
387 AverTV Stereo
388 AVerTV Studio
389
390 DE hat diverse Treiber fuer diese Modelle (Stand 09/2002):
391 TVPhone (848) mit Philips tuner FR12X6 (w/ FM radio)
392 TVPhone (848) mit Philips tuner FM12X6 (w/ FM radio)
393 TVCapture (848) w/Philips tuner FI12X6
394 TVCapture (848) non-Philips tuner
395 TVCapture98 (Bt878)
396 TVPhone98 (Bt878)
397 AVerTV und TVCapture98 w/VCR (Bt 878)
398 AVerTVStudio und TVPhone98 w/VCR (Bt878)
399 AVerTV GO Serie (Kein SVideo Input)
400 AVerTV98 (BT-878 chip)
401 AVerTV98 mit Fernbedienung (BT-878 chip)
402 AVerTV/FM98 (BT-878 chip)
403
404 VDOmate (www.averm.com.cn) = M168U ?
405
406Aimslab
407-------
408 Video Highway or "Video Highway TR200" (ISA)
409 Video Highway Xtreme (aka "VHX") (Bt848, FM w/ TEA5757)
410
411IXMicro (former: IMS=Integrated Micro Solutions)
412-------
413 IXTV BT848 (=TurboTV)
414 IXTV BT878
415 IMS TurboTV (Bt848)
416
417Lifetec/Medion/Tevion/Aldi
418--------------------------
419 LT9306/MD9306 = CPH061
420 LT9415/MD9415 = LR90 Rev.F or Rev.G
421 MD9592 = Avermedia TVphone98 (PCI_ID=1461:0003), PCB-Rev=M168II-B (w/TDA9873H)
422 MD9717 = KNC One (Rev D4, saa7134, FM1216 MK2 tuner)
423 MD5044 = KNC One (Rev D4, saa7134, FM1216ME MK3 tuner)
424
425Modular Technologies (www.modulartech.com) UK
426---------------------------------------------
427 MM100 PCTV (Bt848)
428 MM201 PCTV (Bt878, Bt832) w/ Quartzsight camera
429 MM202 PCTV (Bt878, Bt832, tda9874)
430 MM205 PCTV (Bt878)
431 MM210 PCTV (Bt878) (Galaxy TV, Galaxymedia ?)
432
433Terratec
434--------
435 Terra TV+ Version 1.0 (Bt848), "ceb105.PCB" printed on the PCB, TDA9821
436 Terra TV+ Version 1.1 (Bt878), "LR74 Rev.E" printed on the PCB, TDA9821
437 Terra TValueRadio, "LR102 Rev.C" printed on the PCB
438 Terra TV/Radio+ Version 1.0, "80-CP2830100-0" TTTV3 printed on the PCB,
439 "CPH010-E83" on the back, SAA6588T, TDA9873H
440 Terra TValue Version BT878, "80-CP2830110-0 TTTV4" printed on the PCB,
441 "CPH011-D83" on back
442 Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0)
443 Terra TValue New Revision "LR102 Rec.C"
444 Terra Active Radio Upgrade (tea5757h, saa6588t)
445
446 LR74 is a newer PCB revision of ceb105 (both incl. connector for Active Radio Upgrade)
447
448 Cinergy 400 (saa7134), "E877 11(S)", "PM820092D" printed on PCB
449 Cinergy 600 (saa7134)
450
451Technisat
452---------
453 Discos ADR PC-Karte ISA (no TV!)
454 Discos ADR PC-Karte PCI (probably no TV?)
455 Techni-PC-Sat (Sat. analog)
456 Rev 1.2 (zr36120, vpx3220, stv0030, saa5246, BSJE3-494A)
457 Mediafocus I (zr36120/zr36125, drp3510, Sat. analog + ADR Radio)
458 Mediafocus II (saa7146, Sat. analog)
459 SatADR Rev 2.1 (saa7146a, saa7113h, stv0056a, msp3400c, drp3510a, BSKE3-307A)
460 SkyStar 1 DVB (AV7110) = Technotrend Premium
461 SkyStar 2 DVB (B2C2) (=Sky2PC)
462
463Siemens
464-------
465 Multimedia eXtension Board (MXB) (SAA7146, SAA7111)
466
467Stradis
468-------
469 SDM275,SDM250,SDM026,SDM025 (SAA7146, IBMMPEG2): MPEG2 decoder only
470
471Powercolor
472----------
473 MTV878
474 Package comes with different contents:
475 a) pcb "MTV878" (CARD=75)
476 b) Pixelview Rev. 4_
477 MTV878R w/Remote Control
478 MTV878F w/Remote Control w/FM radio
479
480Pinnacle
481--------
482 Mirovideo PCTV (Bt848)
483 Mirovideo PCTV SE (Bt848)
484 Mirovideo PCTV Pro (Bt848 + Daughterboard for TV Stereo and FM)
485 Studio PCTV Rave (Bt848 Version = Mirovideo PCTV)
486 Studio PCTV Rave (Bt878 package w/o infrared)
487 Studio PCTV (Bt878)
488 Studio PCTV Pro (Bt878 stereo w/ FM)
489 Pinnacle PCTV (Bt878, MT2032)
490 Pinnacle PCTV Pro (Bt878, MT2032)
491 Pinncale PCTV Sat (bt878a, HM1821/1221) ["Conexant CX24110 with CX24108 tuner, aka HM1221/HM1811"]
492 Pinnacle PCTV Sat XE
493
494 M(J)PEG capture and playback:
495 DC1+ (ISA)
496 DC10 (zr36057, zr36060, saa7110, adv7176)
497 DC10+ (zr36067, zr36060, saa7110, adv7176)
498 DC20 (ql16x24b,zr36050, zr36016, saa7110, saa7187 ...)
499 DC30 (zr36057, zr36050, zr36016, vpx3220, adv7176, ad1843, tea6415, miro FST97A1)
500 DC30+ (zr36067, zr36050, zr36016, vpx3220, adv7176)
501 DC50 (zr36067, zr36050, zr36016, saa7112, adv7176 (2 pcs.?), ad1843, miro FST97A1, Lattice ???)
502
503Lenco
504-----
505 MXR-9565 (=Technisat Mediafocus?)
506 MXR-9571 (Bt848) (=CPH031?)
507 MXR-9575
508 MXR-9577 (Bt878) (=Prolink 878TV Rev.3x)
509 MXTV-9578CP (Bt878) (= Prolink PV-BT878P+4E)
510
511Iomega
512------
513 Buz (zr36067, zr36060, saa7111, saa7185)
514
515LML
516---
517 LML33 (zr36067, zr36060, bt819, bt856)
518
519Grandtec
520--------
521 Grand Video Capture (Bt848)
522 Multi Capture Card (Bt878)
523
524Koutech
525-------
526 KW-606 (Bt848)
527 KW-607 (Bt848 capture only)
528 KW-606RSF
529 KW-607A (capture only)
530 KW-608 (Zoran capture only)
531
532IODATA (jp)
533------
534 GV-BCTV/PCI
535 GV-BCTV2/PCI
536 GV-BCTV3/PCI
537 GV-BCTV4/PCI
538 GV-VCP/PCI (capture only)
539 GV-VCP2/PCI (capture only)
540
541Canopus (jp)
542-------
543 WinDVR = Kworld "KW-TVL878RF"
544
545www.sigmacom.co.kr
546------------------
547 Sigma Cyber TV II
548
549www.sasem.co.kr
550---------------
551 Litte OnAir TV
552
553hama
554----
555 TV/Radio-Tuner Card, PCI (Model 44677) = CPH051
556
557Sigma Designs
558-------------
559 Hollywood plus (em8300, em9010, adv7175), (PCB "M340-10") MPEG DVD decoder
560
561Formac
562------
563 iProTV (Card for iMac Mezzanine slot, Bt848+SCSI)
564 ProTV (Bt848)
565 ProTV II = ProTV Stereo (Bt878) ["stereo" means FM stereo, tv is still mono]
566
567ATI
568---
569 TV-Wonder
570 TV-Wonder VE
571
572Diamond Multimedia
573------------------
574 DTV2000 (Bt848, tda9875)
575
576Aopen
577-----
578 VA1000 Plus (w/ Stereo)
579 VA1000 Lite
580 VA1000 (=LR90)
581
582Intel
583-----
584 Smart Video Recorder (ISA full-length)
585 Smart Video Recorder pro (ISA half-length)
586 Smart Video Recorder III (Bt848)
587
588STB
589---
590 STB Gateway 6000704 (bt878)
591 STB Gateway 6000699 (bt848)
592 STB Gateway 6000402 (bt848)
593 STB TV130 PCI
594
595Videologic
596----------
597 Captivator Pro/TV (ISA?)
598 Captivator PCI/VC (Bt848 bundled with camera) (capture only)
599
600Technotrend
601------------
602 TT-SAT PCI (PCB "Sat-PCI Rev.:1.3.1"; zr36125, vpx3225d, stc0056a, Tuner:BSKE6-155A
603 TT-DVB-Sat
604 revisions 1.1, 1.3, 1.5, 1.6 and 2.1
605 This card is sold as OEM from:
606 Siemens DVB-s Card
607 Hauppauge WinTV DVB-S
608 Technisat SkyStar 1 DVB
609 Galaxis DVB Sat
610 Now this card is called TT-PCline Premium Family
611 TT-Budget (saa7146, bsru6-701a)
612 This card is sold as OEM from:
613 Hauppauge WinTV Nova
614 Satelco Standard PCI (DVB-S)
615 TT-DVB-C PCI
616
617Teles
618-----
619 DVB-s (Rev. 2.2, BSRV2-301A, data only?)
620
621Remote Vision
622-------------
623 MX RV605 (Bt848 capture only)
624
625Boeder
626------
627 PC ChatCam (Model 68252) (Bt848 capture only)
628 Tv/Fm Capture Card (Model 68404) = PV951
629
630Media-Surfer (esc-kathrein.de)
631-------------------------------
632 Sat-Surfer (ISA)
633 Sat-Surfer PCI = Techni-PC-Sat
634 Cable-Surfer 1
635 Cable-Surfer 2
636 Cable-Surfer PCI (zr36120)
637 Audio-Surfer (ISA Radio card)
638
639Jetway (www.jetway.com.tw)
640--------------------------
641 JW-TV 878M
642 JW-TV 878 = KWorld KW-TV878RF
643
644Galaxis
645-------
646 Galaxis DVB Card S CI
647 Galaxis DVB Card C CI
648 Galaxis DVB Card S
649 Galaxis DVB Card C
650 Galaxis plug.in S [neuer Name: Galaxis DVB Card S CI
651
652Hauppauge
653---------
654 many many WinTV models ...
655 WinTV DVBs = Technotrend Premium 1.3
656 WinTV NOVA = Technotrend Budget 1.1 "S-DVB DATA"
657 WinTV NOVA-CI "SDVBACI"
658 WinTV Nova USB (=Technotrend USB 1.0)
659 WinTV-Nexus-s (=Technotrend Premium 2.1 or 2.2)
660 WinTV PVR
661 WinTV PVR 250
662 WinTV PVR 450
663
664 US models
665 990 WinTV-PVR-350 (249USD) (iTVC15 chipset + radio)
666 980 WinTV-PVR-250 (149USD) (iTVC15 chipset)
667 880 WinTV-PVR-PCI (199USD) (KFIR chipset + bt878)
668 881 WinTV-PVR-USB
669 190 WinTV-GO
670 191 WinTV-GO-FM
671 404 WinTV
672 401 WinTV-radio
673 495 WinTV-Theater
674 602 WinTV-USB
675 621 WinTV-USB-FM
676 600 USB-Live
677 698 WinTV-HD
678 697 WinTV-D
679 564 WinTV-Nexus-S
680
681 Deutsche Modelle
682 603 WinTV GO
683 719 WinTV Primio-FM
684 718 WinTV PCI-FM
685 497 WinTV Theater
686 569 WinTV USB
687 568 WinTV USB-FM
688 882 WinTV PVR
689 981 WinTV PVR 250
690 891 WinTV-PVR-USB
691 541 WinTV Nova
692 488 WinTV Nova-Ci
693 564 WinTV-Nexus-s
694 727 WinTV-DVB-c
695 545 Common Interface
696 898 WinTV-Nova-USB
697
698 UK models
699 607 WinTV Go
700 693,793 WinTV Primio FM
701 647,747 WinTV PCI FM
702 498 WinTV Theater
703 883 WinTV PVR
704 893 WinTV PVR USB (Duplicate entry)
705 566 WinTV USB (UK)
706 573 WinTV USB FM
707 429 Impact VCB (bt848)
708 600 USB Live (Video-In 1x Comp, 1xSVHS)
709 542 WinTV Nova
710 717 WinTV DVB-S
711 909 Nova-t PCI
712 893 Nova-t USB (Duplicate entry)
713 802 MyTV
714 804 MyView
715 809 MyVideo
716 872 MyTV2Go FM
717
718
719 546 WinTV Nova-S CI
720 543 WinTV Nova
721 907 Nova-S USB
722 908 Nova-T USB
723 717 WinTV Nexus-S
724 157 DEC3000-s Standalone + USB
725
726 Spain
727 685 WinTV-Go
728 690 WinTV-PrimioFM
729 416 WinTV-PCI Nicam Estereo
730 677 WinTV-PCI-FM
731 699 WinTV-Theater
732 683 WinTV-USB
733 678 WinTV-USB-FM
734 983 WinTV-PVR-250
735 883 WinTV-PVR-PCI
736 993 WinTV-PVR-350
737 893 WinTV-PVR-USB
738 728 WinTV-DVB-C PCI
739 832 MyTV2Go
740 869 MyTV2Go-FM
741 805 MyVideo (USB)
742
743
744Matrix-Vision
745-------------
746 MATRIX-Vision MV-Delta
747 MATRIX-Vision MV-Delta 2
748 MVsigma-SLC (Bt848)
749
750Conceptronic (.net)
751------------
752 TVCON FM, TV card w/ FM = CPH05x
753 TVCON = CPH06x
754
755BestData
756--------
757 HCC100 = VCC100rev1 + camera
758 VCC100 rev1 (bt848)
759 VCC100 rev2 (bt878)
760
761Gallant (www.gallantcom.com) www.minton.com.tw
762-----------------------------------------------
763 Intervision IV-510 (capture only bt8x8)
764 Intervision IV-550 (bt8x8)
765 Intervision IV-100 (zoran)
766 Intervision IV-1000 (bt8x8)
767
768Asonic (www.asonic.com.cn) (website down)
769-----------------------------------------
770 SkyEye tv 878
771
772Hoontech
773--------
774 878TV/FM
775
776Teppro (www.itcteppro.com.tw)
777-----------------------------
778 ITC PCITV (Card Ver 1.0) "Teppro TV1/TVFM1 Card"
779 ITC PCITV (Card Ver 2.0)
780 ITC PCITV (Card Ver 3.0) = "PV-BT878P+ (REV.9D)"
781 ITC PCITV (Card Ver 4.0)
782 TEPPRO IV-550 (For BT848 Main Chip)
783 ITC DSTTV (bt878, satellite)
784 ITC VideoMaker (saa7146, StreamMachine sm2110, tvtuner) "PV-SM2210P+ (REV:1C)"
785
786Kworld (www.kworld.com.tw)
787--------------------------
788 PC TV Station
789 KWORLD KW-TV878R TV (no radio)
790 KWORLD KW-TV878RF TV (w/ radio)
791
792 KWORLD KW-TVL878RF (low profile)
793
794 KWORLD KW-TV713XRF (saa7134)
795
796
797 MPEG TV Station (same cards as above plus WinDVR Software MPEG en/decoder)
798 KWORLD KW-TV878R -Pro TV (no Radio)
799 KWORLD KW-TV878RF-Pro TV (w/ Radio)
800 KWORLD KW-TV878R -Ultra TV (no Radio)
801 KWORLD KW-TV878RF-Ultra TV (w/ Radio)
802
803
804
805JTT/ Justy Corp.http://www.justy.co.jp/ (www.jtt.com.jp website down)
806---------------------------------------------------------------------
807 JTT-02 (JTT TV) "TV watchmate pro" (bt848)
808
809ADS www.adstech.com
810-------------------
811 Channel Surfer TV ( CHX-950 )
812 Channel Surfer TV+FM ( CHX-960FM )
813
814AVEC www.prochips.com
815---------------------
816 AVEC Intercapture (bt848, tea6320)
817
818NoBrand
819-------
820 TV Excel = Australian Name for "PV-BT878P+ 8E" or "878TV Rev.3_"
821
822Mach www.machspeed.com
823----
824 Mach TV 878
825
826Eline www.eline-net.com/
827-----
828 Eline Vision TVMaster / TVMaster FM (ELV-TVM/ ELV-TVM-FM) = LR26 (bt878)
829 Eline Vision TVMaster-2000 (ELV-TVM-2000, ELV-TVM-2000-FM)= LR138 (saa713x)
830
831Spirit http://www.spiritmodems.com.au/
832------
833 Spirit TV Tuner/Video Capture Card (bt848)
834
835Boser www.boser.com.tw
836-----
837 HS-878 Mini PCI Capture Add-on Card
838 HS-879 Mini PCI 3D Audio and Capture Add-on Card (w/ ES1938 Solo-1)
839
840Satelco www.citycom-gmbh.de, www.satelco.de
841-------
842 TV-FM =KNC1 saa7134
843 Standard PCI (DVB-S) = Technotrend Budget
844 Standard PCI (DVB-S) w/ CI
845 Satelco Highend PCI (DVB-S) = Technotrend Premium
846
847
848Sensoray www.sensoray.com
849--------
850 Sensoray 311 (PC/104 bus)
851 Sensoray 611 (PCI)
852
853CEI (Chartered Electronics Industries Pte Ltd [CEI] [FCC ID HBY])
854---
855 TV Tuner - HBY-33A-RAFFLES Brooktree Bt848KPF + Philips
856 TV Tuner MG9910 - HBY33A-TVO CEI + Philips SAA7110 + OKI M548262 + ST STV8438CV
857 Primetime TV (ISA)
858 acquired by Singapore Technologies
859 now operating as Chartered Semiconductor Manufacturing
860 Manufacturer of video cards is listed as:
861 Cogent Electronics Industries [CEI]
862
863AITech
864------
865 Wavewatcher TV (ISA)
866 AITech WaveWatcher TV-PCI = can be LR26 (Bt848) or LR50 (BT878)
867 WaveWatcher TVR-202 TV/FM Radio Card (ISA)
868
869MAXRON
870------
871 Maxron MaxTV/FM Radio (KW-TV878-FNT) = Kworld or JW-TV878-FBK
872
873www.ids-imaging.de
874------------------
875 Falcon Series (capture only)
876 In USA: http://www.theimagingsource.com/
877 DFG/LC1
878
879www.sknet-web.co.jp
880-------------------
881 SKnet Monster TV (saa7134)
882
883A-Max www.amaxhk.com (Colormax, Amax, Napa)
884-------------------
885 APAC Viewcomp 878
886
887Cybertainment
888-------------
889 CyberMail AV Video Email Kit w/ PCI Capture Card (capture only)
890 CyberMail Xtreme
891 These are Flyvideo
892
893VCR (http://www.vcrinc.com/)
894---
895 Video Catcher 16
896
897Twinhan
898-------
899 DST Card/DST-IP (bt878, twinhan asic) VP-1020
900 Sold as:
901 KWorld DVBS Satellite TV-Card
902 Powercolor DSTV Satellite Tuner Card
903 Prolink Pixelview DTV2000
904 Provideo PV-911 Digital Satellite TV Tuner Card With Common Interface ?
905 DST-CI Card (DVB Satellite) VP-1030
906 DCT Card (DVB cable)
907
908MSI
909---
910 MSI TV@nywhere Tuner Card (MS-8876) (CX23881/883) Not Bt878 compatible.
911 MS-8401 DVB-S
912
913Focus www.focusinfo.com
914-----
915 InVideo PCI (bt878)
916
917Sdisilk www.sdisilk.com/
918-------
919 SDI Silk 100
920 SDI Silk 200 SDI Input Card
921
922www.euresys.com
923 PICOLO series
924
925PMC/Pace
926www.pacecom.co.uk website closed
927
928Mercury www.kobian.com (UK and FR)
929 LR50
930 LR138RBG-Rx == LR138
931
932TEC sound (package and manuals don't have any other manufacturer info) TecSound
933 Though educated googling found: www.techmakers.com
934 TV-Mate = Zoltrix VP-8482
935
936Lorenzen www.lorenzen.de
937--------
938 SL DVB-S PCI = Technotrend Budget PCI (su1278 or bsru version)
939
940Origo (.uk) www.origo2000.com
941 PC TV Card = LR50
942
943I/O Magic www.iomagic.com
944---------
945 PC PVR - Desktop TV Personal Video Recorder DR-PCTV100 = Pinnacle ROB2D-51009464 4.0 + Cyberlink PowerVCR II
946
947Arowana
948-------
949 TV-Karte / Poso Power TV (?) = Zoltrix VP-8482 (?)
950
951iTVC15 boards:
952-------------
953kuroutoshikou.com ITVC15
954yuan.com MPG160 PCI TV (Internal PCI MPEG2 encoder card plus TV-tuner)
955
956Asus www.asuscom.com
957 Asus TV Tuner Card 880 NTSC (low profile, cx23880)
958 Asus TV (saa7134)
959
960Hoontech
961--------
962http://www.hoontech.com/korean/download/down_driver_list03.html
963 HART Vision 848 (H-ART Vision 848)
964 HART Vision 878 (H-Art Vision 878)
diff --git a/Documentation/video4linux/bttv/ICs b/Documentation/video4linux/bttv/ICs
new file mode 100644
index 000000000000..6b7491336967
--- /dev/null
+++ b/Documentation/video4linux/bttv/ICs
@@ -0,0 +1,37 @@
1all boards:
2
3Brooktree Bt848/848A/849/878/879: video capture chip
4
5
6
7Miro PCTV:
8
9Philips or Temic Tuner
10
11
12
13Hauppauge Win/TV pci (version 405):
14
15Microchip 24LC02B or
16Philips 8582E2Y: 256 Byte EEPROM with configuration information
17 I2C 0xa0-0xa1, (24LC02B also responds to 0xa2-0xaf)
18Philips SAA5246AGP/E: Videotext decoder chip, I2C 0x22-0x23
19TDA9800: sound decoder
20Winbond W24257AS-35: 32Kx8 CMOS static RAM (Videotext buffer mem)
2114052B: analog switch for selection of sound source
22
23PAL:
24TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
25TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3
26
27NTSC:
28TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
29TSA5518: no datasheet available on Philips site
30
31
32
33STB TV pci:
34
35???
36if you want better support for STB cards send me info!
37Look at the board! What chips are on it?
diff --git a/Documentation/video4linux/bttv/Insmod-options b/Documentation/video4linux/bttv/Insmod-options
new file mode 100644
index 000000000000..7bb5a50b0779
--- /dev/null
+++ b/Documentation/video4linux/bttv/Insmod-options
@@ -0,0 +1,173 @@
1
2Note: "modinfo <module>" prints various informations about a kernel
3module, among them a complete and up-to-date list of insmod options.
4This list tends to be outdated because it is updated manually ...
5
6==========================================================================
7
8bttv.o
9 the bt848/878 (grabber chip) driver
10
11 insmod args:
12 card=n card type, see CARDLIST for a list.
13 tuner=n tuner type, see CARDLIST for a list.
14 radio=0/1 card supports radio
15 pll=0/1/2 pll settings
16 0: don't use PLL
17 1: 28 MHz crystal installed
18 2: 35 MHz crystal installed
19
20 triton1=0/1 for Triton1 (+others) compatibility
21 vsfx=0/1 yet another chipset bug compatibility bit
22 see README.quirks for details on these two.
23
24 bigendian=n Set the endianness of the gfx framebuffer.
25 Default is native endian.
26 fieldnr=0/1 Count fields. Some TV descrambling software
27 needs this, for others it only generates
28 50 useless IRQs/sec. default is 0 (off).
29 autoload=0/1 autoload helper modules (tuner, audio).
30 default is 1 (on).
31 bttv_verbose=0/1/2 verbose level (at insmod time, while
32 looking at the hardware). default is 1.
33 bttv_debug=0/1 debug messages (for capture).
34 default is 0 (off).
35 irq_debug=0/1 irq handler debug messages.
36 default is 0 (off).
37 gbuffers=2-32 number of capture buffers for mmap'ed capture.
38 default is 4.
39 gbufsize= size of capture buffers. default and
40 maximum value is 0x208000 (~2MB)
41 no_overlay=0 Enable overlay on broken hardware. There
42 are some chipsets (SIS for example) which
43 are known to have problems with the PCI DMA
44 push used by bttv. bttv will disable overlay
45 by default on this hardware to avoid crashes.
46 With this insmod option you can override this.
47 automute=0/1 Automatically mutes the sound if there is
48 no TV signal, on by default. You might try
49 to disable this if you have bad input signal
50 quality which leading to unwanted sound
51 dropouts.
52 chroma_agc=0/1 AGC of chroma signal, off by default.
53 adc_crush=0/1 Luminance ADC crush, on by default.
54
55 bttv_gpio=0/1
56 gpiomask=
57 audioall=
58 audiomux=
59 See Sound-FAQ for a detailed description.
60
61 remap, card, radio and pll accept up to four comma-separated arguments
62 (for multiple boards).
63
64tuner.o
65 The tuner driver. You need this unless you want to use only
66 with a camera or external tuner ...
67
68 insmod args:
69 debug=1 print some debug info to the syslog
70 type=n type of the tuner chip. n as follows:
71 see CARDLIST for a complete list.
72 pal=[bdgil] select PAL variant (used for some tuners
73 only, important for the audio carrier).
74
75tvmixer.o
76 registers a mixer device for the TV card's volume/bass/treble
77 controls (requires a i2c audio control chip like the msp3400).
78
79 insmod args:
80 debug=1 print some debug info to the syslog.
81 devnr=n allocate device #n (0 == /dev/mixer,
82 1 = /dev/mixer1, ...), default is to
83 use the first free one.
84
85tvaudio.o
86 new, experimental module which is supported to provide a single
87 driver for all simple i2c audio control chips (tda/tea*).
88
89 insmod args:
90 tda8425 = 1 enable/disable the support for the
91 tda9840 = 1 various chips.
92 tda9850 = 1 The tea6300 can't be autodetected and is
93 tda9855 = 1 therefore off by default, if you have
94 tda9873 = 1 this one on your card (STB uses these)
95 tda9874a = 1 you have to enable it explicitly.
96 tea6300 = 0 The two tda985x chips use the same i2c
97 tea6420 = 1 address and can't be disturgished from
98 pic16c54 = 1 each other, you might have to disable
99 the wrong one.
100 debug = 1 print debug messages
101
102 insmod args for tda9874a:
103 tda9874a_SIF=1/2 select sound IF input pin (1 or 2)
104 (default is pin 1)
105 tda9874a_AMSEL=0/1 auto-mute select for NICAM (default=0)
106 Please read note 3 below!
107 tda9874a_STD=n select TV sound standard (0..8):
108 0 - A2, B/G
109 1 - A2, M (Korea)
110 2 - A2, D/K (1)
111 3 - A2, D/K (2)
112 4 - A2, D/K (3)
113 5 - NICAM, I
114 6 - NICAM, B/G
115 7 - NICAM, D/K (default)
116 8 - NICAM, L
117
118 Note 1: tda9874a supports both tda9874h (old) and tda9874a (new) chips.
119 Note 2: tda9874h/a and tda9875 (which is supported separately by
120 tda9875.o) use the same i2c address so both modules should not be
121 used at the same time.
122 Note 3: Using tda9874a_AMSEL option depends on your TV card design!
123 AMSEL=0: auto-mute will switch between NICAM sound
124 and the sound on 1st carrier (i.e. FM mono or AM).
125 AMSEL=1: auto-mute will switch between NICAM sound
126 and the analog mono input (MONOIN pin).
127 If tda9874a decoder on your card has MONOIN pin not connected, then
128 use only tda9874_AMSEL=0 or don't specify this option at all.
129 For example:
130 card=65 (FlyVideo 2000S) - set AMSEL=1 or AMSEL=0
131 card=72 (Prolink PV-BT878P rev.9B) - set AMSEL=0 only
132
133msp3400.o
134 The driver for the msp34xx sound processor chips. If you have a
135 stereo card, you probably want to insmod this one.
136
137 insmod args:
138 debug=1/2 print some debug info to the syslog,
139 2 is more verbose.
140 simple=1 Use the "short programming" method. Newer
141 msp34xx versions support this. You need this
142 for dbx stereo. Default is on if supported by
143 the chip.
144 once=1 Don't check the TV-stations Audio mode
145 every few seconds, but only once after
146 channel switches.
147 amsound=1 Audio carrier is AM/NICAM at 6.5 Mhz. This
148 should improve things for french people, the
149 carrier autoscan seems to work with FM only...
150
151tea6300.o - OBSOLETE (use tvaudio instead)
152 The driver for the tea6300 fader chip. If you have a stereo
153 card and the msp3400.o doesn't work, you might want to try this
154 one. This chip is seen on most STB TV/FM cards (usually from
155 Gateway OEM sold surplus on auction sites).
156
157 insmod args:
158 debug=1 print some debug info to the syslog.
159
160tda8425.o - OBSOLETE (use tvaudio instead)
161 The driver for the tda8425 fader chip. This driver used to be
162 part of bttv.c, so if your sound used to work but does not
163 anymore, try loading this module.
164
165 insmod args:
166 debug=1 print some debug info to the syslog.
167
168tda985x.o - OBSOLETE (use tvaudio instead)
169 The driver for the tda9850/55 audio chips.
170
171 insmod args:
172 debug=1 print some debug info to the syslog.
173 chip=9850/9855 set the chip type.
diff --git a/Documentation/video4linux/bttv/MAKEDEV b/Documentation/video4linux/bttv/MAKEDEV
new file mode 100644
index 000000000000..6c29ba43b6c6
--- /dev/null
+++ b/Documentation/video4linux/bttv/MAKEDEV
@@ -0,0 +1,28 @@
1#!/bin/bash
2
3function makedev () {
4
5 for dev in 0 1 2 3; do
6 echo "/dev/$1$dev: char 81 $[ $2 + $dev ]"
7 rm -f /dev/$1$dev
8 mknod /dev/$1$dev c 81 $[ $2 + $dev ]
9 chmod 666 /dev/$1$dev
10 done
11
12 # symlink for default device
13 rm -f /dev/$1
14 ln -s /dev/${1}0 /dev/$1
15}
16
17# see http://roadrunner.swansea.uk.linux.org/v4lapi.shtml
18
19echo "*** new device names ***"
20makedev video 0
21makedev radio 64
22makedev vtx 192
23makedev vbi 224
24
25#echo "*** old device names (for compatibility only) ***"
26#makedev bttv 0
27#makedev bttv-fm 64
28#makedev bttv-vbi 224
diff --git a/Documentation/video4linux/bttv/Modprobe.conf b/Documentation/video4linux/bttv/Modprobe.conf
new file mode 100644
index 000000000000..55f14650d8cd
--- /dev/null
+++ b/Documentation/video4linux/bttv/Modprobe.conf
@@ -0,0 +1,11 @@
1# i2c
2alias char-major-89 i2c-dev
3options i2c-core i2c_debug=1
4options i2c-algo-bit bit_test=1
5
6# bttv
7alias char-major-81 videodev
8alias char-major-81-0 bttv
9options bttv card=2 radio=1
10options tuner debug=1
11
diff --git a/Documentation/video4linux/bttv/Modules.conf b/Documentation/video4linux/bttv/Modules.conf
new file mode 100644
index 000000000000..753f15956eb8
--- /dev/null
+++ b/Documentation/video4linux/bttv/Modules.conf
@@ -0,0 +1,14 @@
1# For modern kernels (2.6 or above), this belongs in /etc/modprobe.conf
2# For for 2.4 kernels or earlier, this belongs in /etc/modules.conf.
3
4# i2c
5alias char-major-89 i2c-dev
6options i2c-core i2c_debug=1
7options i2c-algo-bit bit_test=1
8
9# bttv
10alias char-major-81 videodev
11alias char-major-81-0 bttv
12options bttv card=2 radio=1
13options tuner debug=1
14
diff --git a/Documentation/video4linux/bttv/PROBLEMS b/Documentation/video4linux/bttv/PROBLEMS
new file mode 100644
index 000000000000..8e31e9e36bf7
--- /dev/null
+++ b/Documentation/video4linux/bttv/PROBLEMS
@@ -0,0 +1,62 @@
1- Start capturing by pressing "c" or by selecting it via a menu!
2
3- Start capturing by pressing "c" or by selecting it via a menu!!!
4
5- The memory of some S3 cards is not recognized right:
6
7 First of all, if you are not using XFree-3.2 or newer, upgrade AT LEAST to
8 XFree-3.2A! This solved the problem for most people.
9
10 Start up X11 like this: "XF86_S3 -probeonly" and write down where the
11 linear frame buffer is.
12 If it is different to the address found by bttv install bttv like this:
13 "insmod bttv vidmem=0xfb0"
14 if the linear frame buffer is at 0xfb000000 (i.e. omit the last 5 zeros!)
15
16 Some S3 cards even take up 64MB of memory but only report 32MB to the BIOS.
17 If this 64MB area overlaps the IO memory of the Bt848 you also have to
18 remap this. E.g.: insmod bttv vidmem=0xfb0 remap=0xfa0
19
20 If the video memory is found at the right place and there are no address
21 conflicts but still no picture (or the computer even crashes),
22 try disabling features of your PCI chipset in the BIOS setup.
23
24 Frank Kapahnke <frank@kapahnke.prima.ruhr.de> also reported that problems
25 with his S3 868 went away when he upgraded to XFree 3.2.
26
27
28- I still only get a black picture with my S3 card!
29
30 Even with XFree-3.2A some people have problems with their S3 cards
31 (mostly with Trio 64 but also with some others)
32 Get the free demo version of Accelerated X from www.xinside.com and try
33 bttv with it. bttv seems to work with most S3 cards with Accelerated X.
34
35 Since I do not know much (better make that almost nothing) about VGA card
36 programming I do not know the reason for this.
37 Looks like XFree does something different when setting up the video memory?
38 Maybe somebody can enlighten me?
39 Would be nice if somebody could get this to work with XFree since
40 Accelerated X costs more than some of the grabber cards ...
41
42 Better linear frame buffer support for S3 cards will probably be in
43 XFree 4.0.
44
45- Grabbing is not switched off when changing consoles with XFree.
46 That's because XFree and some AcceleratedX versions do not send unmap
47 events.
48
49- Some popup windows (e.g. of the window manager) are not refreshed.
50
51 Disable backing store by starting X with the option "-bs"
52
53- When using 32 bpp in XFree or 24+8bpp mode in AccelX 3.1 the system
54 can sometimes lock up if you use more than 1 bt848 card at the same time.
55 You will always get pixel errors when e.g. using more than 1 card in full
56 screen mode. Maybe we need something faster than the PCI bus ...
57
58
59- Some S3 cards and the Matrox Mystique will produce pixel errors with
60 full resolution in 32-bit mode.
61
62- Some video cards have problems with Accelerated X 4.1
diff --git a/Documentation/video4linux/bttv/README b/Documentation/video4linux/bttv/README
new file mode 100644
index 000000000000..a72f4c94fb0b
--- /dev/null
+++ b/Documentation/video4linux/bttv/README
@@ -0,0 +1,90 @@
1
2Release notes for bttv
3======================
4
5You'll need at least these config options for bttv:
6 CONFIG_I2C=m
7 CONFIG_I2C_ALGOBIT=m
8 CONFIG_VIDEO_DEV=m
9
10The latest bttv version is available from http://bytesex.org/bttv/
11
12
13Make bttv work with your card
14-----------------------------
15
16Just try "modprobe bttv" and see if that works.
17
18If it doesn't bttv likely could not autodetect your card and needs some
19insmod options. The most important insmod option for bttv is "card=n"
20to select the correct card type. If you get video but no sound you've
21very likely specified the wrong (or no) card type. A list of supported
22cards is in CARDLIST.bttv
23
24If bttv takes very long to load (happens sometimes with the cheap
25cards which have no tuner), try adding this to your modules.conf:
26 options i2c-algo-bit bit_test=1
27
28For the WinTV/PVR you need one firmware file from the driver CD:
29hcwamc.rbf. The file is in the pvr45xxx.exe archive (self-extracting
30zip file, unzip can unpack it). Put it into the /etc/pvr directory or
31use the firm_altera=<path> insmod option to point the driver to the
32location of the file.
33
34If your card isn't listed in CARDLIST.bttv or if you have trouble making
35audio work, you should read the Sound-FAQ.
36
37
38Autodetecting cards
39-------------------
40
41bttv uses the PCI Subsystem ID to autodetect the card type. lspci lists
42the Subsystem ID in the second line, looks like this:
43
4400:0a.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02)
45 Subsystem: Hauppauge computer works Inc. WinTV/GO
46 Flags: bus master, medium devsel, latency 32, IRQ 5
47 Memory at e2000000 (32-bit, prefetchable) [size=4K]
48
49only bt878-based cards can have a subsystem ID (which does not mean
50that every card really has one). bt848 cards can't have a Subsystem
51ID and therefore can't be autodetected. There is a list with the ID's
52in bttv-cards.c (in case you are intrested or want to mail patches
53with updates).
54
55
56Still doesn't work?
57-------------------
58
59I do NOT have a lab with 30+ different grabber boards and a
60PAL/NTSC/SECAM test signal generator at home, so I often can't
61reproduce your problems. This makes debugging very difficult for me.
62If you have some knowledge and spare time, please try to fix this
63yourself (patches very welcome of course...) You know: The linux
64slogan is "Do it yourself".
65
66There is a mailing list: video4linux-list@redhat.com.
67https://listman.redhat.com/mailman/listinfo/video4linux-list
68
69If you have trouble with some specific TV card, try to ask there
70instead of mailing me directly. The chance that someone with the
71same card listens there is much higher...
72
73For problems with sound: There are alot of different systems used
74for TV sound all over the world. And there are also different chips
75which decode the audio signal. Reports about sound problems ("stereo
76does'nt work") are pretty useless unless you include some details
77about your hardware and the TV sound scheme used in your country (or
78at least the country you are living in).
79
80
81Finally: If you mail some patches for bttv around the world (to
82linux-kernel/Alan/Linus/...), please Cc: me.
83
84
85Have fun with bttv,
86
87 Gerd
88
89--
90Gerd Knorr <kraxel@bytesex.org>
diff --git a/Documentation/video4linux/bttv/README.WINVIEW b/Documentation/video4linux/bttv/README.WINVIEW
new file mode 100644
index 000000000000..c61cf2864287
--- /dev/null
+++ b/Documentation/video4linux/bttv/README.WINVIEW
@@ -0,0 +1,33 @@
1
2Support for the Leadtek WinView 601 TV/FM by Jon Tombs <jon@gte.esi.us.es>
3
4This card is basically the same as all the rest (Bt484A, Philips tuner),
5the main difference is that they have attached a programmable attenuator to 3
6GPIO lines in order to give some volume control. They have also stuck an
7infra-red remote control decoded on the board, I will add support for this
8when I get time (it simple generates an interrupt for each key press, with
9the key code is placed in the GPIO port).
10
11I don't yet have any application to test the radio support. The tuner
12frequency setting should work but it is possible that the audio multiplexer
13is wrong. If it doesn't work, send me email.
14
15
16- No Thanks to Leadtek they refused to answer any questions about their
17hardware. The driver was written by visual inspection of the card. If you
18use this driver, send an email insult to them, and tell them you won't
19continue buying their hardware unless they support Linux.
20
21- Little thanks to Princeton Technology Corp (http://www.princeton.com.tw)
22who make the audio attenuator. Their publicly available data-sheet available
23on their web site doesn't include the chip programming information! Hidden
24on their server are the full data-sheets, but don't ask how I found it.
25
26To use the driver I use the following options, the tuner and pll settings might
27be different in your country
28
29insmod videodev
30insmod i2c scan=1 i2c_debug=0 verbose=0
31insmod tuner type=1 debug=0
32insmod bttv pll=1 radio=1 card=17
33
diff --git a/Documentation/video4linux/bttv/README.freeze b/Documentation/video4linux/bttv/README.freeze
new file mode 100644
index 000000000000..51f8d4379a94
--- /dev/null
+++ b/Documentation/video4linux/bttv/README.freeze
@@ -0,0 +1,74 @@
1
2If the box freezes hard with bttv ...
3=====================================
4
5It might be a bttv driver bug. It also might be bad hardware. It also
6might be something else ...
7
8Just mailing me "bttv freezes" isn't going to help much. This README
9has a few hints how you can help to pin down the problem.
10
11
12bttv bugs
13---------
14
15If some version works and another doesn't it is likely to be a driver
16bug. It is very helpful if you can tell where exactly it broke
17(i.e. the last working and the first broken version).
18
19With a hard freeze you probably doesn't find anything in the logfiles.
20The only way to capture any kernel messages is to hook up a serial
21console and let some terminal application log the messages. /me uses
22screen. See Documentation/serial-console.txt for details on setting
23up a serial console.
24
25Read Documentation/oops-tracing.txt to learn how to get any useful
26information out of a register+stack dump printed by the kernel on
27protection faults (so-called "kernel oops").
28
29If you run into some kind of deadlock, you can try to dump a call trace
30for each process using sysrq-t (see Documentation/sysrq.txt). ksymoops
31will translate these dumps into kernel symbols too. This way it is
32possible to figure where *exactly* some process in "D" state is stuck.
33
34I've seen reports that bttv 0.7.x crashes whereas 0.8.x works rock solid
35for some people. Thus probably a small buglet left somewhere in bttv
360.7.x. I have no idea where exactly, it works stable for me and alot of
37other people. But in case you have problems with the 0.7.x versions you
38can give 0.8.x a try ...
39
40
41hardware bugs
42-------------
43
44Some hardware can't deal with PCI-PCI transfers (i.e. grabber => vga).
45Sometimes problems show up with bttv just because of the high load on
46the PCI bus. The bt848/878 chips have a few workarounds for known
47incompatibilities, see README.quirks.
48
49Some folks report that increasing the pci latency helps too,
50althrought I'm not sure whenever this really fixes the problems or
51only makes it less likely to happen. Both bttv and btaudio have a
52insmod option to set the PCI latency of the device.
53
54Some mainboard have problems to deal correctly with multiple devices
55doing DMA at the same time. bttv + ide seems to cause this sometimes,
56if this is the case you likely see freezes only with video and hard disk
57access at the same time. Updating the IDE driver to get the latest and
58greatest workarounds for hardware bugs might fix these problems.
59
60
61other
62-----
63
64If you use some binary-only yunk (like nvidia module) try to reproduce
65the problem without.
66
67IRQ sharing is known to cause problems in some cases. It works just
68fine in theory and many configurations. Neverless it might be worth a
69try to shuffle around the PCI cards to give bttv another IRQ or make
70it share the IRQ with some other piece of hardware. IRQ sharing with
71VGA cards seems to cause trouble sometimes. I've also seen funny
72effects with bttv sharing the IRQ with the ACPI bridge (and
73apci-enabled kernel).
74
diff --git a/Documentation/video4linux/bttv/README.quirks b/Documentation/video4linux/bttv/README.quirks
new file mode 100644
index 000000000000..e8edb87df711
--- /dev/null
+++ b/Documentation/video4linux/bttv/README.quirks
@@ -0,0 +1,83 @@
1
2Below is what the bt878 data book says about the PCI bug compatibility
3modes of the bt878 chip.
4
5The triton1 insmod option sets the EN_TBFX bit in the control register.
6The vsfx insmod option does the same for EN_VSFX bit. If you have
7stability problems you can try if one of these options makes your box
8work solid.
9
10drivers/pci/quirks.c knows about these issues, this way these bits are
11enabled automagically for known-buggy chipsets (look at the kernel
12messages, bttv tells you).
13
14HTH,
15
16 Gerd
17
18---------------------------- cut here --------------------------
19
20Normal PCI Mode
21---------------
22
23The PCI REQ signal is the logical-or of the incoming function requests.
24The inter-nal GNT[0:1] signals are gated asynchronously with GNT and
25demultiplexed by the audio request signal. Thus the arbiter defaults to
26the video function at power-up and parks there during no requests for
27bus access. This is desirable since the video will request the bus more
28often. However, the audio will have highest bus access priority. Thus
29the audio will have first access to the bus even when issuing a request
30after the video request but before the PCI external arbiter has granted
31access to the Bt879. Neither function can preempt the other once on the
32bus. The duration to empty the entire video PCI FIFO onto the PCI bus is
33very short compared to the bus access latency the audio PCI FIFO can
34tolerate.
35
36
37430FX Compatibility Mode
38------------------------
39
40When using the 430FX PCI, the following rules will ensure
41compatibility:
42
43 (1) Deassert REQ at the same time as asserting FRAME.
44 (2) Do not reassert REQ to request another bus transaction until after
45 finish-ing the previous transaction.
46
47Since the individual bus masters do not have direct control of REQ, a
48simple logical-or of video and audio requests would violate the rules.
49Thus, both the arbiter and the initiator contain 430FX compatibility
50mode logic. To enable 430FX mode, set the EN_TBFX bit as indicated in
51Device Control Register on page 104.
52
53When EN_TBFX is enabled, the arbiter ensures that the two compatibility
54rules are satisfied. Before GNT is asserted by the PCI arbiter, this
55internal arbiter may still logical-or the two requests. However, once
56the GNT is issued, this arbiter must lock in its decision and now route
57only the granted request to the REQ pin. The arbiter decision lock
58happens regardless of the state of FRAME because it does not know when
59FRAME will be asserted (typically - each initiator will assert FRAME on
60the cycle following GNT). When FRAME is asserted, it is the initiator s
61responsibility to remove its request at the same time. It is the
62arbiters responsibility to allow this request to flow through to REQ and
63not allow the other request to hold REQ asserted. The decision lock may
64be removed at the end of the transaction: for example, when the bus is
65idle (FRAME and IRDY). The arbiter decision may then continue
66asynchronously until GNT is again asserted.
67
68
69Interfacing with Non-PCI 2.1 Compliant Core Logic
70-------------------------------------------------
71
72A small percentage of core logic devices may start a bus transaction
73during the same cycle that GNT is de-asserted. This is non PCI 2.1
74compliant. To ensure compatibility when using PCs with these PCI
75controllers, the EN_VSFX bit must be enabled (refer to Device Control
76Register on page 104). When in this mode, the arbiter does not pass GNT
77to the internal functions unless REQ is asserted. This prevents a bus
78transaction from starting the same cycle as GNT is de-asserted. This
79also has the side effect of not being able to take advantage of bus
80parking, thus lowering arbitration performance. The Bt879 drivers must
81query for these non-compliant devices, and set the EN_VSFX bit only if
82required.
83
diff --git a/Documentation/video4linux/bttv/Sound-FAQ b/Documentation/video4linux/bttv/Sound-FAQ
new file mode 100644
index 000000000000..b8c9c2605ce2
--- /dev/null
+++ b/Documentation/video4linux/bttv/Sound-FAQ
@@ -0,0 +1,148 @@
1
2bttv and sound mini howto
3=========================
4
5There are alot of different bt848/849/878/879 based boards available.
6Making video work often is not a big deal, because this is handled
7completely by the bt8xx chip, which is common on all boards. But
8sound is handled in slightly different ways on each board.
9
10To handle the grabber boards correctly, there is a array tvcards[] in
11bttv-cards.c, which holds the informations required for each board.
12Sound will work only, if the correct entry is used (for video it often
13makes no difference). The bttv driver prints a line to the kernel
14log, telling which card type is used. Like this one:
15
16 bttv0: model: BT848(Hauppauge old) [autodetected]
17
18You should verify this is correct. If it isn't, you have to pass the
19correct board type as insmod argument, "insmod bttv card=2" for
20example. The file CARDLIST has a list of valid arguments for card.
21If your card isn't listed there, you might check the source code for
22new entries which are not listed yet. If there isn't one for your
23card, you can check if one of the existing entries does work for you
24(just trial and error...).
25
26Some boards have an extra processor for sound to do stereo decoding
27and other nice features. The msp34xx chips are used by Hauppauge for
28example. If your board has one, you might have to load a helper
29module like msp3400.o to make sound work. If there isn't one for the
30chip used on your board: Bad luck. Start writing a new one. Well,
31you might want to check the video4linux mailing list archive first...
32
33Of course you need a correctly installed soundcard unless you have the
34speakers connected directly to the grabber board. Hint: check the
35mixer settings too. ALSA for example has everything muted by default.
36
37
38How sound works in detail
39=========================
40
41Still doesn't work? Looks like some driver hacking is required.
42Below is a do-it-yourself description for you.
43
44The bt8xx chips have 32 general purpose pins, and registers to control
45these pins. One register is the output enable register
46(BT848_GPIO_OUT_EN), it says which pins are actively driven by the
47bt848 chip. Another one is the data register (BT848_GPIO_DATA), where
48you can get/set the status if these pins. They can be used for input
49and output.
50
51Most grabber board vendors use these pins to control an external chip
52which does the sound routing. But every board is a little different.
53These pins are also used by some companies to drive remote control
54receiver chips. Some boards use the i2c bus instead of the gpio pins
55to connect the mux chip.
56
57As mentioned above, there is a array which holds the required
58informations for each known board. You basically have to create a new
59line for your board. The important fields are these two:
60
61struct tvcard
62{
63 [ ... ]
64 u32 gpiomask;
65 u32 audiomux[6]; /* Tuner, Radio, external, internal, mute, stereo */
66};
67
68gpiomask specifies which pins are used to control the audio mux chip.
69The corresponding bits in the output enable register
70(BT848_GPIO_OUT_EN) will be set as these pins must be driven by the
71bt848 chip.
72
73The audiomux[] array holds the data values for the different inputs
74(i.e. which pins must be high/low for tuner/mute/...). This will be
75written to the data register (BT848_GPIO_DATA) to switch the audio
76mux.
77
78
79What you have to do is figure out the correct values for gpiomask and
80the audiomux array. If you have Windows and the drivers four your
81card installed, you might to check out if you can read these registers
82values used by the windows driver. A tool to do this is available
83from ftp://telepresence.dmem.strath.ac.uk/pub/bt848/winutil, but it
84does'nt work with bt878 boards according to some reports I received.
85Another one with bt878 suport is available from
86http://btwincap.sourceforge.net/Files/btspy2.00.zip
87
88You might also dig around in the *.ini files of the Windows applications.
89You can have a look at the board to see which of the gpio pins are
90connected at all and then start trial-and-error ...
91
92
93Starting with release 0.7.41 bttv has a number of insmod options to
94make the gpio debugging easier:
95
96bttv_gpio=0/1 enable/disable gpio debug messages
97gpiomask=n set the gpiomask value
98audiomux=i,j,... set the values of the audiomux array
99audioall=a set the values of the audiomux array (one
100 value for all array elements, useful to check
101 out which effect the particular value has).
102
103The messages printed with bttv_gpio=1 look like this:
104
105 bttv0: gpio: en=00000027, out=00000024 in=00ffffd8 [audio: off]
106
107en = output _en_able register (BT848_GPIO_OUT_EN)
108out = _out_put bits of the data register (BT848_GPIO_DATA),
109 i.e. BT848_GPIO_DATA & BT848_GPIO_OUT_EN
110in = _in_put bits of the data register,
111 i.e. BT848_GPIO_DATA & ~BT848_GPIO_OUT_EN
112
113
114
115Other elements of the tvcards array
116===================================
117
118If you are trying to make a new card work you might find it useful to
119know what the other elements in the tvcards array are good for:
120
121video_inputs - # of video inputs the card has
122audio_inputs - historical cruft, not used any more.
123tuner - which input is the tuner
124svhs - which input is svhs (all others are labeled composite)
125muxsel - video mux, input->registervalue mapping
126pll - same as pll= insmod option
127tuner_type - same as tuner= insmod option
128*_modulename - hint whenever some card needs this or that audio
129 module loaded to work properly.
130has_radio - whenever this TV card has a radio tuner.
131no_msp34xx - "1" disables loading of msp3400.o module
132no_tda9875 - "1" disables loading of tda9875.o module
133needs_tvaudio - set to "1" to load tvaudio.o module
134
135If some config item is specified both from the tvcards array and as
136insmod option, the insmod option takes precedence.
137
138
139
140Good luck,
141
142 Gerd
143
144
145PS: If you have a new working entry, mail it to me.
146
147--
148Gerd Knorr <kraxel@bytesex.org>
diff --git a/Documentation/video4linux/bttv/Specs b/Documentation/video4linux/bttv/Specs
new file mode 100644
index 000000000000..79b9e576fe79
--- /dev/null
+++ b/Documentation/video4linux/bttv/Specs
@@ -0,0 +1,3 @@
1Philips http://www.Semiconductors.COM/pip/
2Conexant http://www.conexant.com/techinfo/default.asp
3Micronas http://www.micronas.de/pages/product_documentation/index.html
diff --git a/Documentation/video4linux/bttv/THANKS b/Documentation/video4linux/bttv/THANKS
new file mode 100644
index 000000000000..2085399da7d4
--- /dev/null
+++ b/Documentation/video4linux/bttv/THANKS
@@ -0,0 +1,24 @@
1Many thanks to:
2
3- Markus Schroeder <schroedm@uni-duesseldorf.de> for information on the Bt848
4 and tuner programming and his control program xtvc.
5
6- Martin Buck <martin-2.buck@student.uni-ulm.de> for his great Videotext
7 package.
8
9- Gerd Knorr <kraxel@cs.tu-berlin.de> for the MSP3400 support and the modular
10 I2C, tuner, ... support.
11
12
13- MATRIX Vision for giving us 2 cards for free, which made support of
14 single crystal operation possible.
15
16- MIRO for providing a free PCTV card and detailed information about the
17 components on their cards. (E.g. how the tuner type is detected)
18 Without their card I could not have debugged the NTSC mode.
19
20- Hauppauge for telling how the sound input is selected and what components
21 they do and will use on their radio cards.
22 Also many thanks for faxing me the FM1216 data sheet.
23
24
diff --git a/Documentation/video4linux/bttv/Tuners b/Documentation/video4linux/bttv/Tuners
new file mode 100644
index 000000000000..d18fbc70c0e0
--- /dev/null
+++ b/Documentation/video4linux/bttv/Tuners
@@ -0,0 +1,115 @@
11) Tuner Programming
2====================
3There are some flavors of Tuner programming APIs.
4These differ mainly by the bandswitch byte.
5
6 L= LG_API (VHF_LO=0x01, VHF_HI=0x02, UHF=0x08, radio=0x04)
7 P= PHILIPS_API (VHF_LO=0xA0, VHF_HI=0x90, UHF=0x30, radio=0x04)
8 T= TEMIC_API (VHF_LO=0x02, VHF_HI=0x04, UHF=0x01)
9 A= ALPS_API (VHF_LO=0x14, VHF_HI=0x12, UHF=0x11)
10 M= PHILIPS_MK3 (VHF_LO=0x01, VHF_HI=0x02, UHF=0x04, radio=0x19)
11
122) Tuner Manufacturers
13======================
14
15SAMSUNG Tuner identification: (e.g. TCPM9091PD27)
16 TCP [ABCJLMNQ] 90[89][125] [DP] [ACD] 27 [ABCD]
17 [ABCJLMNQ]:
18 A= BG+DK
19 B= BG
20 C= I+DK
21 J= NTSC-Japan
22 L= Secam LL
23 M= BG+I+DK
24 N= NTSC
25 Q= BG+I+DK+LL
26 [89]: ?
27 [125]:
28 2: No FM
29 5: With FM
30 [DP]:
31 D= NTSC
32 P= PAL
33 [ACD]:
34 A= F-connector
35 C= Phono connector
36 D= Din Jack
37 [ABCD]:
38 3-wire/I2C tuning, 2-band/3-band
39
40 These Tuners are PHILIPS_API compatible.
41
42Philips Tuner identification: (e.g. FM1216MF)
43 F[IRMQ]12[1345]6{MF|ME|MP}
44 F[IRMQ]:
45 FI12x6: Tuner Series
46 FR12x6: Tuner + Radio IF
47 FM12x6: Tuner + FM
48 FQ12x6: special
49 FMR12x6: special
50 TD15xx: Digital Tuner ATSC
51 12[1345]6:
52 1216: PAL BG
53 1236: NTSC
54 1246: PAL I
55 1256: Pal DK
56 {MF|ME|MP}
57 MF: BG LL w/ Secam (Multi France)
58 ME: BG DK I LL (Multi Europe)
59 MP: BG DK I (Multi PAL)
60 MR: BG DK M (?)
61 MG: BG DKI M (?)
62 MK2 series PHILIPS_API, most tuners are compatible to this one !
63 MK3 series introduced in 2002 w/ PHILIPS_MK3_API
64
65Temic Tuner identification: (.e.g 4006FH5)
66 4[01][0136][269]F[HYNR]5
67 40x2: Tuner (5V/33V), TEMIC_API.
68 40x6: Tuner 5V
69 41xx: Tuner compact
70 40x9: Tuner+FM compact
71 [0136]
72 xx0x: PAL BG
73 xx1x: Pal DK, Secam LL
74 xx3x: NTSC
75 xx6x: PAL I
76 F[HYNR]5
77 FH5: Pal BG
78 FY5: others
79 FN5: multistandard
80 FR5: w/ FM radio
81 3X xxxx: order number with specific connector
82 Note: Only 40x2 series has TEMIC_API, all newer tuners have PHILIPS_API.
83
84LG Innotek Tuner:
85 TPI8NSR11 : NTSC J/M (TPI8NSR01 w/FM) (P,210/497)
86 TPI8PSB11 : PAL B/G (TPI8PSB01 w/FM) (P,170/450)
87 TAPC-I701 : PAL I (TAPC-I001 w/FM) (P,170/450)
88 TPI8PSB12 : PAL D/K+B/G (TPI8PSB02 w/FM) (P,170/450)
89 TAPC-H701P: NTSC_JP (TAPC-H001P w/FM) (L,170/450)
90 TAPC-G701P: PAL B/G (TAPC-G001P w/FM) (L,170/450)
91 TAPC-W701P: PAL I (TAPC-W001P w/FM) (L,170/450)
92 TAPC-Q703P: PAL D/K (TAPC-Q001P w/FM) (L,170/450)
93 TAPC-Q704P: PAL D/K+I (L,170/450)
94 TAPC-G702P: PAL D/K+B/G (L,170/450)
95
96 TADC-H002F: NTSC (L,175/410?; 2-B, C-W+11, W+12-69)
97 TADC-M201D: PAL D/K+B/G+I (L,143/425) (sound control at I2C address 0xc8)
98 TADC-T003F: NTSC Taiwan (L,175/410?; 2-B, C-W+11, W+12-69)
99 Suffix:
100 P= Standard phono female socket
101 D= IEC female socket
102 F= F-connector
103
104Other Tuners:
105TCL2002MB-1 : PAL BG + DK =TUNER_LG_PAL_NEW_TAPC
106TCL2002MB-1F: PAL BG + DK w/FM =PHILIPS_PAL
107TCL2002MI-2 : PAL I = ??
108
109ALPS Tuners:
110 Most are LG_API compatible
111 TSCH6 has ALPS_API (TSCH5 ?)
112 TSBE1 has extra API 05,02,08 Control_byte=0xCB Source:(1)
113
114Lit.
115(1) conexant100029b-PCI-Decoder-ApplicationNote.pdf
diff --git a/Documentation/video4linux/meye.txt b/Documentation/video4linux/meye.txt
new file mode 100644
index 000000000000..2137da97552f
--- /dev/null
+++ b/Documentation/video4linux/meye.txt
@@ -0,0 +1,130 @@
1Vaio Picturebook Motion Eye Camera Driver Readme
2------------------------------------------------
3 Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net>
4 Copyright (C) 2001-2002 Alcôve <www.alcove.com>
5 Copyright (C) 2000 Andrew Tridgell <tridge@samba.org>
6
7This driver enable the use of video4linux compatible applications with the
8Motion Eye camera. This driver requires the "Sony Vaio Programmable I/O
9Control Device" driver (which can be found in the "Character drivers"
10section of the kernel configuration utility) to be compiled and installed
11(using its "camera=1" parameter).
12
13It can do at maximum 30 fps @ 320x240 or 15 fps @ 640x480.
14
15Grabbing is supported in packed YUV colorspace only.
16
17MJPEG hardware grabbing is supported via a private API (see below).
18
19Hardware supported:
20-------------------
21
22This driver supports the 'second' version of the MotionEye camera :)
23
24The first version was connected directly on the video bus of the Neomagic
25video card and is unsupported.
26
27The second one, made by Kawasaki Steel is fully supported by this
28driver (PCI vendor/device is 0x136b/0xff01)
29
30The third one, present in recent (more or less last year) Picturebooks
31(C1M* models), is not supported. The manufacturer has given the specs
32to the developers under a NDA (which allows the develoment of a GPL
33driver however), but things are not moving very fast (see
34http://r-engine.sourceforge.net/) (PCI vendor/device is 0x10cf/0x2011).
35
36There is a forth model connected on the USB bus in TR1* Vaio laptops.
37This camera is not supported at all by the current driver, in fact
38little information if any is available for this camera
39(USB vendor/device is 0x054c/0x0107).
40
41Driver options:
42---------------
43
44Several options can be passed to the meye driver using the standard
45module argument syntax (<param>=<value> when passing the option to the
46module or meye.<param>=<value> on the kernel boot line when meye is
47statically linked into the kernel). Those options are:
48
49 forcev4l1: force use of V4L1 API instead of V4L2
50
51 gbuffers: number of capture buffers, default is 2 (32 max)
52
53 gbufsize: size of each capture buffer, default is 614400
54
55 video_nr: video device to register (0 = /dev/video0, etc)
56
57Module use:
58-----------
59
60In order to automatically load the meye module on use, you can put those lines
61in your /etc/modprobe.conf file:
62
63 alias char-major-81 videodev
64 alias char-major-81-0 meye
65 options meye gbuffers=32
66
67Usage:
68------
69
70 xawtv >= 3.49 (<http://bytesex.org/xawtv/>)
71 for display and uncompressed video capture:
72
73 xawtv -c /dev/video0 -geometry 640x480
74 or
75 xawtv -c /dev/video0 -geometry 320x240
76
77 motioneye (<http://popies.net/meye/>)
78 for getting ppm or jpg snapshots, mjpeg video
79
80Private API:
81------------
82
83 The driver supports frame grabbing with the video4linux API
84 (either v4l1 or v4l2), so all video4linux tools (like xawtv)
85 should work with this driver.
86
87 Besides the video4linux interface, the driver has a private interface
88 for accessing the Motion Eye extended parameters (camera sharpness,
89 agc, video framerate), the shapshot and the MJPEG capture facilities.
90
91 This interface consists of several ioctls (prototypes and structures
92 can be found in include/linux/meye.h):
93
94 MEYEIOC_G_PARAMS
95 MEYEIOC_S_PARAMS
96 Get and set the extended parameters of the motion eye camera.
97 The user should always query the current parameters with
98 MEYEIOC_G_PARAMS, change what he likes and then issue the
99 MEYEIOC_S_PARAMS call (checking for -EINVAL). The extended
100 parameters are described by the meye_params structure.
101
102
103 MEYEIOC_QBUF_CAPT
104 Queue a buffer for capture (the buffers must have been
105 obtained with a VIDIOCGMBUF call and mmap'ed by the
106 application). The argument to MEYEIOC_QBUF_CAPT is the
107 buffer number to queue (or -1 to end capture). The first
108 call to MEYEIOC_QBUF_CAPT starts the streaming capture.
109
110 MEYEIOC_SYNC
111 Takes as an argument the buffer number you want to sync.
112 This ioctl blocks until the buffer is filled and ready
113 for the application to use. It returns the buffer size.
114
115 MEYEIOC_STILLCAPT
116 MEYEIOC_STILLJCAPT
117 Takes a snapshot in an uncompressed or compressed jpeg format.
118 This ioctl blocks until the snapshot is done and returns (for
119 jpeg snapshot) the size of the image. The image data is
120 available from the first mmap'ed buffer.
121
122 Look at the 'motioneye' application code for an actual example.
123
124Bugs / Todo:
125------------
126
127 - the driver could be much cleaned up by removing the v4l1 support.
128 However, this means all v4l1-only applications will stop working.
129
130 - 'motioneye' still uses the meye private v4l1 API extensions.
diff --git a/Documentation/video4linux/radiotrack.txt b/Documentation/video4linux/radiotrack.txt
new file mode 100644
index 000000000000..2b75345f13e3
--- /dev/null
+++ b/Documentation/video4linux/radiotrack.txt
@@ -0,0 +1,147 @@
1NOTES ON RADIOTRACK CARD CONTROL
2by Stephen M. Benoit (benoits@servicepro.com) Dec 14, 1996
3----------------------------------------------------------------------------
4
5Document version 1.0
6
7ACKNOWLEDGMENTS
8----------------
9This document was made based on 'C' code for Linux from Gideon le Grange
10(legrang@active.co.za or legrang@cs.sun.ac.za) in 1994, and elaborations from
11Frans Brinkman (brinkman@esd.nl) in 1996. The results reported here are from
12experiments that the author performed on his own setup, so your mileage may
13vary... I make no guarantees, claims or warranties to the suitability or
14validity of this information. No other documentation on the AIMS
15Lab (http://www.aimslab.com/) RadioTrack card was made available to the
16author. This document is offered in the hopes that it might help users who
17want to use the RadioTrack card in an environment other than MS Windows.
18
19WHY THIS DOCUMENT?
20------------------
21I have a RadioTrack card from back when I ran an MS-Windows platform. After
22converting to Linux, I found Gideon le Grange's command-line software for
23running the card, and found that it was good! Frans Brinkman made a
24comfortable X-windows interface, and added a scanning feature. For hack
25value, I wanted to see if the tuner could be tuned beyond the usual FM radio
26broadcast band, so I could pick up the audio carriers from North American
27broadcast TV channels, situated just below and above the 87.0-109.0 MHz range.
28I did not get much success, but I learned about programming ioports under
29Linux and gained some insights about the hardware design used for the card.
30
31So, without further delay, here are the details.
32
33
34PHYSICAL DESCRIPTION
35--------------------
36The RadioTrack card is an ISA 8-bit FM radio card. The radio frequency (RF)
37input is simply an antenna lead, and the output is a power audio signal
38available through a miniature phone plug. Its RF frequencies of operation are
39more or less limited from 87.0 to 109.0 MHz (the commercial FM broadcast
40band). Although the registers can be programmed to request frequencies beyond
41these limits, experiments did not give promising results. The variable
42frequency oscillator (VFO) that demodulates the intermediate frequency (IF)
43signal probably has a small range of useful frequencies, and wraps around or
44gets clipped beyond the limits mentioned above.
45
46
47CONTROLLING THE CARD WITH IOPORT
48--------------------------------
49The RadioTrack (base) ioport is configurable for 0x30c or 0x20c. Only one
50ioport seems to be involved. The ioport decoding circuitry must be pretty
51simple, as individual ioport bits are directly matched to specific functions
52(or blocks) of the radio card. This way, many functions can be changed in
53parallel with one write to the ioport. The only feedback available through
54the ioports appears to be the "Stereo Detect" bit.
55
56The bits of the ioport are arranged as follows:
57
58 MSb LSb
59+------+------+------+--------+--------+-------+---------+--------+
60| VolA | VolB | ???? | Stereo | Radio | TuneA | TuneB | Tune |
61| (+) | (-) | | Detect | Audio | (bit) | (latch) | Update |
62| | | | Enable | Enable | | | Enable |
63+------+------+------+--------+--------+-------+---------+--------+
64
65
66VolA . VolB [AB......]
67-----------
680 0 : audio mute
690 1 : volume + (some delay required)
701 0 : volume - (some delay required)
711 1 : stay at present volume
72
73Stereo Detect Enable [...S....]
74--------------------
750 : No Detect
761 : Detect
77
78 Results available by reading ioport >60 msec after last port write.
79 0xff ==> no stereo detected, 0xfd ==> stereo detected.
80
81Radio to Audio (path) Enable [....R...]
82----------------------------
830 : Disable path (silence)
841 : Enable path (audio produced)
85
86TuneA . TuneB [.....AB.]
87-------------
880 0 : "zero" bit phase 1
890 1 : "zero" bit phase 2
90
911 0 : "one" bit phase 1
921 1 : "one" bit phase 2
93
94 24-bit code, where bits = (freq*40) + 10486188.
95 The Most Significant 11 bits must be 1010 xxxx 0x0 to be valid.
96 The bits are shifted in LSb first.
97
98Tune Update Enable [.......T]
99------------------
1000 : Tuner held constant
1011 : Tuner updating in progress
102
103
104PROGRAMMING EXAMPLES
105--------------------
106Default: BASE <-- 0xc8 (current volume, no stereo detect,
107 radio enable, tuner adjust disable)
108
109Card Off: BASE <-- 0x00 (audio mute, no stereo detect,
110 radio disable, tuner adjust disable)
111
112Card On: BASE <-- 0x00 (see "Card Off", clears any unfinished business)
113 BASE <-- 0xc8 (see "Default")
114
115Volume Down: BASE <-- 0x48 (volume down, no stereo detect,
116 radio enable, tuner adjust disable)
117 * wait 10 msec *
118 BASE <-- 0xc8 (see "Default")
119
120Volume Up: BASE <-- 0x88 (volume up, no stereo detect,
121 radio enable, tuner adjust disable)
122 * wait 10 msec *
123 BASE <-- 0xc8 (see "Default")
124
125Check Stereo: BASE <-- 0xd8 (current volume, stereo detect,
126 radio enable, tuner adjust disable)
127 * wait 100 msec *
128 x <-- BASE (read ioport)
129 BASE <-- 0xc8 (see "Default")
130
131 x=0xff ==> "not stereo", x=0xfd ==> "stereo detected"
132
133Set Frequency: code = (freq*40) + 10486188
134 foreach of the 24 bits in code,
135 (from Least to Most Significant):
136 to write a "zero" bit,
137 BASE <-- 0x01 (audio mute, no stereo detect, radio
138 disable, "zero" bit phase 1, tuner adjust)
139 BASE <-- 0x03 (audio mute, no stereo detect, radio
140 disable, "zero" bit phase 2, tuner adjust)
141 to write a "one" bit,
142 BASE <-- 0x05 (audio mute, no stereo detect, radio
143 disable, "one" bit phase 1, tuner adjust)
144 BASE <-- 0x07 (audio mute, no stereo detect, radio
145 disable, "one" bit phase 2, tuner adjust)
146
147----------------------------------------------------------------------------
diff --git a/Documentation/video4linux/w9966.txt b/Documentation/video4linux/w9966.txt
new file mode 100644
index 000000000000..e7ac33a7eb06
--- /dev/null
+++ b/Documentation/video4linux/w9966.txt
@@ -0,0 +1,33 @@
1W9966 Camera driver, written by Jakob Kemi (jakob.kemi@telia.com)
2
3After a lot of work in softice & wdasm, reading .pdf-files and tiresome
4trial-and-error work I've finally got everything to work. I needed vision for a
5robotics project so I borrowed this camera from a friend and started hacking.
6Anyway I've converted my original code from the AVR 8bit RISC C/ASM code into
7a working Linux driver.
8
9To get it working simply configure your kernel to support
10parport, ieee1284, video4linux and w9966
11
12If w9966 is statically linked it will always perform aggressive probing for
13the camera. If built as a module you'll have more configuration options.
14
15Options:
16 modprobe w9966.o pardev=parport0(or whatever) parmode=0 (0=auto, 1=ecp, 2=epp)
17voila!
18
19you can also type 'modinfo -p w9966.o' for option usage
20(or checkout w9966.c)
21
22The only thing to keep in mind is that the image format is in Y-U-Y-V format
23where every two pixels take 4 bytes. In SDL (www.libsdl.org) this format
24is called VIDEO_PALETTE_YUV422 (16 bpp).
25
26A minimal test application (with source) is available from:
27 http://hem.fyristorg.com/mogul/w9966.html
28
29The slow framerate is due to missing DMA ECP read support in the
30parport drivers. I might add working EPP support later.
31
32Good luck!
33 /Jakob Kemi
diff --git a/Documentation/video4linux/zr36120.txt b/Documentation/video4linux/zr36120.txt
new file mode 100644
index 000000000000..4af6c52595eb
--- /dev/null
+++ b/Documentation/video4linux/zr36120.txt
@@ -0,0 +1,159 @@
1Driver for Trust Computer Products Framegrabber, version 0.6.1
2------ --- ----- -------- -------- ------------ ------- - - -
3
4- ZORAN ------------------------------------------------------
5 Author: Pauline Middelink <middelin@polyware.nl>
6 Date: 18 September 1999
7Version: 0.6.1
8
9- Description ------------------------------------------------
10
11Video4Linux compatible driver for an unknown brand framegrabber
12(Sold in the Netherlands by TRUST Computer Products) and various
13other zoran zr36120 based framegrabbers.
14
15The card contains a ZR36120 Multimedia PCI Interface and a Philips
16SAA7110 Onechip Frontend videodecoder. There is also an DSP of
17which I have forgotten the number, since i will never get that thing
18to work without specs from the vendor itself.
19
20The SAA711x are capable of processing 6 different video inputs,
21CVBS1..6 and Y1+C1, Y2+C2, Y3+C3. All in 50/60Hz, NTSC, PAL or
22SECAM and delivering a YUV datastream. On my card the input
23'CVBS-0' corresponds to channel CVBS2 and 'S-Video' to Y2+C2.
24
25I have some reports of other cards working with the mentioned
26chip sets. For a list of other working cards please have a look
27at the cards named in the tvcards struct in the beginning of
28zr36120.c
29
30After some testing, I discovered that the carddesigner messed up
31on the I2C interface. The Zoran chip includes 2 lines SDA and SCL
32which (s)he connected reversely. So we have to clock on the SDA
33and r/w data on the SCL pin. Life is fun... Each cardtype now has
34a bit which signifies if you have a card with the same deficiency.
35
36Oh, for the completeness of this story I must mention that my
37card delivers the VSYNC pulse of the SAA chip to GIRQ1, not
38GIRQ0 as some other cards have. This is also incorporated in
39the driver be clearing/setting the 'useirq1' bit in the tvcard
40description.
41
42Another problems of continuous capturing data with a Zoran chip
43is something nasty inside the chip. It effectively halves the
44fps we ought to get... Here is the scenario: capturing frames
45to memory is done in the so-called snapshot mode. In this mode
46the Zoran stops after capturing a frame worth of data and wait
47till the application set GRAB bit to indicate readiness for the
48next frame. After detecting a set bit, the chip neatly waits
49till the start of a frame, captures it and it goes back to off.
50Smart ppl will notice the problem here. Its the waiting on the
51_next_ frame each time we set the GRAB bit... Oh well, 12,5 fps
52is still plenty fast for me.
53-- update 28/7/1999 --
54Don't believe a word I just said... Proof is the output
55of `streamer -t 300 -r 25 -f avi15 -o /dev/null`
56 ++--+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
57 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
58 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
59 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
60 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
61 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
62 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
63 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
64 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
65 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
66 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+- 25/25
67 +-s+-+-+-+-+-+-+-+-+-+-+-+-+-s+-+-+-+-+-+-+-+-+-+-+-
68 syncer: done
69 writer: done
70(note the /dev/null is prudent here, my system is not able to
71 grab /and/ write 25 fps to a file... gifts welcome :) )
72The technical reasoning follows: The zoran completed the last
73frame, the VSYNC goes low, and GRAB is cleared. The interrupt
74routine starts to work since its VSYNC driven, and again
75activates the GRAB bit. A few ms later the VSYNC (re-)rises and
76the zoran starts to work on a new and freshly broadcasted frame....
77
78For pointers I used the specs of both chips. Below are the URLs:
79 http://www.zoran.com/ftp/download/devices/pci/ZR36120/36120data.pdf
80 http://www-us.semiconductor.philips.com/acrobat/datasheets/SAA_7110_A_1.pdf
81
82The documentation has very little on absolute numbers or timings
83needed for the various modes/resolutions, but there are other
84programs you can borrow those from.
85
86------ Install --------------------------------------------
87Read the file called TODO. Note its long list of limitations.
88
89Build a kernel with VIDEO4LINUX enabled. Activate the
90BT848 driver; we need this because we have need for the
91other modules (i2c and videodev) it enables.
92
93To install this software, extract it into a suitable directory.
94Examine the makefile and change anything you don't like. Type "make".
95
96After making the modules check if you have the much needed
97/dev/video devices. If not, execute the following 4 lines:
98 mknod /dev/video c 81 0
99 mknod /dev/video1 c 81 1
100 mknod /dev/video2 c 81 2
101 mknod /dev/video3 c 81 3
102 mknod /dev/video4 c 81 4
103
104After making/checking the devices do:
105 modprobe i2c
106 modprobe videodev
107 modprobe saa7110 (optional)
108 modprobe saa7111 (optional)
109 modprobe tuner (optional)
110 insmod zoran cardtype=<n>
111
112<n> is the cardtype of the card you have. The cardnumber can
113be found in the source of zr36120. Look for tvcards. If your
114card is not there, please try if any other card gives some
115response, and mail me if you got a working tvcard addition.
116
117PS. <TVCard editors behold!)
118 Dont forget to set video_input to the number of inputs
119 you defined in the video_mux part of the tvcard definition.
120 Its a common error to add a channel but not incrementing
121 video_input and getting angry with me/v4l/linux/linus :(
122
123You are now ready to test the framegrabber with your favorite
124video4linux compatible tool
125
126------ Application ----------------------------------------
127
128This device works with all Video4Linux compatible applications,
129given the limitations in the TODO file.
130
131------ API ------------------------------------------------
132
133This uses the V4L interface as of kernel release 2.1.116, and in
134fact has not been tested on any lower version. There are a couple
135of minor differences due to the fact that the amount of data returned
136with each frame varies, and no doubt there are discrepancies due to my
137misunderstanding of the API. I intend to convert this driver to the
138new V4L2 API when it has stabilized more.
139
140------ Current state --------------------------------------
141
142The driver is capable of overlaying a video image in screen, and
143even capable of grabbing frames. It uses the BIGPHYSAREA patch
144to allocate lots of large memory blocks when tis patch is
145found in the kernel, but it doesn't need it.
146The consequence is that, when loading the driver as a module,
147the module may tell you it's out of memory, but 'free' says
148otherwise. The reason is simple; the modules wants its memory
149contiguous, not fragmented, and after a long uptime there
150probably isn't a fragment of memory large enough...
151
152The driver uses a double buffering scheme, which should really
153be an n-way buffer, depending on the size of allocated framebuffer
154and the requested grab-size/format.
155This current version also fixes a dead-lock situation during irq
156time, which really, really froze my system... :)
157
158Good luck.
159 Pauline