struct conn size optimisation
[cor_2_6_31.git] / Documentation / video4linux / Zoran
blob0e89e76762983ebf964bf9d3fd3e5d78ebc4202e
1 Frequently Asked Questions:
2 ===========================
3 subject: unified zoran driver (zr360x7, zoran, buz, dc10(+), dc30(+), lml33)
4 website: http://mjpeg.sourceforge.net/driver-zoran/
6 1. What cards are supported
7 1.1 What the TV decoder can do an what not
8 1.2 What the TV encoder can do an what not
9 2. How do I get this damn thing to work
10 3. What mainboard should I use (or why doesn't my card work)
11 4. Programming interface
12 5. Applications
13 6. Concerning buffer sizes, quality, output size etc.
14 7. It hangs/crashes/fails/whatevers! Help!
15 8. Maintainers/Contacting
16 9. License
18 ===========================
20 1. What cards are supported
22 Iomega Buz, Linux Media Labs LML33/LML33R10, Pinnacle/Miro
23 DC10/DC10+/DC30/DC30+ and related boards (available under various names).
25 Iomega Buz:
26 * Zoran zr36067 PCI controller
27 * Zoran zr36060 MJPEG codec
28 * Philips saa7111 TV decoder
29 * Philips saa7185 TV encoder
30 Drivers to use: videodev, i2c-core, i2c-algo-bit,
31                 videocodec, saa7111, saa7185, zr36060, zr36067
32 Inputs/outputs: Composite and S-video
33 Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
34 Card number: 7
36 AverMedia 6 Eyes AVS6EYES:
37 * Zoran zr36067 PCI controller
38 * Zoran zr36060 MJPEG codec
39 * Samsung ks0127 TV decoder
40 * Conexant bt866  TV encoder
41 Drivers to use: videodev, i2c-core, i2c-algo-bit,
42                 videocodec, ks0127, bt866, zr36060, zr36067
43 Inputs/outputs: Six physical inputs. 1-6 are composite,
44                 1-2, 3-4, 5-6 doubles as S-video,
45                 1-3 triples as component.
46                 One composite output.
47 Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
48 Card number: 8
49 Not autodetected, card=8 is necessary.
51 Linux Media Labs LML33:
52 * Zoran zr36067 PCI controller
53 * Zoran zr36060 MJPEG codec
54 * Brooktree bt819 TV decoder
55 * Brooktree bt856 TV encoder
56 Drivers to use: videodev, i2c-core, i2c-algo-bit,
57                 videocodec, bt819, bt856, zr36060, zr36067
58 Inputs/outputs: Composite and S-video
59 Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
60 Card number: 5
62 Linux Media Labs LML33R10:
63 * Zoran zr36067 PCI controller
64 * Zoran zr36060 MJPEG codec
65 * Philips saa7114 TV decoder
66 * Analog Devices adv7170 TV encoder
67 Drivers to use: videodev, i2c-core, i2c-algo-bit,
68                 videocodec, saa7114, adv7170, zr36060, zr36067
69 Inputs/outputs: Composite and S-video
70 Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
71 Card number: 6
73 Pinnacle/Miro DC10(new):
74 * Zoran zr36057 PCI controller
75 * Zoran zr36060 MJPEG codec
76 * Philips saa7110a TV decoder
77 * Analog Devices adv7176 TV encoder
78 Drivers to use: videodev, i2c-core, i2c-algo-bit,
79                 videocodec, saa7110, adv7175, zr36060, zr36067
80 Inputs/outputs: Composite, S-video and Internal
81 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
82 Card number: 1
84 Pinnacle/Miro DC10+:
85 * Zoran zr36067 PCI controller
86 * Zoran zr36060 MJPEG codec
87 * Philips saa7110a TV decoder
88 * Analog Devices adv7176 TV encoder
89 Drivers to use: videodev, i2c-core, i2c-algo-bit,
90                 videocodec, sa7110, adv7175, zr36060, zr36067
91 Inputs/outputs: Composite, S-video and Internal
92 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
93 Card number: 2
95 Pinnacle/Miro DC10(old): *
96 * Zoran zr36057 PCI controller
97 * Zoran zr36050 MJPEG codec
98 * Zoran zr36016 Video Front End or Fuji md0211 Video Front End (clone?)
99 * Micronas vpx3220a TV decoder
100 * mse3000 TV encoder or Analog Devices adv7176 TV encoder *
101 Drivers to use: videodev, i2c-core, i2c-algo-bit,
102                 videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067
103 Inputs/outputs: Composite, S-video and Internal
104 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
105 Card number: 0
107 Pinnacle/Miro DC30: *
108 * Zoran zr36057 PCI controller
109 * Zoran zr36050 MJPEG codec
110 * Zoran zr36016 Video Front End
111 * Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
112 * Analog Devices adv7176 TV encoder
113 Drivers to use: videodev, i2c-core, i2c-algo-bit,
114                 videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067
115 Inputs/outputs: Composite, S-video and Internal
116 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
117 Card number: 3
119 Pinnacle/Miro DC30+: *
120 * Zoran zr36067 PCI controller
121 * Zoran zr36050 MJPEG codec
122 * Zoran zr36016 Video Front End
123 * Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
124 * Analog Devices adv7176 TV encoder
125 Drivers to use: videodev, i2c-core, i2c-algo-bit,
126                 videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36015, zr36067
127 Inputs/outputs: Composite, S-video and Internal
128 Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
129 Card number: 4
131 Note: No module for the mse3000 is available yet
132 Note: No module for the vpx3224 is available yet
133 Note: use encoder=X or decoder=X for non-default i2c chips (see i2c-id.h)
135 ===========================
137 1.1 What the TV decoder can do an what not
139 The best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that
140 information is not enough. There are several formats of the TV standards.
141 And not every TV decoder is able to handle every format. Also the every
142 combination is supported by the driver. There are currently 11 different
143 tv broadcast formats all aver the world.
145 The CCIR defines parameters needed for broadcasting the signal.
146 The CCIR has defined different standards: A,B,D,E,F,G,D,H,I,K,K1,L,M,N,...
147 The CCIR says not much about the colorsystem used !!!
148 And talking about a colorsystem says not to much about how it is broadcast.
150 The CCIR standards A,E,F are not used any more.
152 When you speak about NTSC, you usually mean the standard: CCIR - M using
153 the NTSC colorsystem which is used in the USA, Japan, Mexico, Canada
154 and a few others.
156 When you talk about PAL, you usually mean: CCIR - B/G using the PAL
157 colorsystem which is used in many Countries.
159 When you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem
160 which is used in France, and a few others.
162 There the other version of SECAM, CCIR - D/K is used in Bulgaria, China,
163 Slovakai, Hungary, Korea (Rep.), Poland, Rumania and a others.
165 The CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in
166 Egypt, Libya, Sri Lanka, Syrain Arab. Rep.
168 The CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong,
169 Ireland, Nigeria, South Africa.
171 The CCIR - N uses the PAL colorsystem and PAL frame size but the NTSC framerate,
172 and is used in Argentinia, Uruguay, an a few others
174 We do not talk about how the audio is broadcast !
176 A rather good sites about the TV standards are:
177 http://www.sony.jp/ServiceArea/Voltage_map/
178 http://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/
179 and http://www.cabl.com/restaurant/channel.html
181 Other weird things around: NTSC 4.43 is a modificated NTSC, which is mainly
182 used in PAL VCR's that are able to play back NTSC. PAL 60 seems to be the same
183 as NTSC 4.43 . The Datasheets also talk about NTSC 44, It seems as if it would
184 be the same as NTSC 4.43.
185 NTSC Combs seems to be a decoder mode where the decoder uses a comb filter
186 to split coma and luma instead of a Delay line.
188 But I did not defiantly find out what NTSC Comb is.
190 Philips saa7111 TV decoder
191 was introduced in 1997, is used in the BUZ and
192 can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM
194 Philips saa7110a TV decoder
195 was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and
196 can handle: PAL B/G, NTSC M and SECAM
198 Philips saa7114 TV decoder
199 was introduced in 2000, is used in the LML33R10 and
200 can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM
202 Brooktree bt819 TV decoder
203 was introduced in 1996, and is used in the LML33 and
204 can handle: PAL B/D/G/H/I, NTSC M
206 Micronas vpx3220a TV decoder
207 was introduced in 1996, is used in the DC30 and DC30+ and
208 can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC 44, PAL 60, SECAM,NTSC Comb
210 Samsung ks0127 TV decoder
211 is used in the AVS6EYES card and
212 can handle: NTSC-M/N/44, PAL-M/N/B/G/H/I/D/K/L and SECAM
214 ===========================
216 1.2 What the TV encoder can do an what not
218 The TV encoder are doing the "same" as the decoder, but in the oder direction.
219 You feed them digital data and the generate a Composite or SVHS signal.
220 For information about the colorsystems and TV norm take a look in the
221 TV decoder section.
223 Philips saa7185 TV Encoder
224 was introduced in 1996, is used in the BUZ
225 can generate: PAL B/G, NTSC M
227 Brooktree bt856 TV Encoder
228 was introduced in 1994, is used in the LML33
229 can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina)
231 Analog Devices adv7170 TV Encoder
232 was introduced in 2000, is used in the LML300R10
233 can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL 60
235 Analog Devices adv7175 TV Encoder
236 was introduced in 1996, is used in the DC10, DC10+, DC10 old, DC30, DC30+
237 can generate: PAL B/D/G/H/I/N, PAL M, NTSC M
239 ITT mse3000 TV encoder
240 was introduced in 1991, is used in the DC10 old
241 can generate: PAL , NTSC , SECAM
243 Conexant bt866 TV encoder
244 is used in AVS6EYES, and
245 can generate: NTSC/PAL, PAL­M, PAL­N
247 The adv717x, should be able to produce PAL N. But you find nothing PAL N
248 specific in the registers. Seem that you have to reuse a other standard
249 to generate PAL N, maybe it would work if you use the PAL M settings.
251 ==========================
253 2. How do I get this damn thing to work
255 Load zr36067.o. If it can't autodetect your card, use the card=X insmod
256 option with X being the card number as given in the previous section.
257 To have more than one card, use card=X1[,X2[,X3,[X4[..]]]]
259 To automate this, add the following to your /etc/modprobe.conf:
261 options zr36067 card=X1[,X2[,X3[,X4[..]]]]
262 alias char-major-81-0 zr36067
264 One thing to keep in mind is that this doesn't load zr36067.o itself yet. It
265 just automates loading. If you start using xawtv, the device won't load on
266 some systems, since you're trying to load modules as a user, which is not
267 allowed ("permission denied"). A quick workaround is to add 'Load "v4l"' to
268 XF86Config-4 when you use X by default, or to run 'v4l-conf -c <device>' in
269 one of your startup scripts (normally rc.local) if you don't use X. Both
270 make sure that the modules are loaded on startup, under the root account.
272 ===========================
274 3. What mainboard should I use (or why doesn't my card work)
276 <insert lousy disclaimer here>. In short: good=SiS/Intel, bad=VIA.
278 Experience tells us that people with a Buz, on average, have more problems
279 than users with a DC10+/LML33. Also, it tells us that people owning a VIA-
280 based mainboard (ktXXX, MVP3) have more problems than users with a mainboard
281 based on a different chipset. Here's some notes from Andrew Stevens:
283 Here's my experience of using LML33 and Buz on various motherboards:
285 VIA MVP3
286         Forget it. Pointless. Doesn't work.
287 Intel 430FX (Pentium 200)
288         LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie)
289 Intel 440BX (early stepping)
290         LML33 tolerable. Buz starting to get annoying (6-10 frames/hour)
291 Intel 440BX (late stepping)
292         Buz tolerable, LML3 almost perfect (occasional single frame drops)
293 SiS735
294         LML33 perfect, Buz tolerable.
295 VIA KT133(*)
296         LML33 starting to get annoying, Buz poor enough that I have up.
298 Both 440BX boards were dual CPU versions.
300 Bernhard Praschinger later added:
302 AMD 751
303         Buz perfect-tolerable
304 AMD 760
305         Buz perfect-tolerable
307 In general, people on the user mailinglist won't give you much of a chance
308 if you have a VIA-based motherboard. They may be cheap, but sometimes, you'd
309 rather want to spend some more money on better boards. In general, VIA
310 mainboard's IDE/PCI performance will also suck badly compared to others.
311 You'll noticed the DC10+/DC30+ aren't mentioned anywhere in the overview.
312 Basically, you can assume that if the Buz works, the LML33 will work too. If
313 the LML33 works, the DC10+/DC30+ will work too. They're most tolerant to
314 different mainboard chipsets from all of the supported cards.
316 If you experience timeouts during capture, buy a better mainboard or lower
317 the quality/buffersize during capture (see 'Concerning buffer sizes, quality,
318 output size etc.'). If it hangs, there's little we can do as of now. Check
319 your IRQs and make sure the card has its own interrupts.
321 ===========================
323 4. Programming interface
325 This driver conforms to video4linux and video4linux2, both can be used to
326 use the driver. Since video4linux didn't provide adequate calls to fully
327 use the cards' features, we've introduced several programming extensions,
328 which are currently officially accepted in the 2.4.x branch of the kernel.
329 These extensions are known as the v4l/mjpeg extensions. See zoran.h for
330 details (structs/ioctls).
332 Information - video4linux:
333 http://roadrunner.swansea.linux.org.uk/v4lapi.shtml
334 Documentation/video4linux/API.html
335 /usr/include/linux/videodev.h
337 Information - video4linux/mjpeg extensions:
338 ./zoran.h
339 (also see below)
341 Information - video4linux2:
342 http://linuxtv.org
343 http://v4l2spec.bytesex.org/
344 /usr/include/linux/videodev2.h
346 More information on the video4linux/mjpeg extensions, by Serguei
347 Miridonovi and Rainer Johanni:
349 The ioctls for that interface are as follows:
351 BUZIOC_G_PARAMS
352 BUZIOC_S_PARAMS
354 Get and set the parameters of the buz. The user should always do a
355 BUZIOC_G_PARAMS (with a struct buz_params) to obtain the default
356 settings, change what he likes and then make a BUZIOC_S_PARAMS call.
358 BUZIOC_REQBUFS
360 Before being able to capture/playback, the user has to request
361 the buffers he is wanting to use. Fill the structure
362 zoran_requestbuffers with the size (recommended: 256*1024) and
363 the number (recommended 32 up to 256). There are no such restrictions
364 as for the Video for Linux buffers, you should LEAVE SUFFICIENT
365 MEMORY for your system however, else strange things will happen ....
366 On return, the zoran_requestbuffers structure contains number and
367 size of the actually allocated buffers.
368 You should use these numbers for doing a mmap of the buffers
369 into the user space.
370 The BUZIOC_REQBUFS ioctl also makes it happen, that the next mmap
371 maps the MJPEG buffer instead of the V4L buffers.
373 BUZIOC_QBUF_CAPT
374 BUZIOC_QBUF_PLAY
376 Queue a buffer for capture or playback. The first call also starts
377 streaming capture. When streaming capture is going on, you may
378 only queue further buffers or issue syncs until streaming
379 capture is switched off again with a argument of -1 to
380 a BUZIOC_QBUF_CAPT/BUZIOC_QBUF_PLAY ioctl.
382 BUZIOC_SYNC
384 Issue this ioctl when all buffers are queued. This ioctl will
385 block until the first buffer becomes free for saving its
386 data to disk (after BUZIOC_QBUF_CAPT) or for reuse (after BUZIOC_QBUF_PLAY).
388 BUZIOC_G_STATUS
390 Get the status of the input lines (video source connected/norm).
392 For programming example, please, look at lavrec.c and lavplay.c code in
393 lavtools-1.2p2 package (URL: http://www.cicese.mx/~mirsev/DC10plus/)
394 and the 'examples' directory in the original Buz driver distribution.
396 Additional notes for software developers:
398    The driver returns maxwidth and maxheight parameters according to
399    the current TV standard (norm). Therefore, the software which
400    communicates with the driver and "asks" for these parameters should
401    first set the correct norm. Well, it seems logically correct: TV
402    standard is "more constant" for current country than geometry
403    settings of a variety of TV capture cards which may work in ITU or
404    square pixel format.
406 Please note that lavplay/lavrec are also included in the MJPEG-tools
407 (http://mjpeg.sf.net/).
409 ===========================
411 5. Applications
413 Applications known to work with this driver:
415 TV viewing:
416 * xawtv
417 * kwintv
418 * probably any TV application that supports video4linux or video4linux2.
420 MJPEG capture/playback:
421 * mjpegtools/lavtools (or Linux Video Studio)
422 * gstreamer
423 * mplayer
425 General raw capture:
426 * xawtv
427 * gstreamer
428 * probably any application that supports video4linux or video4linux2
430 Video editing:
431 * Cinelerra
432 * MainActor
433 * mjpegtools (or Linux Video Studio)
435 ===========================
437 6. Concerning buffer sizes, quality, output size etc.
439 The zr36060 can do 1:2 JPEG compression. This is really the theoretical
440 maximum that the chipset can reach. The driver can, however, limit compression
441 to a maximum (size) of 1:4. The reason for this is that some cards (e.g. Buz)
442 can't handle 1:2 compression without stopping capture after only a few minutes.
443 With 1:4, it'll mostly work. If you have a Buz, use 'low_bitrate=1' to go into
444 1:4 max. compression mode.
446 100% JPEG quality is thus 1:2 compression in practice. So for a full PAL frame
447 (size 720x576). The JPEG fields are stored in YUY2 format, so the size of the
448 fields are 720x288x16/2 bits/field (2 fields/frame) = 207360 bytes/field x 2 =
449 414720 bytes/frame (add some more bytes for headers and DHT (huffman)/DQT
450 (quantization) tables, and you'll get to something like 512kB per frame for
451 1:2 compression. For 1:4 compression, you'd have frames of half this size.
453 Some additional explanation by Martin Samuelsson, which also explains the
454 importance of buffer sizes:
456 > Hmm, I do not think it is really that way. With the current (downloaded
457 > at 18:00 Monday) driver I get that output sizes for 10 sec:
458 > -q 50 -b 128 : 24.283.332 Bytes
459 > -q 50 -b 256 : 48.442.368
460 > -q 25 -b 128 : 24.655.992
461 > -q 25 -b 256 : 25.859.820
463 I woke up, and can't go to sleep again. I'll kill some time explaining why
464 this doesn't look strange to me.
466 Let's do some math using a width of 704 pixels. I'm not sure whether the Buz
467 actually use that number or not, but that's not too important right now.
469 704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block;
470 3168 blocks per field. Each pixel consist of two bytes; 128 bytes per block;
471 1024 bits per block. 100% in the new driver mean 1:2 compression; the maximum
472 output becomes 512 bits per block. Actually 510, but 512 is simpler to use
473 for calculations.
475 Let's say that we specify d1q50. We thus want 256 bits per block; times 3168
476 becomes 811008 bits; 101376 bytes per field. We're talking raw bits and bytes
477 here, so we don't need to do any fancy corrections for bits-per-pixel or such
478 things. 101376 bytes per field.
480 d1 video contains two fields per frame. Those sum up to 202752 bytes per
481 frame, and one of those frames goes into each buffer.
483 But wait a second! -b128 gives 128kB buffers! It's not possible to cram
484 202752 bytes of JPEG data into 128kB!
486 This is what the driver notice and automatically compensate for in your
487 examples. Let's do some math using this information:
489 128kB is 131072 bytes. In this buffer, we want to store two fields, which
490 leaves 65536 bytes for each field. Using 3168 blocks per field, we get
491 20.68686868... available bytes per block; 165 bits. We can't allow the
492 request for 256 bits per block when there's only 165 bits available! The -q50
493 option is silently overridden, and the -b128 option takes precedence, leaving
494 us with the equivalence of -q32.
496 This gives us a data rate of 165 bits per block, which, times 3168, sums up
497 to 65340 bytes per field, out of the allowed 65536. The current driver has
498 another level of rate limiting; it won't accept -q values that fill more than
499 6/8 of the specified buffers. (I'm not sure why. "Playing it safe" seem to be
500 a safe bet. Personally, I think I would have lowered requested-bits-per-block
501 by one, or something like that.) We can't use 165 bits per block, but have to
502 lower it again, to 6/8 of the available buffer space: We end up with 124 bits
503 per block, the equivalence of -q24. With 128kB buffers, you can't use greater
504 than -q24 at -d1. (And PAL, and 704 pixels width...)
506 The third example is limited to -q24 through the same process. The second
507 example, using very similar calculations, is limited to -q48. The only
508 example that actually grab at the specified -q value is the last one, which
509 is clearly visible, looking at the file size.
512 Conclusion: the quality of the resulting movie depends on buffer size, quality,
513 whether or not you use 'low_bitrate=1' as insmod option for the zr36060.c
514 module to do 1:4 instead of 1:2 compression, etc.
516 If you experience timeouts, lowering the quality/buffersize or using
517 'low_bitrate=1 as insmod option for zr36060.o might actually help, as is
518 proven by the Buz.
520 ===========================
522 7. It hangs/crashes/fails/whatevers! Help!
524 Make sure that the card has its own interrupts (see /proc/interrupts), check
525 the output of dmesg at high verbosity (load zr36067.o with debug=2,
526 load all other modules with debug=1). Check that your mainboard is favorable
527 (see question 2) and if not, test the card in another computer. Also see the
528 notes given in question 3 and try lowering quality/buffersize/capturesize
529 if recording fails after a period of time.
531 If all this doesn't help, give a clear description of the problem including
532 detailed hardware information (memory+brand, mainboard+chipset+brand, which
533 MJPEG card, processor, other PCI cards that might be of interest), give the
534 system PnP information (/proc/interrupts, /proc/dma, /proc/devices), and give
535 the kernel version, driver version, glibc version, gcc version and any other
536 information that might possibly be of interest. Also provide the dmesg output
537 at high verbosity. See 'Contacting' on how to contact the developers.
539 ===========================
541 8. Maintainers/Contacting
543 The driver is currently maintained by Laurent Pinchart and Ronald Bultje
544 (<laurent.pinchart@skynet.be> and <rbultje@ronald.bitfreak.net>). For bug
545 reports or questions, please contact the mailinglist instead of the developers
546 individually. For user questions (i.e. bug reports or how-to questions), send
547 an email to <mjpeg-users@lists.sf.net>, for developers (i.e. if you want to
548 help programming), send an email to <mjpeg-developer@lists.sf.net>. See
549 http://www.sf.net/projects/mjpeg/ for subscription information.
551 For bug reports, be sure to include all the information as described in
552 the section 'It hangs/crashes/fails/whatevers! Help!'. Please make sure
553 you're using the latest version (http://mjpeg.sf.net/driver-zoran/).
555 Previous maintainers/developers of this driver include Serguei Miridonov
556 <mirsev@cicese.mx>, Wolfgang Scherr <scherr@net4you.net>, Dave Perks
557 <dperks@ibm.net> and Rainer Johanni <Rainer@Johanni.de>.
559 ===========================
561 9. License
563 This driver is distributed under the terms of the General Public License.
565     This program is free software; you can redistribute it and/or modify
566     it under the terms of the GNU General Public License as published by
567     the Free Software Foundation; either version 2 of the License, or
568     (at your option) any later version.
570     This program is distributed in the hope that it will be useful,
571     but WITHOUT ANY WARRANTY; without even the implied warranty of
572     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
573     GNU General Public License for more details.
575     You should have received a copy of the GNU General Public License
576     along with this program; if not, write to the Free Software
577     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
579 See http://www.gnu.org/ for more information.