aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/video4linux
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/video4linux')
-rw-r--r--Documentation/video4linux/CARDLIST.cx882
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx1
-rw-r--r--Documentation/video4linux/CARDLIST.saa71349
-rw-r--r--Documentation/video4linux/CARDLIST.tuner6
-rw-r--r--Documentation/video4linux/CQcam.txt182
-rw-r--r--Documentation/video4linux/README.cpia4
-rw-r--r--Documentation/video4linux/README.cpia2130
-rw-r--r--Documentation/video4linux/Zoran108
-rw-r--r--Documentation/video4linux/bttv/ICs4
-rw-r--r--Documentation/video4linux/bttv/PROBLEMS16
-rw-r--r--Documentation/video4linux/bttv/README.quirks4
-rw-r--r--Documentation/video4linux/bttv/THANKS4
-rw-r--r--Documentation/video4linux/cpia2_overview.txt38
-rw-r--r--Documentation/video4linux/radiotrack.txt16
-rw-r--r--Documentation/video4linux/w9966.txt2
-rw-r--r--Documentation/video4linux/zr36120.txt4
16 files changed, 356 insertions, 174 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 8bea3fbd0548..3b39a91b24bd 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -43,3 +43,5 @@
43 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025] 43 42 -> digitalnow DNTV Live! DVB-T Pro [1822:0025]
44 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1] 44 43 -> KWorld/VStream XPert DVB-T with cx22702 [17de:08a1]
45 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] 45 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54]
46 45 -> KWorld HardwareMpegTV XPert [17de:0840]
47 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44]
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index a0c7cad20971..a3026689bbe6 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -8,3 +8,4 @@
8 7 -> Leadtek Winfast USB II (em2800) 8 7 -> Leadtek Winfast USB II (em2800)
9 8 -> Kworld USB2800 (em2800) 9 8 -> Kworld USB2800 (em2800)
10 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] 10 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207]
11 12 -> Kworld PVR TV 2800 RF (em2820/em2840)
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index da4fb890165f..8c7195455963 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -83,3 +83,12 @@
83 82 -> MSI TV@Anywhere plus [1462:6231] 83 82 -> MSI TV@Anywhere plus [1462:6231]
84 83 -> Terratec Cinergy 250 PCI TV [153b:1160] 84 83 -> Terratec Cinergy 250 PCI TV [153b:1160]
85 84 -> LifeView FlyDVB Trio [5168:0319] 85 84 -> LifeView FlyDVB Trio [5168:0319]
86 85 -> AverTV DVB-T 777 [1461:2c05]
87 86 -> LifeView FlyDVB-T [5168:0301]
88 87 -> ADS Instant TV Duo Cardbus PTV331 [0331:1421]
89 88 -> Tevion/KWorld DVB-T 220RF [17de:7201]
90 89 -> ELSA EX-VISION 700TV [1048:226c]
91 90 -> Kworld ATSC110 [17de:7350]
92 91 -> AVerMedia A169 B [1461:7360]
93 92 -> AVerMedia A169 B1 [1461:6360]
94 93 -> Medion 7134 Bridge #2 [16be:0005]
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
index f6d0cf7b7922..1bcdac67dd8c 100644
--- a/Documentation/video4linux/CARDLIST.tuner
+++ b/Documentation/video4linux/CARDLIST.tuner
@@ -64,8 +64,10 @@ tuner=62 - Philips TEA5767HN FM Radio
64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner 64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
65tuner=64 - LG TDVS-H062F/TUA6034 65tuner=64 - LG TDVS-H062F/TUA6034
66tuner=65 - Ymec TVF66T5-B/DFF 66tuner=65 - Ymec TVF66T5-B/DFF
67tuner=66 - LG NTSC (TALN mini series) 67tuner=66 - LG TALN series
68tuner=67 - Philips TD1316 Hybrid Tuner 68tuner=67 - Philips TD1316 Hybrid Tuner
69tuner=68 - Philips TUV1236D ATSC/NTSC dual in 69tuner=68 - Philips TUV1236D ATSC/NTSC dual in
70tuner=69 - Tena TNF 5335 MF 70tuner=69 - Tena TNF 5335 and similar models
71tuner=70 - Samsung TCPN 2121P30A 71tuner=70 - Samsung TCPN 2121P30A
72tuner=71 - Xceive xc3028
73tuner=72 - Thomson FE6600
diff --git a/Documentation/video4linux/CQcam.txt b/Documentation/video4linux/CQcam.txt
index e415e3604539..464e4cec94cb 100644
--- a/Documentation/video4linux/CQcam.txt
+++ b/Documentation/video4linux/CQcam.txt
@@ -1,7 +1,7 @@
1c-qcam - Connectix Color QuickCam video4linux kernel driver 1c-qcam - Connectix Color QuickCam video4linux kernel driver
2 2
3Copyright (C) 1999 Dave Forrest <drf5n@virginia.edu> 3Copyright (C) 1999 Dave Forrest <drf5n@virginia.edu>
4 released under GNU GPL. 4 released under GNU GPL.
5 5
61999-12-08 Dave Forrest, written with kernel version 2.2.12 in mind 61999-12-08 Dave Forrest, written with kernel version 2.2.12 in mind
7 7
@@ -45,21 +45,21 @@ configuration. The appropriate flags are:
45 CONFIG_PNP_PARPORT M for autoprobe.o IEEE1284 readback module 45 CONFIG_PNP_PARPORT M for autoprobe.o IEEE1284 readback module
46 CONFIG_PRINTER_READBACK M for parport_probe.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 47 CONFIG_VIDEO_DEV M for videodev.o video4linux module
48 CONFIG_VIDEO_CQCAM M for c-qcam.o Color Quickcam module 48 CONFIG_VIDEO_CQCAM M for c-qcam.o Color Quickcam module
49 49
50 With these flags, the kernel should compile and install the modules. 50 With these flags, the kernel should compile and install the modules.
51To record and monitor the compilation, I use: 51To record and monitor the compilation, I use:
52 52
53 (make zlilo ; \ 53 (make zlilo ; \
54 make modules; \ 54 make modules; \
55 make modules_install ; 55 make modules_install ;
56 depmod -a ) &>log & 56 depmod -a ) &>log &
57 less log # then a capital 'F' to watch the progress 57 less log # then a capital 'F' to watch the progress
58 58
59But that is my personal preference. 59But that is my personal preference.
60 60
612.2 Configuration 612.2 Configuration
62 62
63 The configuration requires module configuration and device 63 The configuration requires module configuration and device
64configuration. I like kmod or kerneld process with the 64configuration. I like kmod or kerneld process with the
65/etc/modprobe.conf file so the modules can automatically load/unload as 65/etc/modprobe.conf file so the modules can automatically load/unload as
@@ -68,7 +68,7 @@ using MAKEDEV, or need to be created. The following sections detail
68these procedures. 68these procedures.
69 69
70 70
712.1 Module Configuration 712.1 Module Configuration
72 72
73 Using modules requires a bit of work to install and pass the 73 Using modules requires a bit of work to install and pass the
74parameters. Understand that entries in /etc/modprobe.conf of: 74parameters. Understand that entries in /etc/modprobe.conf of:
@@ -128,9 +128,9 @@ system (CONFIG_PROC_FS), the parallel printer support
128(CONFIG_PRINTER), the IEEE 1284 system,(CONFIG_PRINTER_READBACK), you 128(CONFIG_PRINTER), the IEEE 1284 system,(CONFIG_PRINTER_READBACK), you
129should be able to read some identification from your quickcam with 129should be able to read some identification from your quickcam with
130 130
131 modprobe -v parport 131 modprobe -v parport
132 modprobe -v parport_probe 132 modprobe -v parport_probe
133 cat /proc/parport/PORTNUMBER/autoprobe 133 cat /proc/parport/PORTNUMBER/autoprobe
134Returns: 134Returns:
135 CLASS:MEDIA; 135 CLASS:MEDIA;
136 MODEL:Color QuickCam 2.0; 136 MODEL:Color QuickCam 2.0;
@@ -140,7 +140,7 @@ Returns:
140and well. A common problem is that the current driver does not 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, 141reliably detect a c-qcam, even though one is attached. In this case,
142 142
143 modprobe -v c-qcam 143 modprobe -v c-qcam
144or 144or
145 insmod -v c-qcam 145 insmod -v c-qcam
146 146
@@ -152,16 +152,16 @@ video4linux mailing list and archive for more current information.
1523.1 Checklist: 1523.1 Checklist:
153 153
154 Can you get an image? 154 Can you get an image?
155 v4lgrab >qcam.ppm ; wc qcam.ppm ; xv qcam.ppm 155 v4lgrab >qcam.ppm ; wc qcam.ppm ; xv qcam.ppm
156 156
157 Is a working c-qcam connected to the port? 157 Is a working c-qcam connected to the port?
158 grep ^ /proc/parport/?/autoprobe 158 grep ^ /proc/parport/?/autoprobe
159 159
160 Do the /dev/video* files exist? 160 Do the /dev/video* files exist?
161 ls -lad /dev/video 161 ls -lad /dev/video
162 162
163 Is the c-qcam module loaded? 163 Is the c-qcam module loaded?
164 modprobe -v c-qcam ; lsmod 164 modprobe -v c-qcam ; lsmod
165 165
166 Does the camera work with alternate programs? cqcam, etc? 166 Does the camera work with alternate programs? cqcam, etc?
167 167
@@ -174,7 +174,7 @@ video4linux mailing list and archive for more current information.
174isn't, you might try patching the c-qcam module to add a parport=xxx 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: 175option as in the bw-qcam module so you can specify the parallel port:
176 176
177 insmod -v c-qcam parport=0 177 insmod -v c-qcam parport=0
178 178
179And bypass the detection code, see ../../drivers/char/c-qcam.c and 179And bypass the detection code, see ../../drivers/char/c-qcam.c and
180look for the 'qc_detect' code and call. 180look for the 'qc_detect' code and call.
@@ -183,12 +183,12 @@ look for the 'qc_detect' code and call.
183this work is documented at the video4linux2 site listed below. 183this work is documented at the video4linux2 site listed below.
184 184
185 185
1869.0 --- A sample program using v4lgrabber, 1869.0 --- A sample program using v4lgrabber,
187 187
188This program is a simple image grabber that will copy a frame from the 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 189first video device, /dev/video0 to standard output in portable pixmap
190format (.ppm) Using this like: 'v4lgrab | convert - c-qcam.jpg' 190format (.ppm) Using this like: 'v4lgrab | convert - c-qcam.jpg'
191produced this picture of me at 191produced this picture of me at
192 http://mug.sys.virginia.edu/~drf5n/extras/c-qcam.jpg 192 http://mug.sys.virginia.edu/~drf5n/extras/c-qcam.jpg
193 193
194-------------------- 8< ---------------- 8< ----------------------------- 194-------------------- 8< ---------------- 8< -----------------------------
@@ -202,8 +202,8 @@ produced this picture of me at
202 * Use as: 202 * Use as:
203 * v4lgrab >image.ppm 203 * v4lgrab >image.ppm
204 * 204 *
205 * Copyright (C) 1998-05-03, Phil Blundell <philb@gnu.org> 205 * Copyright (C) 1998-05-03, Phil Blundell <philb@gnu.org>
206 * Copied from http://www.tazenda.demon.co.uk/phil/vgrabber.c 206 * Copied from http://www.tazenda.demon.co.uk/phil/vgrabber.c
207 * with minor modifications (Dave Forrest, drf5n@virginia.edu). 207 * with minor modifications (Dave Forrest, drf5n@virginia.edu).
208 * 208 *
209 */ 209 */
@@ -225,55 +225,55 @@ produced this picture of me at
225 225
226#define READ_VIDEO_PIXEL(buf, format, depth, r, g, b) \ 226#define READ_VIDEO_PIXEL(buf, format, depth, r, g, b) \
227{ \ 227{ \
228 switch (format) \ 228 switch (format) \
229 { \ 229 { \
230 case VIDEO_PALETTE_GREY: \ 230 case VIDEO_PALETTE_GREY: \
231 switch (depth) \ 231 switch (depth) \
232 { \ 232 { \
233 case 4: \ 233 case 4: \
234 case 6: \ 234 case 6: \
235 case 8: \ 235 case 8: \
236 (r) = (g) = (b) = (*buf++ << 8);\ 236 (r) = (g) = (b) = (*buf++ << 8);\
237 break; \ 237 break; \
238 \ 238 \
239 case 16: \ 239 case 16: \
240 (r) = (g) = (b) = \ 240 (r) = (g) = (b) = \
241 *((unsigned short *) buf); \ 241 *((unsigned short *) buf); \
242 buf += 2; \ 242 buf += 2; \
243 break; \ 243 break; \
244 } \ 244 } \
245 break; \ 245 break; \
246 \ 246 \
247 \ 247 \
248 case VIDEO_PALETTE_RGB565: \ 248 case VIDEO_PALETTE_RGB565: \
249 { \ 249 { \
250 unsigned short tmp = *(unsigned short *)buf; \ 250 unsigned short tmp = *(unsigned short *)buf; \
251 (r) = tmp&0xF800; \ 251 (r) = tmp&0xF800; \
252 (g) = (tmp<<5)&0xFC00; \ 252 (g) = (tmp<<5)&0xFC00; \
253 (b) = (tmp<<11)&0xF800; \ 253 (b) = (tmp<<11)&0xF800; \
254 buf += 2; \ 254 buf += 2; \
255 } \ 255 } \
256 break; \ 256 break; \
257 \ 257 \
258 case VIDEO_PALETTE_RGB555: \ 258 case VIDEO_PALETTE_RGB555: \
259 (r) = (buf[0]&0xF8)<<8; \ 259 (r) = (buf[0]&0xF8)<<8; \
260 (g) = ((buf[0] << 5 | buf[1] >> 3)&0xF8)<<8; \ 260 (g) = ((buf[0] << 5 | buf[1] >> 3)&0xF8)<<8; \
261 (b) = ((buf[1] << 2 ) & 0xF8)<<8; \ 261 (b) = ((buf[1] << 2 ) & 0xF8)<<8; \
262 buf += 2; \ 262 buf += 2; \
263 break; \ 263 break; \
264 \ 264 \
265 case VIDEO_PALETTE_RGB24: \ 265 case VIDEO_PALETTE_RGB24: \
266 (r) = buf[0] << 8; (g) = buf[1] << 8; \ 266 (r) = buf[0] << 8; (g) = buf[1] << 8; \
267 (b) = buf[2] << 8; \ 267 (b) = buf[2] << 8; \
268 buf += 3; \ 268 buf += 3; \
269 break; \ 269 break; \
270 \ 270 \
271 default: \ 271 default: \
272 fprintf(stderr, \ 272 fprintf(stderr, \
273 "Format %d not yet supported\n", \ 273 "Format %d not yet supported\n", \
274 format); \ 274 format); \
275 } \ 275 } \
276} 276}
277 277
278int get_brightness_adj(unsigned char *image, long size, int *brightness) { 278int get_brightness_adj(unsigned char *image, long size, int *brightness) {
279 long i, tot = 0; 279 long i, tot = 0;
@@ -324,40 +324,40 @@ int main(int argc, char ** argv)
324 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) { 324 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
325 vpic.depth=6; 325 vpic.depth=6;
326 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) { 326 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
327 vpic.depth=4; 327 vpic.depth=4;
328 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) { 328 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
329 fprintf(stderr, "Unable to find a supported capture format.\n"); 329 fprintf(stderr, "Unable to find a supported capture format.\n");
330 close(fd); 330 close(fd);
331 exit(1); 331 exit(1);
332 } 332 }
333 } 333 }
334 } 334 }
335 } else { 335 } else {
336 vpic.depth=24; 336 vpic.depth=24;
337 vpic.palette=VIDEO_PALETTE_RGB24; 337 vpic.palette=VIDEO_PALETTE_RGB24;
338 338
339 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) { 339 if(ioctl(fd, VIDIOCSPICT, &vpic) < 0) {
340 vpic.palette=VIDEO_PALETTE_RGB565; 340 vpic.palette=VIDEO_PALETTE_RGB565;
341 vpic.depth=16; 341 vpic.depth=16;
342 342
343 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) { 343 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
344 vpic.palette=VIDEO_PALETTE_RGB555; 344 vpic.palette=VIDEO_PALETTE_RGB555;
345 vpic.depth=15; 345 vpic.depth=15;
346 346
347 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) { 347 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
348 fprintf(stderr, "Unable to find a supported capture format.\n"); 348 fprintf(stderr, "Unable to find a supported capture format.\n");
349 return -1; 349 return -1;
350 } 350 }
351 } 351 }
352 } 352 }
353 } 353 }
354 354
355 buffer = malloc(win.width * win.height * bpp); 355 buffer = malloc(win.width * win.height * bpp);
356 if (!buffer) { 356 if (!buffer) {
357 fprintf(stderr, "Out of memory.\n"); 357 fprintf(stderr, "Out of memory.\n");
358 exit(1); 358 exit(1);
359 } 359 }
360 360
361 do { 361 do {
362 int newbright; 362 int newbright;
363 read(fd, buffer, win.width * win.height * bpp); 363 read(fd, buffer, win.width * win.height * bpp);
@@ -365,8 +365,8 @@ int main(int argc, char ** argv)
365 if (f) { 365 if (f) {
366 vpic.brightness += (newbright << 8); 366 vpic.brightness += (newbright << 8);
367 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) { 367 if(ioctl(fd, VIDIOCSPICT, &vpic)==-1) {
368 perror("VIDIOSPICT"); 368 perror("VIDIOSPICT");
369 break; 369 break;
370 } 370 }
371 } 371 }
372 } while (f); 372 } while (f);
@@ -381,7 +381,7 @@ int main(int argc, char ** argv)
381 fputc(g>>8, stdout); 381 fputc(g>>8, stdout);
382 fputc(b>>8, stdout); 382 fputc(b>>8, stdout);
383 } 383 }
384 384
385 close(fd); 385 close(fd);
386 return 0; 386 return 0;
387} 387}
diff --git a/Documentation/video4linux/README.cpia b/Documentation/video4linux/README.cpia
index c95e7bbc0fdf..19cd3bf24981 100644
--- a/Documentation/video4linux/README.cpia
+++ b/Documentation/video4linux/README.cpia
@@ -87,7 +87,7 @@ hardware configuration of the parport. You can give the boot-parameter
87at the LILO-prompt or specify it in lilo.conf. I use the following 87at the LILO-prompt or specify it in lilo.conf. I use the following
88append-line in lilo.conf: 88append-line in lilo.conf:
89 89
90 append="parport=0x378,7,3" 90 append="parport=0x378,7,3"
91 91
92See Documentation/parport.txt for more information about the 92See Documentation/parport.txt for more information about the
93configuration of the parport and the values given above. Do not simply 93configuration of the parport and the values given above. Do not simply
@@ -175,7 +175,7 @@ THANKS (in no particular order):
175- Manuel J. Petit de Gabriel <mpetit@dit.upm.es> for providing help 175- Manuel J. Petit de Gabriel <mpetit@dit.upm.es> for providing help
176 with Isabel (http://isabel.dit.upm.es/) 176 with Isabel (http://isabel.dit.upm.es/)
177- Bas Huisman <bhuism@cs.utwente.nl> for writing the initial parport code 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 178- Jarl Totland <Jarl.Totland@bdc.no> for setting up the mailing list
179 and maintaining the web-server[3] 179 and maintaining the web-server[3]
180- Chris Whiteford <Chris@informinteractive.com> for fixes related to the 180- Chris Whiteford <Chris@informinteractive.com> for fixes related to the
181 1.02 firmware 181 1.02 firmware
diff --git a/Documentation/video4linux/README.cpia2 b/Documentation/video4linux/README.cpia2
new file mode 100644
index 000000000000..ce8213d28b67
--- /dev/null
+++ b/Documentation/video4linux/README.cpia2
@@ -0,0 +1,130 @@
1$Id: README,v 1.7 2005/08/29 23:39:57 sbertin Exp $
2
31. Introduction
4
5 This is a driver for STMicroelectronics's CPiA2 (second generation
6Colour Processor Interface ASIC) based cameras. This camera outputs an MJPEG
7stream at up to vga size. It implements the Video4Linux interface as much as
8possible. Since the V4L interface does not support compressed formats, only
9an mjpeg enabled application can be used with the camera. We have modified the
10gqcam application to view this stream.
11
12 The driver is implemented as two kernel modules. The cpia2 module
13contains the camera functions and the V4L interface. The cpia2_usb module
14contains usb specific functions. The main reason for this was the size of the
15module was getting out of hand, so I separted them. It is not likely that
16there will be a parallel port version.
17
18FEATURES:
19 - Supports cameras with the Vision stv6410 (CIF) and stv6500 (VGA) cmos
20 sensors. I only have the vga sensor, so can't test the other.
21 - Image formats: VGA, QVGA, CIF, QCIF, and a number of sizes in between.
22 VGA and QVGA are the native image sizes for the VGA camera. CIF is done
23 in the coprocessor by scaling QVGA. All other sizes are done by clipping.
24 - Palette: YCrCb, compressed with MJPEG.
25 - Some compression parameters are settable.
26 - Sensor framerate is adjustable (up to 30 fps CIF, 15 fps VGA).
27 - Adjust brightness, color, contrast while streaming.
28 - Flicker control settable for 50 or 60 Hz mains frequency.
29
302. Making and installing the stv672 driver modules:
31
32 Requirements:
33 -------------
34 This should work with 2.4 (2.4.23 and later) and 2.6 kernels, but has
35only been tested on 2.6. Video4Linux must be either compiled into the kernel or
36available as a module. Video4Linux2 is automatically detected and made
37available at compile time.
38
39 Compiling:
40 ----------
41 As root, do a make install. This will compile and install the modules
42into the media/video directory in the module tree. For 2.4 kernels, use
43Makefile_2.4 (aka do make -f Makefile_2.4 install).
44
45 Setup:
46 ------
47 Use 'modprobe cpia2' to load and 'modprobe -r cpia2' to unload. This
48may be done automatically by your distribution.
49
503. Driver options
51
52 Option Description
53 ------ -----------
54 video_nr video device to register (0=/dev/video0, etc)
55 range -1 to 64. default is -1 (first available)
56 If you have more than 1 camera, this MUST be -1.
57 buffer_size Size for each frame buffer in bytes (default 68k)
58 num_buffers Number of frame buffers (1-32, default 3)
59 alternate USB Alternate (2-7, default 7)
60 flicker_freq Frequency for flicker reduction(50 or 60, default 60)
61 flicker_mode 0 to disable, or 1 to enable flicker reduction.
62 (default 0). This is only effective if the camera
63 uses a stv0672 coprocessor.
64
65 Setting the options:
66 --------------------
67 If you are using modules, edit /etc/modules.conf and add an options
68line like this:
69 options cpia2 num_buffers=3 buffer_size=65535
70
71 If the driver is compiled into the kernel, at boot time specify them
72like this:
73 cpia2.num_buffers=3 cpia2.buffer_size=65535
74
75 What buffer size should I use?
76 ------------------------------
77 The maximum image size depends on the alternate you choose, and the
78frame rate achieved by the camera. If the compression engine is able to
79keep up with the frame rate, the maximum image size is given by the table
80below.
81 The compression engine starts out at maximum compression, and will
82increase image quality until it is close to the size in the table. As long
83as the compression engine can keep up with the frame rate, after a short time
84the images will all be about the size in the table, regardless of resolution.
85 At low alternate settings, the compression engine may not be able to
86compress the image enough and will reduce the frame rate by producing larger
87images.
88 The default of 68k should be good for most users. This will handle
89any alternate at frame rates down to 15fps. For lower frame rates, it may
90be necessary to increase the buffer size to avoid having frames dropped due
91to insufficient space.
92
93 Image size(bytes)
94 Alternate bytes/ms 15fps 30fps
95 2 128 8533 4267
96 3 384 25600 12800
97 4 640 42667 21333
98 5 768 51200 25600
99 6 896 59733 29867
100 7 1023 68200 34100
101
102 How many buffers should I use?
103 ------------------------------
104 For normal streaming, 3 should give the best results. With only 2,
105it is possible for the camera to finish sending one image just after a
106program has started reading the other. If this happens, the driver must drop
107a frame. The exception to this is if you have a heavily loaded machine. In
108this case use 2 buffers. You are probably not reading at the full frame rate.
109If the camera can send multiple images before a read finishes, it could
110overwrite the third buffer before the read finishes, leading to a corrupt
111image. Single and double buffering have extra checks to avoid overwriting.
112
1134. Using the camera
114
115 We are providing a modified gqcam application to view the output. In
116order to avoid confusion, here it is called mview. There is also the qx5view
117program which can also control the lights on the qx5 microscope. MJPEG Tools
118(http://mjpeg.sourceforge.net) can also be used to record from the camera.
119
1205. Notes to developers:
121
122 - This is a driver version stripped of the 2.4 back compatibility
123 and old MJPEG ioctl API. See cpia2.sf.net for 2.4 support.
124
1256. Thanks:
126
127 - Peter Pregler <Peter_Pregler@email.com>,
128 Scott J. Bertin <scottbertin@yahoo.com>, and
129 Jarl Totland <Jarl.Totland@bdc.no> for the original cpia driver, which
130 this one was modelled from.
diff --git a/Documentation/video4linux/Zoran b/Documentation/video4linux/Zoran
index 52c94bd7dca1..be9f21b84555 100644
--- a/Documentation/video4linux/Zoran
+++ b/Documentation/video4linux/Zoran
@@ -28,7 +28,7 @@ Iomega Buz:
28* Philips saa7111 TV decoder 28* Philips saa7111 TV decoder
29* Philips saa7185 TV encoder 29* Philips saa7185 TV encoder
30Drivers to use: videodev, i2c-core, i2c-algo-bit, 30Drivers to use: videodev, i2c-core, i2c-algo-bit,
31 videocodec, saa7111, saa7185, zr36060, zr36067 31 videocodec, saa7111, saa7185, zr36060, zr36067
32Inputs/outputs: Composite and S-video 32Inputs/outputs: Composite and S-video
33Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 33Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
34Card number: 7 34Card number: 7
@@ -39,7 +39,7 @@ Linux Media Labs LML33:
39* Brooktree bt819 TV decoder 39* Brooktree bt819 TV decoder
40* Brooktree bt856 TV encoder 40* Brooktree bt856 TV encoder
41Drivers to use: videodev, i2c-core, i2c-algo-bit, 41Drivers to use: videodev, i2c-core, i2c-algo-bit,
42 videocodec, bt819, bt856, zr36060, zr36067 42 videocodec, bt819, bt856, zr36060, zr36067
43Inputs/outputs: Composite and S-video 43Inputs/outputs: Composite and S-video
44Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 44Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
45Card number: 5 45Card number: 5
@@ -50,7 +50,7 @@ Linux Media Labs LML33R10:
50* Philips saa7114 TV decoder 50* Philips saa7114 TV decoder
51* Analog Devices adv7170 TV encoder 51* Analog Devices adv7170 TV encoder
52Drivers to use: videodev, i2c-core, i2c-algo-bit, 52Drivers to use: videodev, i2c-core, i2c-algo-bit,
53 videocodec, saa7114, adv7170, zr36060, zr36067 53 videocodec, saa7114, adv7170, zr36060, zr36067
54Inputs/outputs: Composite and S-video 54Inputs/outputs: Composite and S-video
55Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 55Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
56Card number: 6 56Card number: 6
@@ -61,7 +61,7 @@ Pinnacle/Miro DC10(new):
61* Philips saa7110a TV decoder 61* Philips saa7110a TV decoder
62* Analog Devices adv7176 TV encoder 62* Analog Devices adv7176 TV encoder
63Drivers to use: videodev, i2c-core, i2c-algo-bit, 63Drivers to use: videodev, i2c-core, i2c-algo-bit,
64 videocodec, saa7110, adv7175, zr36060, zr36067 64 videocodec, saa7110, adv7175, zr36060, zr36067
65Inputs/outputs: Composite, S-video and Internal 65Inputs/outputs: Composite, S-video and Internal
66Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 66Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
67Card number: 1 67Card number: 1
@@ -84,7 +84,7 @@ Pinnacle/Miro DC10(old): *
84* Micronas vpx3220a TV decoder 84* Micronas vpx3220a TV decoder
85* mse3000 TV encoder or Analog Devices adv7176 TV encoder * 85* mse3000 TV encoder or Analog Devices adv7176 TV encoder *
86Drivers to use: videodev, i2c-core, i2c-algo-bit, 86Drivers to use: videodev, i2c-core, i2c-algo-bit,
87 videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067 87 videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067
88Inputs/outputs: Composite, S-video and Internal 88Inputs/outputs: Composite, S-video and Internal
89Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 89Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
90Card number: 0 90Card number: 0
@@ -96,7 +96,7 @@ Pinnacle/Miro DC30: *
96* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder 96* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
97* Analog Devices adv7176 TV encoder 97* Analog Devices adv7176 TV encoder
98Drivers to use: videodev, i2c-core, i2c-algo-bit, 98Drivers to use: videodev, i2c-core, i2c-algo-bit,
99 videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067 99 videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067
100Inputs/outputs: Composite, S-video and Internal 100Inputs/outputs: Composite, S-video and Internal
101Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 101Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
102Card number: 3 102Card number: 3
@@ -123,11 +123,11 @@ Note: use encoder=X or decoder=X for non-default i2c chips (see i2c-id.h)
123 123
124The best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that 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. 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 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 127combination is supported by the driver. There are currently 11 different
128tv broadcast formats all aver the world. 128tv broadcast formats all aver the world.
129 129
130The CCIR defines parameters needed for broadcasting the signal. 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,... 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 !!! 132The CCIR says not much about about the colorsystem used !!!
133And talking about a colorsystem says not to much about how it is broadcast. 133And talking about a colorsystem says not to much about how it is broadcast.
@@ -136,18 +136,18 @@ The CCIR standards A,E,F are not used any more.
136 136
137When you speak about NTSC, you usually mean the standard: CCIR - M using 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 138the NTSC colorsystem which is used in the USA, Japan, Mexico, Canada
139and a few others. 139and a few others.
140 140
141When you talk about PAL, you usually mean: CCIR - B/G using the PAL 141When you talk about PAL, you usually mean: CCIR - B/G using the PAL
142colorsystem which is used in many Countries. 142colorsystem which is used in many Countries.
143 143
144When you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem 144When you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem
145which is used in France, and a few others. 145which is used in France, and a few others.
146 146
147There the other version of SECAM, CCIR - D/K is used in Bulgaria, China, 147There the other version of SECAM, CCIR - D/K is used in Bulgaria, China,
148Slovakai, Hungary, Korea (Rep.), Poland, Rumania and a others. 148Slovakai, Hungary, Korea (Rep.), Poland, Rumania and a others.
149 149
150The CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in 150The CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in
151Egypt, Libya, Sri Lanka, Syrain Arab. Rep. 151Egypt, Libya, Sri Lanka, Syrain Arab. Rep.
152 152
153The CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong, 153The CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong,
@@ -158,30 +158,30 @@ and is used in Argentinia, Uruguay, an a few others
158 158
159We do not talk about how the audio is broadcast ! 159We do not talk about how the audio is broadcast !
160 160
161A rather good sites about the TV standards are: 161A rather good sites about the TV standards are:
162http://www.sony.jp/ServiceArea/Voltage_map/ 162http://www.sony.jp/ServiceArea/Voltage_map/
163http://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/ 163http://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/
164and http://www.cabl.com/restaurant/channel.html 164and http://www.cabl.com/restaurant/channel.html
165 165
166Other weird things around: NTSC 4.43 is a modificated NTSC, which is mainly 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 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 168as NTSC 4.43 . The Datasheets also talk about NTSC 44, It seems as if it would
169be the same as NTSC 4.43. 169be the same as NTSC 4.43.
170NTSC Combs seems to be a decoder mode where the decoder uses a comb filter 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. 171to split coma and luma instead of a Delay line.
172 172
173But I did not defiantly find out what NTSC Comb is. 173But I did not defiantly find out what NTSC Comb is.
174 174
175Philips saa7111 TV decoder 175Philips saa7111 TV decoder
176was introduced in 1997, is used in the BUZ and 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 177can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM
178 178
179Philips saa7110a TV decoder 179Philips saa7110a TV decoder
180was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and 180was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and
181can handle: PAL B/G, NTSC M and SECAM 181can handle: PAL B/G, NTSC M and SECAM
182 182
183Philips saa7114 TV decoder 183Philips saa7114 TV decoder
184was introduced in 2000, is used in the LML33R10 and 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 185can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM
186 186
187Brooktree bt819 TV decoder 187Brooktree bt819 TV decoder
@@ -206,7 +206,7 @@ was introduced in 1996, is used in the BUZ
206can generate: PAL B/G, NTSC M 206can generate: PAL B/G, NTSC M
207 207
208Brooktree bt856 TV Encoder 208Brooktree bt856 TV Encoder
209was introduced in 1994, is used in the LML33 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) 210can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina)
211 211
212Analog Devices adv7170 TV Encoder 212Analog Devices adv7170 TV Encoder
@@ -221,9 +221,9 @@ ITT mse3000 TV encoder
221was introduced in 1991, is used in the DC10 old 221was introduced in 1991, is used in the DC10 old
222can generate: PAL , NTSC , SECAM 222can generate: PAL , NTSC , SECAM
223 223
224The adv717x, should be able to produce PAL N. But you find nothing PAL N 224The adv717x, should be able to produce PAL N. But you find nothing PAL N
225specific in the registers. Seem that you have to reuse a other standard 225specific in 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. 226to generate PAL N, maybe it would work if you use the PAL M settings.
227 227
228========================== 228==========================
229 229
@@ -261,7 +261,7 @@ Here's my experience of using LML33 and Buz on various motherboards:
261 261
262VIA MVP3 262VIA MVP3
263 Forget it. Pointless. Doesn't work. 263 Forget it. Pointless. Doesn't work.
264Intel 430FX (Pentium 200) 264Intel 430FX (Pentium 200)
265 LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie) 265 LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie)
266Intel 440BX (early stepping) 266Intel 440BX (early stepping)
267 LML33 tolerable. Buz starting to get annoying (6-10 frames/hour) 267 LML33 tolerable. Buz starting to get annoying (6-10 frames/hour)
@@ -438,52 +438,52 @@ importance of buffer sizes:
438> -q 25 -b 128 : 24.655.992 438> -q 25 -b 128 : 24.655.992
439> -q 25 -b 256 : 25.859.820 439> -q 25 -b 256 : 25.859.820
440 440
441I woke up, and can't go to sleep again. I'll kill some time explaining why 441I woke up, and can't go to sleep again. I'll kill some time explaining why
442this doesn't look strange to me. 442this doesn't look strange to me.
443 443
444Let's do some math using a width of 704 pixels. I'm not sure whether the Buz 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. 445actually use that number or not, but that's not too important right now.
446 446
447704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block; 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; 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 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 450output becomes 512 bits per block. Actually 510, but 512 is simpler to use
451for calculations. 451for calculations.
452 452
453Let's say that we specify d1q50. We thus want 256 bits per block; times 3168 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 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 455here, so we don't need to do any fancy corrections for bits-per-pixel or such
456things. 101376 bytes per field. 456things. 101376 bytes per field.
457 457
458d1 video contains two fields per frame. Those sum up to 202752 bytes per 458d1 video contains two fields per frame. Those sum up to 202752 bytes per
459frame, and one of those frames goes into each buffer. 459frame, and one of those frames goes into each buffer.
460 460
461But wait a second! -b128 gives 128kB buffers! It's not possible to cram 461But wait a second! -b128 gives 128kB buffers! It's not possible to cram
462202752 bytes of JPEG data into 128kB! 462202752 bytes of JPEG data into 128kB!
463 463
464This is what the driver notice and automatically compensate for in your 464This is what the driver notice and automatically compensate for in your
465examples. Let's do some math using this information: 465examples. Let's do some math using this information:
466 466
467128kB is 131072 bytes. In this buffer, we want to store two fields, which 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 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 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 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 471option is silently overridden, and the -b128 option takes precedence, leaving
472us with the equivalence of -q32. 472us with the equivalence of -q32.
473 473
474This gives us a data rate of 165 bits per block, which, times 3168, sums up 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 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 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 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 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 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 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 481per block, the equivalence of -q24. With 128kB buffers, you can't use greater
482than -q24 at -d1. (And PAL, and 704 pixels width...) 482than -q24 at -d1. (And PAL, and 704 pixels width...)
483 483
484The third example is limited to -q24 through the same process. The second 484The third example is limited to -q24 through the same process. The second
485example, using very similar calculations, is limited to -q48. The only 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 486example that actually grab at the specified -q value is the last one, which
487is clearly visible, looking at the file size. 487is clearly visible, looking at the file size.
488-- 488--
489 489
diff --git a/Documentation/video4linux/bttv/ICs b/Documentation/video4linux/bttv/ICs
index 6b7491336967..611315f87c3e 100644
--- a/Documentation/video4linux/bttv/ICs
+++ b/Documentation/video4linux/bttv/ICs
@@ -14,13 +14,13 @@ Hauppauge Win/TV pci (version 405):
14 14
15Microchip 24LC02B or 15Microchip 24LC02B or
16Philips 8582E2Y: 256 Byte EEPROM with configuration information 16Philips 8582E2Y: 256 Byte EEPROM with configuration information
17 I2C 0xa0-0xa1, (24LC02B also responds to 0xa2-0xaf) 17 I2C 0xa0-0xa1, (24LC02B also responds to 0xa2-0xaf)
18Philips SAA5246AGP/E: Videotext decoder chip, I2C 0x22-0x23 18Philips SAA5246AGP/E: Videotext decoder chip, I2C 0x22-0x23
19TDA9800: sound decoder 19TDA9800: sound decoder
20Winbond W24257AS-35: 32Kx8 CMOS static RAM (Videotext buffer mem) 20Winbond W24257AS-35: 32Kx8 CMOS static RAM (Videotext buffer mem)
2114052B: analog switch for selection of sound source 2114052B: analog switch for selection of sound source
22 22
23PAL: 23PAL:
24TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners 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 25TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3
26 26
diff --git a/Documentation/video4linux/bttv/PROBLEMS b/Documentation/video4linux/bttv/PROBLEMS
index 8e31e9e36bf7..2b8b0079f7c7 100644
--- a/Documentation/video4linux/bttv/PROBLEMS
+++ b/Documentation/video4linux/bttv/PROBLEMS
@@ -3,7 +3,7 @@
3- Start capturing by pressing "c" or by selecting it via a menu!!! 3- Start capturing by pressing "c" or by selecting it via a menu!!!
4 4
5- The memory of some S3 cards is not recognized right: 5- The memory of some S3 cards is not recognized right:
6 6
7 First of all, if you are not using XFree-3.2 or newer, upgrade AT LEAST to 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. 8 XFree-3.2A! This solved the problem for most people.
9 9
@@ -31,23 +31,23 @@
31 (mostly with Trio 64 but also with some others) 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 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. 33 bttv with it. bttv seems to work with most S3 cards with Accelerated X.
34 34
35 Since I do not know much (better make that almost nothing) about VGA card 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. 36 programming I do not know the reason for this.
37 Looks like XFree does something different when setting up the video memory? 37 Looks like XFree does something different when setting up the video memory?
38 Maybe somebody can enlighten me? 38 Maybe somebody can enlighten me?
39 Would be nice if somebody could get this to work with XFree since 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 ... 40 Accelerated X costs more than some of the grabber cards ...
41 41
42 Better linear frame buffer support for S3 cards will probably be in 42 Better linear frame buffer support for S3 cards will probably be in
43 XFree 4.0. 43 XFree 4.0.
44 44
45- Grabbing is not switched off when changing consoles with XFree. 45- Grabbing is not switched off when changing consoles with XFree.
46 That's because XFree and some AcceleratedX versions do not send unmap 46 That's because XFree and some AcceleratedX versions do not send unmap
47 events. 47 events.
48 48
49- Some popup windows (e.g. of the window manager) are not refreshed. 49- Some popup windows (e.g. of the window manager) are not refreshed.
50 50
51 Disable backing store by starting X with the option "-bs" 51 Disable backing store by starting X with the option "-bs"
52 52
53- When using 32 bpp in XFree or 24+8bpp mode in AccelX 3.1 the system 53- When using 32 bpp in XFree or 24+8bpp mode in AccelX 3.1 the system
diff --git a/Documentation/video4linux/bttv/README.quirks b/Documentation/video4linux/bttv/README.quirks
index e8edb87df711..92e03929a6b2 100644
--- a/Documentation/video4linux/bttv/README.quirks
+++ b/Documentation/video4linux/bttv/README.quirks
@@ -38,9 +38,9 @@ tolerate.
38------------------------ 38------------------------
39 39
40When using the 430FX PCI, the following rules will ensure 40When using the 430FX PCI, the following rules will ensure
41compatibility: 41compatibility:
42 42
43 (1) Deassert REQ at the same time as asserting FRAME. 43 (1) Deassert REQ at the same time as asserting FRAME.
44 (2) Do not reassert REQ to request another bus transaction until after 44 (2) Do not reassert REQ to request another bus transaction until after
45 finish-ing the previous transaction. 45 finish-ing the previous transaction.
46 46
diff --git a/Documentation/video4linux/bttv/THANKS b/Documentation/video4linux/bttv/THANKS
index 2085399da7d4..950aa781c2e9 100644
--- a/Documentation/video4linux/bttv/THANKS
+++ b/Documentation/video4linux/bttv/THANKS
@@ -1,6 +1,6 @@
1Many thanks to: 1Many thanks to:
2 2
3- Markus Schroeder <schroedm@uni-duesseldorf.de> for information on the Bt848 3- Markus Schroeder <schroedm@uni-duesseldorf.de> for information on the Bt848
4 and tuner programming and his control program xtvc. 4 and tuner programming and his control program xtvc.
5 5
6- Martin Buck <martin-2.buck@student.uni-ulm.de> for his great Videotext 6- Martin Buck <martin-2.buck@student.uni-ulm.de> for his great Videotext
@@ -16,7 +16,7 @@ Many thanks to:
16- MIRO for providing a free PCTV card and detailed information about the 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) 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. 18 Without their card I could not have debugged the NTSC mode.
19 19
20- Hauppauge for telling how the sound input is selected and what components 20- Hauppauge for telling how the sound input is selected and what components
21 they do and will use on their radio cards. 21 they do and will use on their radio cards.
22 Also many thanks for faxing me the FM1216 data sheet. 22 Also many thanks for faxing me the FM1216 data sheet.
diff --git a/Documentation/video4linux/cpia2_overview.txt b/Documentation/video4linux/cpia2_overview.txt
new file mode 100644
index 000000000000..a6e53665216b
--- /dev/null
+++ b/Documentation/video4linux/cpia2_overview.txt
@@ -0,0 +1,38 @@
1 Programmer's View of Cpia2
2
3Cpia2 is the second generation video coprocessor from VLSI Vision Ltd (now a
4division of ST Microelectronics). There are two versions. The first is the
5STV0672, which is capable of up to 30 frames per second (fps) in frame sizes
6up to CIF, and 15 fps for VGA frames. The STV0676 is an improved version,
7which can handle up to 30 fps VGA. Both coprocessors can be attached to two
8CMOS sensors - the vvl6410 CIF sensor and the vvl6500 VGA sensor. These will
9be referred to as the 410 and the 500 sensors, or the CIF and VGA sensors.
10
11The two chipsets operate almost identically. The core is an 8051 processor,
12running two different versions of firmware. The 672 runs the VP4 video
13processor code, the 676 runs VP5. There are a few differences in register
14mappings for the two chips. In these cases, the symbols defined in the
15header files are marked with VP4 or VP5 as part of the symbol name.
16
17The cameras appear externally as three sets of registers. Setting register
18values is the only way to control the camera. Some settings are
19interdependant, such as the sequence required to power up the camera. I will
20try to make note of all of these cases.
21
22The register sets are called blocks. Block 0 is the system block. This
23section is always powered on when the camera is plugged in. It contains
24registers that control housekeeping functions such as powering up the video
25processor. The video processor is the VP block. These registers control
26how the video from the sensor is processed. Examples are timing registers,
27user mode (vga, qvga), scaling, cropping, framerates, and so on. The last
28block is the video compressor (VC). The video stream sent from the camera is
29compressed as Motion JPEG (JPEGA). The VC controls all of the compression
30parameters. Looking at the file cpia2_registers.h, you can get a full view
31of these registers and the possible values for most of them.
32
33One or more registers can be set or read by sending a usb control message to
34the camera. There are three modes for this. Block mode requests a number
35of contiguous registers. Random mode reads or writes random registers with
36a tuple structure containing address/value pairs. The repeat mode is only
37used by VP4 to load a firmware patch. It contains a starting address and
38a sequence of bytes to be written into a gpio port. \ No newline at end of file
diff --git a/Documentation/video4linux/radiotrack.txt b/Documentation/video4linux/radiotrack.txt
index 2b75345f13e3..d1f3ed199186 100644
--- a/Documentation/video4linux/radiotrack.txt
+++ b/Documentation/video4linux/radiotrack.txt
@@ -131,17 +131,17 @@ Check Stereo: BASE <-- 0xd8 (current volume, stereo detect,
131 x=0xff ==> "not stereo", x=0xfd ==> "stereo detected" 131 x=0xff ==> "not stereo", x=0xfd ==> "stereo detected"
132 132
133Set Frequency: code = (freq*40) + 10486188 133Set Frequency: code = (freq*40) + 10486188
134 foreach of the 24 bits in code, 134 foreach of the 24 bits in code,
135 (from Least to Most Significant): 135 (from Least to Most Significant):
136 to write a "zero" bit, 136 to write a "zero" bit,
137 BASE <-- 0x01 (audio mute, no stereo detect, radio 137 BASE <-- 0x01 (audio mute, no stereo detect, radio
138 disable, "zero" bit phase 1, tuner adjust) 138 disable, "zero" bit phase 1, tuner adjust)
139 BASE <-- 0x03 (audio mute, no stereo detect, radio 139 BASE <-- 0x03 (audio mute, no stereo detect, radio
140 disable, "zero" bit phase 2, tuner adjust) 140 disable, "zero" bit phase 2, tuner adjust)
141 to write a "one" bit, 141 to write a "one" bit,
142 BASE <-- 0x05 (audio mute, no stereo detect, radio 142 BASE <-- 0x05 (audio mute, no stereo detect, radio
143 disable, "one" bit phase 1, tuner adjust) 143 disable, "one" bit phase 1, tuner adjust)
144 BASE <-- 0x07 (audio mute, no stereo detect, radio 144 BASE <-- 0x07 (audio mute, no stereo detect, radio
145 disable, "one" bit phase 2, tuner adjust) 145 disable, "one" bit phase 2, tuner adjust)
146 146
147---------------------------------------------------------------------------- 147----------------------------------------------------------------------------
diff --git a/Documentation/video4linux/w9966.txt b/Documentation/video4linux/w9966.txt
index e7ac33a7eb06..78a651254b84 100644
--- a/Documentation/video4linux/w9966.txt
+++ b/Documentation/video4linux/w9966.txt
@@ -26,7 +26,7 @@ is called VIDEO_PALETTE_YUV422 (16 bpp).
26A minimal test application (with source) is available from: 26A minimal test application (with source) is available from:
27 http://hem.fyristorg.com/mogul/w9966.html 27 http://hem.fyristorg.com/mogul/w9966.html
28 28
29The slow framerate is due to missing DMA ECP read support in the 29The slow framerate is due to missing DMA ECP read support in the
30parport drivers. I might add working EPP support later. 30parport drivers. I might add working EPP support later.
31 31
32Good luck! 32Good luck!
diff --git a/Documentation/video4linux/zr36120.txt b/Documentation/video4linux/zr36120.txt
index 5d6357eefde4..ac6d92d01944 100644
--- a/Documentation/video4linux/zr36120.txt
+++ b/Documentation/video4linux/zr36120.txt
@@ -2,7 +2,7 @@ Driver for Trust Computer Products Framegrabber, version 0.6.1
2------ --- ----- -------- -------- ------------ ------- - - - 2------ --- ----- -------- -------- ------------ ------- - - -
3 3
4- ZORAN ------------------------------------------------------ 4- ZORAN ------------------------------------------------------
5 Author: Pauline Middelink <middelin@polyware.nl> 5 Author: Pauline Middelink <middelin@polyware.nl>
6 Date: 18 September 1999 6 Date: 18 September 1999
7Version: 0.6.1 7Version: 0.6.1
8 8
@@ -115,7 +115,7 @@ After making/checking the devices do:
115<n> is the cardtype of the card you have. The cardnumber can 115<n> is the cardtype of the card you have. The cardnumber can
116be found in the source of zr36120. Look for tvcards. If your 116be found in the source of zr36120. Look for tvcards. If your
117card is not there, please try if any other card gives some 117card is not there, please try if any other card gives some
118response, and mail me if you got a working tvcard addition. 118response, and mail me if you got a working tvcard addition.
119 119
120PS. <TVCard editors behold!) 120PS. <TVCard editors behold!)
121 Dont forget to set video_input to the number of inputs 121 Dont forget to set video_input to the number of inputs