162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciThe Zoran driver
462306a36Sopenharmony_ci================
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciunified zoran driver (zr360x7, zoran, buz, dc10(+), dc30(+), lml33)
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciwebsite: http://mjpeg.sourceforge.net/driver-zoran/
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciFrequently Asked Questions
1262306a36Sopenharmony_ci--------------------------
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciWhat cards are supported
1562306a36Sopenharmony_ci------------------------
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciIomega Buz, Linux Media Labs LML33/LML33R10, Pinnacle/Miro
1862306a36Sopenharmony_ciDC10/DC10+/DC30/DC30+ and related boards (available under various names).
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciIomega Buz
2162306a36Sopenharmony_ci~~~~~~~~~~
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci* Zoran zr36067 PCI controller
2462306a36Sopenharmony_ci* Zoran zr36060 MJPEG codec
2562306a36Sopenharmony_ci* Philips saa7111 TV decoder
2662306a36Sopenharmony_ci* Philips saa7185 TV encoder
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
2962306a36Sopenharmony_civideocodec, saa7111, saa7185, zr36060, zr36067
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciInputs/outputs: Composite and S-video
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciNorms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciCard number: 7
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciAverMedia 6 Eyes AVS6EYES
3862306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci* Zoran zr36067 PCI controller
4162306a36Sopenharmony_ci* Zoran zr36060 MJPEG codec
4262306a36Sopenharmony_ci* Samsung ks0127 TV decoder
4362306a36Sopenharmony_ci* Conexant bt866  TV encoder
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
4662306a36Sopenharmony_civideocodec, ks0127, bt866, zr36060, zr36067
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciInputs/outputs:
4962306a36Sopenharmony_ci	Six physical inputs. 1-6 are composite,
5062306a36Sopenharmony_ci	1-2, 3-4, 5-6 doubles as S-video,
5162306a36Sopenharmony_ci	1-3 triples as component.
5262306a36Sopenharmony_ci	One composite output.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciNorms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciCard number: 8
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci.. note::
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci   Not autodetected, card=8 is necessary.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciLinux Media Labs LML33
6362306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci* Zoran zr36067 PCI controller
6662306a36Sopenharmony_ci* Zoran zr36060 MJPEG codec
6762306a36Sopenharmony_ci* Brooktree bt819 TV decoder
6862306a36Sopenharmony_ci* Brooktree bt856 TV encoder
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
7162306a36Sopenharmony_civideocodec, bt819, bt856, zr36060, zr36067
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciInputs/outputs: Composite and S-video
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciNorms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciCard number: 5
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciLinux Media Labs LML33R10
8062306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci* Zoran zr36067 PCI controller
8362306a36Sopenharmony_ci* Zoran zr36060 MJPEG codec
8462306a36Sopenharmony_ci* Philips saa7114 TV decoder
8562306a36Sopenharmony_ci* Analog Devices adv7170 TV encoder
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
8862306a36Sopenharmony_civideocodec, saa7114, adv7170, zr36060, zr36067
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciInputs/outputs: Composite and S-video
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciNorms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps)
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciCard number: 6
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciPinnacle/Miro DC10(new)
9762306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci* Zoran zr36057 PCI controller
10062306a36Sopenharmony_ci* Zoran zr36060 MJPEG codec
10162306a36Sopenharmony_ci* Philips saa7110a TV decoder
10262306a36Sopenharmony_ci* Analog Devices adv7176 TV encoder
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
10562306a36Sopenharmony_civideocodec, saa7110, adv7175, zr36060, zr36067
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ciInputs/outputs: Composite, S-video and Internal
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ciCard number: 1
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciPinnacle/Miro DC10+
11462306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci* Zoran zr36067 PCI controller
11762306a36Sopenharmony_ci* Zoran zr36060 MJPEG codec
11862306a36Sopenharmony_ci* Philips saa7110a TV decoder
11962306a36Sopenharmony_ci* Analog Devices adv7176 TV encoder
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
12262306a36Sopenharmony_civideocodec, saa7110, adv7175, zr36060, zr36067
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ciInputs/outputs: Composite, S-video and Internal
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ciNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ciCard number: 2
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ciPinnacle/Miro DC10(old)
13162306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci* Zoran zr36057 PCI controller
13462306a36Sopenharmony_ci* Zoran zr36050 MJPEG codec
13562306a36Sopenharmony_ci* Zoran zr36016 Video Front End or Fuji md0211 Video Front End (clone?)
13662306a36Sopenharmony_ci* Micronas vpx3220a TV decoder
13762306a36Sopenharmony_ci* mse3000 TV encoder or Analog Devices adv7176 TV encoder
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
14062306a36Sopenharmony_civideocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ciInputs/outputs: Composite, S-video and Internal
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ciNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciCard number: 0
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ciPinnacle/Miro DC30
14962306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci* Zoran zr36057 PCI controller
15262306a36Sopenharmony_ci* Zoran zr36050 MJPEG codec
15362306a36Sopenharmony_ci* Zoran zr36016 Video Front End
15462306a36Sopenharmony_ci* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
15562306a36Sopenharmony_ci* Analog Devices adv7176 TV encoder
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
15862306a36Sopenharmony_civideocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ciInputs/outputs: Composite, S-video and Internal
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ciNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ciCard number: 3
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciPinnacle/Miro DC30+
16762306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci* Zoran zr36067 PCI controller
17062306a36Sopenharmony_ci* Zoran zr36050 MJPEG codec
17162306a36Sopenharmony_ci* Zoran zr36016 Video Front End
17262306a36Sopenharmony_ci* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
17362306a36Sopenharmony_ci* Analog Devices adv7176 TV encoder
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ciDrivers to use: videodev, i2c-core, i2c-algo-bit,
17662306a36Sopenharmony_civideocodec, vpx3220/vpx3224, adv7175, zr36050, zr36015, zr36067
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ciInputs/outputs: Composite, S-video and Internal
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ciNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ciCard number: 4
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci.. note::
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci   #) No module for the mse3000 is available yet
18762306a36Sopenharmony_ci   #) No module for the vpx3224 is available yet
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci1.1 What the TV decoder can do an what not
19062306a36Sopenharmony_ci------------------------------------------
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ciThe best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that
19362306a36Sopenharmony_ciinformation is not enough. There are several formats of the TV standards.
19462306a36Sopenharmony_ciAnd not every TV decoder is able to handle every format. Also the every
19562306a36Sopenharmony_cicombination is supported by the driver. There are currently 11 different
19662306a36Sopenharmony_citv broadcast formats all aver the world.
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ciThe CCIR defines parameters needed for broadcasting the signal.
19962306a36Sopenharmony_ciThe CCIR has defined different standards: A,B,D,E,F,G,D,H,I,K,K1,L,M,N,...
20062306a36Sopenharmony_ciThe CCIR says not much about the colorsystem used !!!
20162306a36Sopenharmony_ciAnd talking about a colorsystem says not to much about how it is broadcast.
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ciThe CCIR standards A,E,F are not used any more.
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ciWhen you speak about NTSC, you usually mean the standard: CCIR - M using
20662306a36Sopenharmony_cithe NTSC colorsystem which is used in the USA, Japan, Mexico, Canada
20762306a36Sopenharmony_ciand a few others.
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ciWhen you talk about PAL, you usually mean: CCIR - B/G using the PAL
21062306a36Sopenharmony_cicolorsystem which is used in many Countries.
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ciWhen you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem
21362306a36Sopenharmony_ciwhich is used in France, and a few others.
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ciThere the other version of SECAM, CCIR - D/K is used in Bulgaria, China,
21662306a36Sopenharmony_ciSlovakai, Hungary, Korea (Rep.), Poland, Rumania and a others.
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ciThe CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in
21962306a36Sopenharmony_ciEgypt, Libya, Sri Lanka, Syrain Arab. Rep.
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ciThe CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong,
22262306a36Sopenharmony_ciIreland, Nigeria, South Africa.
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ciThe CCIR - N uses the PAL colorsystem and PAL frame size but the NTSC framerate,
22562306a36Sopenharmony_ciand is used in Argentinia, Uruguay, an a few others
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ciWe do not talk about how the audio is broadcast !
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ciA rather good sites about the TV standards are:
23062306a36Sopenharmony_cihttp://www.sony.jp/support/
23162306a36Sopenharmony_cihttp://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/
23262306a36Sopenharmony_ciand http://www.cabl.com/restaurant/channel.html
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ciOther weird things around: NTSC 4.43 is a modificated NTSC, which is mainly
23562306a36Sopenharmony_ciused in PAL VCR's that are able to play back NTSC. PAL 60 seems to be the same
23662306a36Sopenharmony_cias NTSC 4.43 . The Datasheets also talk about NTSC 44, It seems as if it would
23762306a36Sopenharmony_cibe the same as NTSC 4.43.
23862306a36Sopenharmony_ciNTSC Combs seems to be a decoder mode where the decoder uses a comb filter
23962306a36Sopenharmony_cito split coma and luma instead of a Delay line.
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ciBut I did not defiantly find out what NTSC Comb is.
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ciPhilips saa7111 TV decoder
24462306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci- was introduced in 1997, is used in the BUZ and
24762306a36Sopenharmony_ci- can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ciPhilips saa7110a TV decoder
25062306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_ci- was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and
25362306a36Sopenharmony_ci- can handle: PAL B/G, NTSC M and SECAM
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ciPhilips saa7114 TV decoder
25662306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_ci- was introduced in 2000, is used in the LML33R10 and
25962306a36Sopenharmony_ci- can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ciBrooktree bt819 TV decoder
26262306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ci- was introduced in 1996, and is used in the LML33 and
26562306a36Sopenharmony_ci- can handle: PAL B/D/G/H/I, NTSC M
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ciMicronas vpx3220a TV decoder
26862306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26962306a36Sopenharmony_ci
27062306a36Sopenharmony_ci- was introduced in 1996, is used in the DC30 and DC30+ and
27162306a36Sopenharmony_ci- can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC 44, PAL 60, SECAM,NTSC Comb
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ciSamsung ks0127 TV decoder
27462306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ci- is used in the AVS6EYES card and
27762306a36Sopenharmony_ci- can handle: NTSC-M/N/44, PAL-M/N/B/G/H/I/D/K/L and SECAM
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ci
28062306a36Sopenharmony_ciWhat the TV encoder can do an what not
28162306a36Sopenharmony_ci--------------------------------------
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_ciThe TV encoder is doing the "same" as the decoder, but in the other direction.
28462306a36Sopenharmony_ciYou feed them digital data and the generate a Composite or SVHS signal.
28562306a36Sopenharmony_ciFor information about the colorsystems and TV norm take a look in the
28662306a36Sopenharmony_ciTV decoder section.
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ciPhilips saa7185 TV Encoder
28962306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ci- was introduced in 1996, is used in the BUZ
29262306a36Sopenharmony_ci- can generate: PAL B/G, NTSC M
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ciBrooktree bt856 TV Encoder
29562306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ci- was introduced in 1994, is used in the LML33
29862306a36Sopenharmony_ci- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina)
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_ciAnalog Devices adv7170 TV Encoder
30162306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci- was introduced in 2000, is used in the LML300R10
30462306a36Sopenharmony_ci- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL 60
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_ciAnalog Devices adv7175 TV Encoder
30762306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_ci- was introduced in 1996, is used in the DC10, DC10+, DC10 old, DC30, DC30+
31062306a36Sopenharmony_ci- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M
31162306a36Sopenharmony_ci
31262306a36Sopenharmony_ciITT mse3000 TV encoder
31362306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci- was introduced in 1991, is used in the DC10 old
31662306a36Sopenharmony_ci- can generate: PAL , NTSC , SECAM
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_ciConexant bt866 TV encoder
31962306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~
32062306a36Sopenharmony_ci
32162306a36Sopenharmony_ci- is used in AVS6EYES, and
32262306a36Sopenharmony_ci- can generate: NTSC/PAL, PAL-M, PAL-N
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ciThe adv717x, should be able to produce PAL N. But you find nothing PAL N
32562306a36Sopenharmony_cispecific in the registers. Seem that you have to reuse a other standard
32662306a36Sopenharmony_cito generate PAL N, maybe it would work if you use the PAL M settings.
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ciHow do I get this damn thing to work
32962306a36Sopenharmony_ci------------------------------------
33062306a36Sopenharmony_ci
33162306a36Sopenharmony_ciLoad zr36067.o. If it can't autodetect your card, use the card=X insmod
33262306a36Sopenharmony_cioption with X being the card number as given in the previous section.
33362306a36Sopenharmony_ciTo have more than one card, use card=X1[,X2[,X3,[X4[..]]]]
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ciTo automate this, add the following to your /etc/modprobe.d/zoran.conf:
33662306a36Sopenharmony_ci
33762306a36Sopenharmony_cioptions zr36067 card=X1[,X2[,X3[,X4[..]]]]
33862306a36Sopenharmony_cialias char-major-81-0 zr36067
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ciOne thing to keep in mind is that this doesn't load zr36067.o itself yet. It
34162306a36Sopenharmony_cijust automates loading. If you start using xawtv, the device won't load on
34262306a36Sopenharmony_cisome systems, since you're trying to load modules as a user, which is not
34362306a36Sopenharmony_ciallowed ("permission denied"). A quick workaround is to add 'Load "v4l"' to
34462306a36Sopenharmony_ciXF86Config-4 when you use X by default, or to run 'v4l-conf -c <device>' in
34562306a36Sopenharmony_cione of your startup scripts (normally rc.local) if you don't use X. Both
34662306a36Sopenharmony_cimake sure that the modules are loaded on startup, under the root account.
34762306a36Sopenharmony_ci
34862306a36Sopenharmony_ciWhat mainboard should I use (or why doesn't my card work)
34962306a36Sopenharmony_ci---------------------------------------------------------
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_ci<insert lousy disclaimer here>. In short: good=SiS/Intel, bad=VIA.
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ciExperience tells us that people with a Buz, on average, have more problems
35562306a36Sopenharmony_cithan users with a DC10+/LML33. Also, it tells us that people owning a VIA-
35662306a36Sopenharmony_cibased mainboard (ktXXX, MVP3) have more problems than users with a mainboard
35762306a36Sopenharmony_cibased on a different chipset. Here's some notes from Andrew Stevens:
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_ciHere's my experience of using LML33 and Buz on various motherboards:
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_ci- VIA MVP3
36262306a36Sopenharmony_ci	- Forget it. Pointless. Doesn't work.
36362306a36Sopenharmony_ci- Intel 430FX (Pentium 200)
36462306a36Sopenharmony_ci	- LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie)
36562306a36Sopenharmony_ci- Intel 440BX (early stepping)
36662306a36Sopenharmony_ci	- LML33 tolerable. Buz starting to get annoying (6-10 frames/hour)
36762306a36Sopenharmony_ci- Intel 440BX (late stepping)
36862306a36Sopenharmony_ci	- Buz tolerable, LML3 almost perfect (occasional single frame drops)
36962306a36Sopenharmony_ci- SiS735
37062306a36Sopenharmony_ci	- LML33 perfect, Buz tolerable.
37162306a36Sopenharmony_ci- VIA KT133(*)
37262306a36Sopenharmony_ci	- LML33 starting to get annoying, Buz poor enough that I have up.
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ci- Both 440BX boards were dual CPU versions.
37562306a36Sopenharmony_ci
37662306a36Sopenharmony_ciBernhard Praschinger later added:
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_ci- AMD 751
37962306a36Sopenharmony_ci	- Buz perfect-tolerable
38062306a36Sopenharmony_ci- AMD 760
38162306a36Sopenharmony_ci	- Buz perfect-tolerable
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ciIn general, people on the user mailinglist won't give you much of a chance
38462306a36Sopenharmony_ciif you have a VIA-based motherboard. They may be cheap, but sometimes, you'd
38562306a36Sopenharmony_cirather want to spend some more money on better boards. In general, VIA
38662306a36Sopenharmony_cimainboard's IDE/PCI performance will also suck badly compared to others.
38762306a36Sopenharmony_ciYou'll noticed the DC10+/DC30+ aren't mentioned anywhere in the overview.
38862306a36Sopenharmony_ciBasically, you can assume that if the Buz works, the LML33 will work too. If
38962306a36Sopenharmony_cithe LML33 works, the DC10+/DC30+ will work too. They're most tolerant to
39062306a36Sopenharmony_cidifferent mainboard chipsets from all of the supported cards.
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_ciIf you experience timeouts during capture, buy a better mainboard or lower
39362306a36Sopenharmony_cithe quality/buffersize during capture (see 'Concerning buffer sizes, quality,
39462306a36Sopenharmony_cioutput size etc.'). If it hangs, there's little we can do as of now. Check
39562306a36Sopenharmony_ciyour IRQs and make sure the card has its own interrupts.
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ciProgramming interface
39862306a36Sopenharmony_ci---------------------
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_ciThis driver conforms to video4linux2. Support for V4L1 and for the custom
40162306a36Sopenharmony_cizoran ioctls has been removed in kernel 2.6.38.
40262306a36Sopenharmony_ci
40362306a36Sopenharmony_ciFor programming example, please, look at lavrec.c and lavplay.c code in
40462306a36Sopenharmony_cithe MJPEG-tools (http://mjpeg.sf.net/).
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_ciAdditional notes for software developers:
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ci   The driver returns maxwidth and maxheight parameters according to
40962306a36Sopenharmony_ci   the current TV standard (norm). Therefore, the software which
41062306a36Sopenharmony_ci   communicates with the driver and "asks" for these parameters should
41162306a36Sopenharmony_ci   first set the correct norm. Well, it seems logically correct: TV
41262306a36Sopenharmony_ci   standard is "more constant" for current country than geometry
41362306a36Sopenharmony_ci   settings of a variety of TV capture cards which may work in ITU or
41462306a36Sopenharmony_ci   square pixel format.
41562306a36Sopenharmony_ci
41662306a36Sopenharmony_ciApplications
41762306a36Sopenharmony_ci------------
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ciApplications known to work with this driver:
42062306a36Sopenharmony_ci
42162306a36Sopenharmony_ciTV viewing:
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ci* xawtv
42462306a36Sopenharmony_ci* kwintv
42562306a36Sopenharmony_ci* probably any TV application that supports video4linux or video4linux2.
42662306a36Sopenharmony_ci
42762306a36Sopenharmony_ciMJPEG capture/playback:
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_ci* mjpegtools/lavtools (or Linux Video Studio)
43062306a36Sopenharmony_ci* gstreamer
43162306a36Sopenharmony_ci* mplayer
43262306a36Sopenharmony_ci
43362306a36Sopenharmony_ciGeneral raw capture:
43462306a36Sopenharmony_ci
43562306a36Sopenharmony_ci* xawtv
43662306a36Sopenharmony_ci* gstreamer
43762306a36Sopenharmony_ci* probably any application that supports video4linux or video4linux2
43862306a36Sopenharmony_ci
43962306a36Sopenharmony_ciVideo editing:
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_ci* Cinelerra
44262306a36Sopenharmony_ci* MainActor
44362306a36Sopenharmony_ci* mjpegtools (or Linux Video Studio)
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_ci
44662306a36Sopenharmony_ciConcerning buffer sizes, quality, output size etc.
44762306a36Sopenharmony_ci--------------------------------------------------
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_ci
45062306a36Sopenharmony_ciThe zr36060 can do 1:2 JPEG compression. This is really the theoretical
45162306a36Sopenharmony_cimaximum that the chipset can reach. The driver can, however, limit compression
45262306a36Sopenharmony_cito a maximum (size) of 1:4. The reason for this is that some cards (e.g. Buz)
45362306a36Sopenharmony_cican't handle 1:2 compression without stopping capture after only a few minutes.
45462306a36Sopenharmony_ciWith 1:4, it'll mostly work. If you have a Buz, use 'low_bitrate=1' to go into
45562306a36Sopenharmony_ci1:4 max. compression mode.
45662306a36Sopenharmony_ci
45762306a36Sopenharmony_ci100% JPEG quality is thus 1:2 compression in practice. So for a full PAL frame
45862306a36Sopenharmony_ci(size 720x576). The JPEG fields are stored in YUY2 format, so the size of the
45962306a36Sopenharmony_cifields are 720x288x16/2 bits/field (2 fields/frame) = 207360 bytes/field x 2 =
46062306a36Sopenharmony_ci414720 bytes/frame (add some more bytes for headers and DHT (huffman)/DQT
46162306a36Sopenharmony_ci(quantization) tables, and you'll get to something like 512kB per frame for
46262306a36Sopenharmony_ci1:2 compression. For 1:4 compression, you'd have frames of half this size.
46362306a36Sopenharmony_ci
46462306a36Sopenharmony_ciSome additional explanation by Martin Samuelsson, which also explains the
46562306a36Sopenharmony_ciimportance of buffer sizes:
46662306a36Sopenharmony_ci--
46762306a36Sopenharmony_ci> Hmm, I do not think it is really that way. With the current (downloaded
46862306a36Sopenharmony_ci> at 18:00 Monday) driver I get that output sizes for 10 sec:
46962306a36Sopenharmony_ci> -q 50 -b 128 : 24.283.332 Bytes
47062306a36Sopenharmony_ci> -q 50 -b 256 : 48.442.368
47162306a36Sopenharmony_ci> -q 25 -b 128 : 24.655.992
47262306a36Sopenharmony_ci> -q 25 -b 256 : 25.859.820
47362306a36Sopenharmony_ci
47462306a36Sopenharmony_ciI woke up, and can't go to sleep again. I'll kill some time explaining why
47562306a36Sopenharmony_cithis doesn't look strange to me.
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ciLet's do some math using a width of 704 pixels. I'm not sure whether the Buz
47862306a36Sopenharmony_ciactually use that number or not, but that's not too important right now.
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ci704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block;
48162306a36Sopenharmony_ci3168 blocks per field. Each pixel consist of two bytes; 128 bytes per block;
48262306a36Sopenharmony_ci1024 bits per block. 100% in the new driver mean 1:2 compression; the maximum
48362306a36Sopenharmony_cioutput becomes 512 bits per block. Actually 510, but 512 is simpler to use
48462306a36Sopenharmony_cifor calculations.
48562306a36Sopenharmony_ci
48662306a36Sopenharmony_ciLet's say that we specify d1q50. We thus want 256 bits per block; times 3168
48762306a36Sopenharmony_cibecomes 811008 bits; 101376 bytes per field. We're talking raw bits and bytes
48862306a36Sopenharmony_cihere, so we don't need to do any fancy corrections for bits-per-pixel or such
48962306a36Sopenharmony_cithings. 101376 bytes per field.
49062306a36Sopenharmony_ci
49162306a36Sopenharmony_cid1 video contains two fields per frame. Those sum up to 202752 bytes per
49262306a36Sopenharmony_ciframe, and one of those frames goes into each buffer.
49362306a36Sopenharmony_ci
49462306a36Sopenharmony_ciBut wait a second! -b128 gives 128kB buffers! It's not possible to cram
49562306a36Sopenharmony_ci202752 bytes of JPEG data into 128kB!
49662306a36Sopenharmony_ci
49762306a36Sopenharmony_ciThis is what the driver notice and automatically compensate for in your
49862306a36Sopenharmony_ciexamples. Let's do some math using this information:
49962306a36Sopenharmony_ci
50062306a36Sopenharmony_ci128kB is 131072 bytes. In this buffer, we want to store two fields, which
50162306a36Sopenharmony_cileaves 65536 bytes for each field. Using 3168 blocks per field, we get
50262306a36Sopenharmony_ci20.68686868... available bytes per block; 165 bits. We can't allow the
50362306a36Sopenharmony_cirequest for 256 bits per block when there's only 165 bits available! The -q50
50462306a36Sopenharmony_cioption is silently overridden, and the -b128 option takes precedence, leaving
50562306a36Sopenharmony_cius with the equivalence of -q32.
50662306a36Sopenharmony_ci
50762306a36Sopenharmony_ciThis gives us a data rate of 165 bits per block, which, times 3168, sums up
50862306a36Sopenharmony_cito 65340 bytes per field, out of the allowed 65536. The current driver has
50962306a36Sopenharmony_cianother level of rate limiting; it won't accept -q values that fill more than
51062306a36Sopenharmony_ci6/8 of the specified buffers. (I'm not sure why. "Playing it safe" seem to be
51162306a36Sopenharmony_cia safe bet. Personally, I think I would have lowered requested-bits-per-block
51262306a36Sopenharmony_ciby one, or something like that.) We can't use 165 bits per block, but have to
51362306a36Sopenharmony_cilower it again, to 6/8 of the available buffer space: We end up with 124 bits
51462306a36Sopenharmony_ciper block, the equivalence of -q24. With 128kB buffers, you can't use greater
51562306a36Sopenharmony_cithan -q24 at -d1. (And PAL, and 704 pixels width...)
51662306a36Sopenharmony_ci
51762306a36Sopenharmony_ciThe third example is limited to -q24 through the same process. The second
51862306a36Sopenharmony_ciexample, using very similar calculations, is limited to -q48. The only
51962306a36Sopenharmony_ciexample that actually grab at the specified -q value is the last one, which
52062306a36Sopenharmony_ciis clearly visible, looking at the file size.
52162306a36Sopenharmony_ci--
52262306a36Sopenharmony_ci
52362306a36Sopenharmony_ciConclusion: the quality of the resulting movie depends on buffer size, quality,
52462306a36Sopenharmony_ciwhether or not you use 'low_bitrate=1' as insmod option for the zr36060.c
52562306a36Sopenharmony_cimodule to do 1:4 instead of 1:2 compression, etc.
52662306a36Sopenharmony_ci
52762306a36Sopenharmony_ciIf you experience timeouts, lowering the quality/buffersize or using
52862306a36Sopenharmony_ci'low_bitrate=1 as insmod option for zr36060.o might actually help, as is
52962306a36Sopenharmony_ciproven by the Buz.
53062306a36Sopenharmony_ci
53162306a36Sopenharmony_ciIt hangs/crashes/fails/whatevers! Help!
53262306a36Sopenharmony_ci---------------------------------------
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ciMake sure that the card has its own interrupts (see /proc/interrupts), check
53562306a36Sopenharmony_cithe output of dmesg at high verbosity (load zr36067.o with debug=2,
53662306a36Sopenharmony_ciload all other modules with debug=1). Check that your mainboard is favorable
53762306a36Sopenharmony_ci(see question 2) and if not, test the card in another computer. Also see the
53862306a36Sopenharmony_cinotes given in question 3 and try lowering quality/buffersize/capturesize
53962306a36Sopenharmony_ciif recording fails after a period of time.
54062306a36Sopenharmony_ci
54162306a36Sopenharmony_ciIf all this doesn't help, give a clear description of the problem including
54262306a36Sopenharmony_cidetailed hardware information (memory+brand, mainboard+chipset+brand, which
54362306a36Sopenharmony_ciMJPEG card, processor, other PCI cards that might be of interest), give the
54462306a36Sopenharmony_cisystem PnP information (/proc/interrupts, /proc/dma, /proc/devices), and give
54562306a36Sopenharmony_cithe kernel version, driver version, glibc version, gcc version and any other
54662306a36Sopenharmony_ciinformation that might possibly be of interest. Also provide the dmesg output
54762306a36Sopenharmony_ciat high verbosity. See 'Contacting' on how to contact the developers.
54862306a36Sopenharmony_ci
54962306a36Sopenharmony_ciMaintainers/Contacting
55062306a36Sopenharmony_ci----------------------
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ciPrevious maintainers/developers of this driver are
55362306a36Sopenharmony_ci- Laurent Pinchart <laurent.pinchart@skynet.be>
55462306a36Sopenharmony_ci- Ronald Bultje rbultje@ronald.bitfreak.net
55562306a36Sopenharmony_ci- Serguei Miridonov <mirsev@cicese.mx>
55662306a36Sopenharmony_ci- Wolfgang Scherr <scherr@net4you.net>
55762306a36Sopenharmony_ci- Dave Perks <dperks@ibm.net>
55862306a36Sopenharmony_ci- Rainer Johanni <Rainer@Johanni.de>
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_ciDriver's License
56162306a36Sopenharmony_ci----------------
56262306a36Sopenharmony_ci
56362306a36Sopenharmony_ci    This driver is distributed under the terms of the General Public License.
56462306a36Sopenharmony_ci
56562306a36Sopenharmony_ci    This program is free software; you can redistribute it and/or modify
56662306a36Sopenharmony_ci    it under the terms of the GNU General Public License as published by
56762306a36Sopenharmony_ci    the Free Software Foundation; either version 2 of the License, or
56862306a36Sopenharmony_ci    (at your option) any later version.
56962306a36Sopenharmony_ci
57062306a36Sopenharmony_ci    This program is distributed in the hope that it will be useful,
57162306a36Sopenharmony_ci    but WITHOUT ANY WARRANTY; without even the implied warranty of
57262306a36Sopenharmony_ci    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
57362306a36Sopenharmony_ci    GNU General Public License for more details.
57462306a36Sopenharmony_ci
57562306a36Sopenharmony_ciSee http://www.gnu.org/ for more information.
576