1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThe Zoran driver 4*4882a593Smuzhiyun================ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyununified zoran driver (zr360x7, zoran, buz, dc10(+), dc30(+), lml33) 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunwebsite: http://mjpeg.sourceforge.net/driver-zoran/ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunFrequently Asked Questions 12*4882a593Smuzhiyun-------------------------- 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunWhat cards are supported 15*4882a593Smuzhiyun------------------------ 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunIomega Buz, Linux Media Labs LML33/LML33R10, Pinnacle/Miro 18*4882a593SmuzhiyunDC10/DC10+/DC30/DC30+ and related boards (available under various names). 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunIomega Buz 21*4882a593Smuzhiyun~~~~~~~~~~ 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun* Zoran zr36067 PCI controller 24*4882a593Smuzhiyun* Zoran zr36060 MJPEG codec 25*4882a593Smuzhiyun* Philips saa7111 TV decoder 26*4882a593Smuzhiyun* Philips saa7185 TV encoder 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 29*4882a593Smuzhiyunvideocodec, saa7111, saa7185, zr36060, zr36067 30*4882a593Smuzhiyun 31*4882a593SmuzhiyunInputs/outputs: Composite and S-video 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunNorms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunCard number: 7 36*4882a593Smuzhiyun 37*4882a593SmuzhiyunAverMedia 6 Eyes AVS6EYES 38*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~ 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun* Zoran zr36067 PCI controller 41*4882a593Smuzhiyun* Zoran zr36060 MJPEG codec 42*4882a593Smuzhiyun* Samsung ks0127 TV decoder 43*4882a593Smuzhiyun* Conexant bt866 TV encoder 44*4882a593Smuzhiyun 45*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 46*4882a593Smuzhiyunvideocodec, ks0127, bt866, zr36060, zr36067 47*4882a593Smuzhiyun 48*4882a593SmuzhiyunInputs/outputs: 49*4882a593Smuzhiyun Six physical inputs. 1-6 are composite, 50*4882a593Smuzhiyun 1-2, 3-4, 5-6 doubles as S-video, 51*4882a593Smuzhiyun 1-3 triples as component. 52*4882a593Smuzhiyun One composite output. 53*4882a593Smuzhiyun 54*4882a593SmuzhiyunNorms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 55*4882a593Smuzhiyun 56*4882a593SmuzhiyunCard number: 8 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun.. note:: 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun Not autodetected, card=8 is necessary. 61*4882a593Smuzhiyun 62*4882a593SmuzhiyunLinux Media Labs LML33 63*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~ 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun* Zoran zr36067 PCI controller 66*4882a593Smuzhiyun* Zoran zr36060 MJPEG codec 67*4882a593Smuzhiyun* Brooktree bt819 TV decoder 68*4882a593Smuzhiyun* Brooktree bt856 TV encoder 69*4882a593Smuzhiyun 70*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 71*4882a593Smuzhiyunvideocodec, bt819, bt856, zr36060, zr36067 72*4882a593Smuzhiyun 73*4882a593SmuzhiyunInputs/outputs: Composite and S-video 74*4882a593Smuzhiyun 75*4882a593SmuzhiyunNorms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 76*4882a593Smuzhiyun 77*4882a593SmuzhiyunCard number: 5 78*4882a593Smuzhiyun 79*4882a593SmuzhiyunLinux Media Labs LML33R10 80*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~ 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun* Zoran zr36067 PCI controller 83*4882a593Smuzhiyun* Zoran zr36060 MJPEG codec 84*4882a593Smuzhiyun* Philips saa7114 TV decoder 85*4882a593Smuzhiyun* Analog Devices adv7170 TV encoder 86*4882a593Smuzhiyun 87*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 88*4882a593Smuzhiyunvideocodec, saa7114, adv7170, zr36060, zr36067 89*4882a593Smuzhiyun 90*4882a593SmuzhiyunInputs/outputs: Composite and S-video 91*4882a593Smuzhiyun 92*4882a593SmuzhiyunNorms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) 93*4882a593Smuzhiyun 94*4882a593SmuzhiyunCard number: 6 95*4882a593Smuzhiyun 96*4882a593SmuzhiyunPinnacle/Miro DC10(new) 97*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~ 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun* Zoran zr36057 PCI controller 100*4882a593Smuzhiyun* Zoran zr36060 MJPEG codec 101*4882a593Smuzhiyun* Philips saa7110a TV decoder 102*4882a593Smuzhiyun* Analog Devices adv7176 TV encoder 103*4882a593Smuzhiyun 104*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 105*4882a593Smuzhiyunvideocodec, saa7110, adv7175, zr36060, zr36067 106*4882a593Smuzhiyun 107*4882a593SmuzhiyunInputs/outputs: Composite, S-video and Internal 108*4882a593Smuzhiyun 109*4882a593SmuzhiyunNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 110*4882a593Smuzhiyun 111*4882a593SmuzhiyunCard number: 1 112*4882a593Smuzhiyun 113*4882a593SmuzhiyunPinnacle/Miro DC10+ 114*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~ 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun* Zoran zr36067 PCI controller 117*4882a593Smuzhiyun* Zoran zr36060 MJPEG codec 118*4882a593Smuzhiyun* Philips saa7110a TV decoder 119*4882a593Smuzhiyun* Analog Devices adv7176 TV encoder 120*4882a593Smuzhiyun 121*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 122*4882a593Smuzhiyunvideocodec, saa7110, adv7175, zr36060, zr36067 123*4882a593Smuzhiyun 124*4882a593SmuzhiyunInputs/outputs: Composite, S-video and Internal 125*4882a593Smuzhiyun 126*4882a593SmuzhiyunNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 127*4882a593Smuzhiyun 128*4882a593SmuzhiyunCard number: 2 129*4882a593Smuzhiyun 130*4882a593SmuzhiyunPinnacle/Miro DC10(old) 131*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~ 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun* Zoran zr36057 PCI controller 134*4882a593Smuzhiyun* Zoran zr36050 MJPEG codec 135*4882a593Smuzhiyun* Zoran zr36016 Video Front End or Fuji md0211 Video Front End (clone?) 136*4882a593Smuzhiyun* Micronas vpx3220a TV decoder 137*4882a593Smuzhiyun* mse3000 TV encoder or Analog Devices adv7176 TV encoder 138*4882a593Smuzhiyun 139*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 140*4882a593Smuzhiyunvideocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067 141*4882a593Smuzhiyun 142*4882a593SmuzhiyunInputs/outputs: Composite, S-video and Internal 143*4882a593Smuzhiyun 144*4882a593SmuzhiyunNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 145*4882a593Smuzhiyun 146*4882a593SmuzhiyunCard number: 0 147*4882a593Smuzhiyun 148*4882a593SmuzhiyunPinnacle/Miro DC30 149*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~ 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun* Zoran zr36057 PCI controller 152*4882a593Smuzhiyun* Zoran zr36050 MJPEG codec 153*4882a593Smuzhiyun* Zoran zr36016 Video Front End 154*4882a593Smuzhiyun* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder 155*4882a593Smuzhiyun* Analog Devices adv7176 TV encoder 156*4882a593Smuzhiyun 157*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 158*4882a593Smuzhiyunvideocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067 159*4882a593Smuzhiyun 160*4882a593SmuzhiyunInputs/outputs: Composite, S-video and Internal 161*4882a593Smuzhiyun 162*4882a593SmuzhiyunNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 163*4882a593Smuzhiyun 164*4882a593SmuzhiyunCard number: 3 165*4882a593Smuzhiyun 166*4882a593SmuzhiyunPinnacle/Miro DC30+ 167*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~ 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun* Zoran zr36067 PCI controller 170*4882a593Smuzhiyun* Zoran zr36050 MJPEG codec 171*4882a593Smuzhiyun* Zoran zr36016 Video Front End 172*4882a593Smuzhiyun* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder 173*4882a593Smuzhiyun* Analog Devices adv7176 TV encoder 174*4882a593Smuzhiyun 175*4882a593SmuzhiyunDrivers to use: videodev, i2c-core, i2c-algo-bit, 176*4882a593Smuzhiyunvideocodec, vpx3220/vpx3224, adv7175, zr36050, zr36015, zr36067 177*4882a593Smuzhiyun 178*4882a593SmuzhiyunInputs/outputs: Composite, S-video and Internal 179*4882a593Smuzhiyun 180*4882a593SmuzhiyunNorms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) 181*4882a593Smuzhiyun 182*4882a593SmuzhiyunCard number: 4 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun.. note:: 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun #) No module for the mse3000 is available yet 187*4882a593Smuzhiyun #) No module for the vpx3224 is available yet 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun1.1 What the TV decoder can do an what not 190*4882a593Smuzhiyun------------------------------------------ 191*4882a593Smuzhiyun 192*4882a593SmuzhiyunThe best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that 193*4882a593Smuzhiyuninformation is not enough. There are several formats of the TV standards. 194*4882a593SmuzhiyunAnd not every TV decoder is able to handle every format. Also the every 195*4882a593Smuzhiyuncombination is supported by the driver. There are currently 11 different 196*4882a593Smuzhiyuntv broadcast formats all aver the world. 197*4882a593Smuzhiyun 198*4882a593SmuzhiyunThe CCIR defines parameters needed for broadcasting the signal. 199*4882a593SmuzhiyunThe CCIR has defined different standards: A,B,D,E,F,G,D,H,I,K,K1,L,M,N,... 200*4882a593SmuzhiyunThe CCIR says not much about the colorsystem used !!! 201*4882a593SmuzhiyunAnd talking about a colorsystem says not to much about how it is broadcast. 202*4882a593Smuzhiyun 203*4882a593SmuzhiyunThe CCIR standards A,E,F are not used any more. 204*4882a593Smuzhiyun 205*4882a593SmuzhiyunWhen you speak about NTSC, you usually mean the standard: CCIR - M using 206*4882a593Smuzhiyunthe NTSC colorsystem which is used in the USA, Japan, Mexico, Canada 207*4882a593Smuzhiyunand a few others. 208*4882a593Smuzhiyun 209*4882a593SmuzhiyunWhen you talk about PAL, you usually mean: CCIR - B/G using the PAL 210*4882a593Smuzhiyuncolorsystem which is used in many Countries. 211*4882a593Smuzhiyun 212*4882a593SmuzhiyunWhen you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem 213*4882a593Smuzhiyunwhich is used in France, and a few others. 214*4882a593Smuzhiyun 215*4882a593SmuzhiyunThere the other version of SECAM, CCIR - D/K is used in Bulgaria, China, 216*4882a593SmuzhiyunSlovakai, Hungary, Korea (Rep.), Poland, Rumania and a others. 217*4882a593Smuzhiyun 218*4882a593SmuzhiyunThe CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in 219*4882a593SmuzhiyunEgypt, Libya, Sri Lanka, Syrain Arab. Rep. 220*4882a593Smuzhiyun 221*4882a593SmuzhiyunThe CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong, 222*4882a593SmuzhiyunIreland, Nigeria, South Africa. 223*4882a593Smuzhiyun 224*4882a593SmuzhiyunThe CCIR - N uses the PAL colorsystem and PAL frame size but the NTSC framerate, 225*4882a593Smuzhiyunand is used in Argentinia, Uruguay, an a few others 226*4882a593Smuzhiyun 227*4882a593SmuzhiyunWe do not talk about how the audio is broadcast ! 228*4882a593Smuzhiyun 229*4882a593SmuzhiyunA rather good sites about the TV standards are: 230*4882a593Smuzhiyunhttp://www.sony.jp/support/ 231*4882a593Smuzhiyunhttp://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/ 232*4882a593Smuzhiyunand http://www.cabl.com/restaurant/channel.html 233*4882a593Smuzhiyun 234*4882a593SmuzhiyunOther weird things around: NTSC 4.43 is a modificated NTSC, which is mainly 235*4882a593Smuzhiyunused in PAL VCR's that are able to play back NTSC. PAL 60 seems to be the same 236*4882a593Smuzhiyunas NTSC 4.43 . The Datasheets also talk about NTSC 44, It seems as if it would 237*4882a593Smuzhiyunbe the same as NTSC 4.43. 238*4882a593SmuzhiyunNTSC Combs seems to be a decoder mode where the decoder uses a comb filter 239*4882a593Smuzhiyunto split coma and luma instead of a Delay line. 240*4882a593Smuzhiyun 241*4882a593SmuzhiyunBut I did not defiantly find out what NTSC Comb is. 242*4882a593Smuzhiyun 243*4882a593SmuzhiyunPhilips saa7111 TV decoder 244*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~ 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun- was introduced in 1997, is used in the BUZ and 247*4882a593Smuzhiyun- can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM 248*4882a593Smuzhiyun 249*4882a593SmuzhiyunPhilips saa7110a TV decoder 250*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~ 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun- was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and 253*4882a593Smuzhiyun- can handle: PAL B/G, NTSC M and SECAM 254*4882a593Smuzhiyun 255*4882a593SmuzhiyunPhilips saa7114 TV decoder 256*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~ 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun- was introduced in 2000, is used in the LML33R10 and 259*4882a593Smuzhiyun- can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM 260*4882a593Smuzhiyun 261*4882a593SmuzhiyunBrooktree bt819 TV decoder 262*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~ 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun- was introduced in 1996, and is used in the LML33 and 265*4882a593Smuzhiyun- can handle: PAL B/D/G/H/I, NTSC M 266*4882a593Smuzhiyun 267*4882a593SmuzhiyunMicronas vpx3220a TV decoder 268*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun- was introduced in 1996, is used in the DC30 and DC30+ and 271*4882a593Smuzhiyun- can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC 44, PAL 60, SECAM,NTSC Comb 272*4882a593Smuzhiyun 273*4882a593SmuzhiyunSamsung ks0127 TV decoder 274*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~ 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun- is used in the AVS6EYES card and 277*4882a593Smuzhiyun- can handle: NTSC-M/N/44, PAL-M/N/B/G/H/I/D/K/L and SECAM 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun 280*4882a593SmuzhiyunWhat the TV encoder can do an what not 281*4882a593Smuzhiyun-------------------------------------- 282*4882a593Smuzhiyun 283*4882a593SmuzhiyunThe TV encoder is doing the "same" as the decoder, but in the other direction. 284*4882a593SmuzhiyunYou feed them digital data and the generate a Composite or SVHS signal. 285*4882a593SmuzhiyunFor information about the colorsystems and TV norm take a look in the 286*4882a593SmuzhiyunTV decoder section. 287*4882a593Smuzhiyun 288*4882a593SmuzhiyunPhilips saa7185 TV Encoder 289*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~ 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun- was introduced in 1996, is used in the BUZ 292*4882a593Smuzhiyun- can generate: PAL B/G, NTSC M 293*4882a593Smuzhiyun 294*4882a593SmuzhiyunBrooktree bt856 TV Encoder 295*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~ 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun- was introduced in 1994, is used in the LML33 298*4882a593Smuzhiyun- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina) 299*4882a593Smuzhiyun 300*4882a593SmuzhiyunAnalog Devices adv7170 TV Encoder 301*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun- was introduced in 2000, is used in the LML300R10 304*4882a593Smuzhiyun- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL 60 305*4882a593Smuzhiyun 306*4882a593SmuzhiyunAnalog Devices adv7175 TV Encoder 307*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun- was introduced in 1996, is used in the DC10, DC10+, DC10 old, DC30, DC30+ 310*4882a593Smuzhiyun- can generate: PAL B/D/G/H/I/N, PAL M, NTSC M 311*4882a593Smuzhiyun 312*4882a593SmuzhiyunITT mse3000 TV encoder 313*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~ 314*4882a593Smuzhiyun 315*4882a593Smuzhiyun- was introduced in 1991, is used in the DC10 old 316*4882a593Smuzhiyun- can generate: PAL , NTSC , SECAM 317*4882a593Smuzhiyun 318*4882a593SmuzhiyunConexant bt866 TV encoder 319*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~ 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun- is used in AVS6EYES, and 322*4882a593Smuzhiyun- can generate: NTSC/PAL, PALM, PALN 323*4882a593Smuzhiyun 324*4882a593SmuzhiyunThe adv717x, should be able to produce PAL N. But you find nothing PAL N 325*4882a593Smuzhiyunspecific in the registers. Seem that you have to reuse a other standard 326*4882a593Smuzhiyunto generate PAL N, maybe it would work if you use the PAL M settings. 327*4882a593Smuzhiyun 328*4882a593SmuzhiyunHow do I get this damn thing to work 329*4882a593Smuzhiyun------------------------------------ 330*4882a593Smuzhiyun 331*4882a593SmuzhiyunLoad zr36067.o. If it can't autodetect your card, use the card=X insmod 332*4882a593Smuzhiyunoption with X being the card number as given in the previous section. 333*4882a593SmuzhiyunTo have more than one card, use card=X1[,X2[,X3,[X4[..]]]] 334*4882a593Smuzhiyun 335*4882a593SmuzhiyunTo automate this, add the following to your /etc/modprobe.d/zoran.conf: 336*4882a593Smuzhiyun 337*4882a593Smuzhiyunoptions zr36067 card=X1[,X2[,X3[,X4[..]]]] 338*4882a593Smuzhiyunalias char-major-81-0 zr36067 339*4882a593Smuzhiyun 340*4882a593SmuzhiyunOne thing to keep in mind is that this doesn't load zr36067.o itself yet. It 341*4882a593Smuzhiyunjust automates loading. If you start using xawtv, the device won't load on 342*4882a593Smuzhiyunsome systems, since you're trying to load modules as a user, which is not 343*4882a593Smuzhiyunallowed ("permission denied"). A quick workaround is to add 'Load "v4l"' to 344*4882a593SmuzhiyunXF86Config-4 when you use X by default, or to run 'v4l-conf -c <device>' in 345*4882a593Smuzhiyunone of your startup scripts (normally rc.local) if you don't use X. Both 346*4882a593Smuzhiyunmake sure that the modules are loaded on startup, under the root account. 347*4882a593Smuzhiyun 348*4882a593SmuzhiyunWhat mainboard should I use (or why doesn't my card work) 349*4882a593Smuzhiyun--------------------------------------------------------- 350*4882a593Smuzhiyun 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun<insert lousy disclaimer here>. In short: good=SiS/Intel, bad=VIA. 353*4882a593Smuzhiyun 354*4882a593SmuzhiyunExperience tells us that people with a Buz, on average, have more problems 355*4882a593Smuzhiyunthan users with a DC10+/LML33. Also, it tells us that people owning a VIA- 356*4882a593Smuzhiyunbased mainboard (ktXXX, MVP3) have more problems than users with a mainboard 357*4882a593Smuzhiyunbased on a different chipset. Here's some notes from Andrew Stevens: 358*4882a593Smuzhiyun 359*4882a593SmuzhiyunHere's my experience of using LML33 and Buz on various motherboards: 360*4882a593Smuzhiyun 361*4882a593Smuzhiyun- VIA MVP3 362*4882a593Smuzhiyun - Forget it. Pointless. Doesn't work. 363*4882a593Smuzhiyun- Intel 430FX (Pentium 200) 364*4882a593Smuzhiyun - LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie) 365*4882a593Smuzhiyun- Intel 440BX (early stepping) 366*4882a593Smuzhiyun - LML33 tolerable. Buz starting to get annoying (6-10 frames/hour) 367*4882a593Smuzhiyun- Intel 440BX (late stepping) 368*4882a593Smuzhiyun - Buz tolerable, LML3 almost perfect (occasional single frame drops) 369*4882a593Smuzhiyun- SiS735 370*4882a593Smuzhiyun - LML33 perfect, Buz tolerable. 371*4882a593Smuzhiyun- VIA KT133(*) 372*4882a593Smuzhiyun - LML33 starting to get annoying, Buz poor enough that I have up. 373*4882a593Smuzhiyun 374*4882a593Smuzhiyun- Both 440BX boards were dual CPU versions. 375*4882a593Smuzhiyun 376*4882a593SmuzhiyunBernhard Praschinger later added: 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun- AMD 751 379*4882a593Smuzhiyun - Buz perfect-tolerable 380*4882a593Smuzhiyun- AMD 760 381*4882a593Smuzhiyun - Buz perfect-tolerable 382*4882a593Smuzhiyun 383*4882a593SmuzhiyunIn general, people on the user mailinglist won't give you much of a chance 384*4882a593Smuzhiyunif you have a VIA-based motherboard. They may be cheap, but sometimes, you'd 385*4882a593Smuzhiyunrather want to spend some more money on better boards. In general, VIA 386*4882a593Smuzhiyunmainboard's IDE/PCI performance will also suck badly compared to others. 387*4882a593SmuzhiyunYou'll noticed the DC10+/DC30+ aren't mentioned anywhere in the overview. 388*4882a593SmuzhiyunBasically, you can assume that if the Buz works, the LML33 will work too. If 389*4882a593Smuzhiyunthe LML33 works, the DC10+/DC30+ will work too. They're most tolerant to 390*4882a593Smuzhiyundifferent mainboard chipsets from all of the supported cards. 391*4882a593Smuzhiyun 392*4882a593SmuzhiyunIf you experience timeouts during capture, buy a better mainboard or lower 393*4882a593Smuzhiyunthe quality/buffersize during capture (see 'Concerning buffer sizes, quality, 394*4882a593Smuzhiyunoutput size etc.'). If it hangs, there's little we can do as of now. Check 395*4882a593Smuzhiyunyour IRQs and make sure the card has its own interrupts. 396*4882a593Smuzhiyun 397*4882a593SmuzhiyunProgramming interface 398*4882a593Smuzhiyun--------------------- 399*4882a593Smuzhiyun 400*4882a593SmuzhiyunThis driver conforms to video4linux2. Support for V4L1 and for the custom 401*4882a593Smuzhiyunzoran ioctls has been removed in kernel 2.6.38. 402*4882a593Smuzhiyun 403*4882a593SmuzhiyunFor programming example, please, look at lavrec.c and lavplay.c code in 404*4882a593Smuzhiyunthe MJPEG-tools (http://mjpeg.sf.net/). 405*4882a593Smuzhiyun 406*4882a593SmuzhiyunAdditional notes for software developers: 407*4882a593Smuzhiyun 408*4882a593Smuzhiyun The driver returns maxwidth and maxheight parameters according to 409*4882a593Smuzhiyun the current TV standard (norm). Therefore, the software which 410*4882a593Smuzhiyun communicates with the driver and "asks" for these parameters should 411*4882a593Smuzhiyun first set the correct norm. Well, it seems logically correct: TV 412*4882a593Smuzhiyun standard is "more constant" for current country than geometry 413*4882a593Smuzhiyun settings of a variety of TV capture cards which may work in ITU or 414*4882a593Smuzhiyun square pixel format. 415*4882a593Smuzhiyun 416*4882a593SmuzhiyunApplications 417*4882a593Smuzhiyun------------ 418*4882a593Smuzhiyun 419*4882a593SmuzhiyunApplications known to work with this driver: 420*4882a593Smuzhiyun 421*4882a593SmuzhiyunTV viewing: 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun* xawtv 424*4882a593Smuzhiyun* kwintv 425*4882a593Smuzhiyun* probably any TV application that supports video4linux or video4linux2. 426*4882a593Smuzhiyun 427*4882a593SmuzhiyunMJPEG capture/playback: 428*4882a593Smuzhiyun 429*4882a593Smuzhiyun* mjpegtools/lavtools (or Linux Video Studio) 430*4882a593Smuzhiyun* gstreamer 431*4882a593Smuzhiyun* mplayer 432*4882a593Smuzhiyun 433*4882a593SmuzhiyunGeneral raw capture: 434*4882a593Smuzhiyun 435*4882a593Smuzhiyun* xawtv 436*4882a593Smuzhiyun* gstreamer 437*4882a593Smuzhiyun* probably any application that supports video4linux or video4linux2 438*4882a593Smuzhiyun 439*4882a593SmuzhiyunVideo editing: 440*4882a593Smuzhiyun 441*4882a593Smuzhiyun* Cinelerra 442*4882a593Smuzhiyun* MainActor 443*4882a593Smuzhiyun* mjpegtools (or Linux Video Studio) 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun 446*4882a593SmuzhiyunConcerning buffer sizes, quality, output size etc. 447*4882a593Smuzhiyun-------------------------------------------------- 448*4882a593Smuzhiyun 449*4882a593Smuzhiyun 450*4882a593SmuzhiyunThe zr36060 can do 1:2 JPEG compression. This is really the theoretical 451*4882a593Smuzhiyunmaximum that the chipset can reach. The driver can, however, limit compression 452*4882a593Smuzhiyunto a maximum (size) of 1:4. The reason for this is that some cards (e.g. Buz) 453*4882a593Smuzhiyuncan't handle 1:2 compression without stopping capture after only a few minutes. 454*4882a593SmuzhiyunWith 1:4, it'll mostly work. If you have a Buz, use 'low_bitrate=1' to go into 455*4882a593Smuzhiyun1:4 max. compression mode. 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun100% JPEG quality is thus 1:2 compression in practice. So for a full PAL frame 458*4882a593Smuzhiyun(size 720x576). The JPEG fields are stored in YUY2 format, so the size of the 459*4882a593Smuzhiyunfields are 720x288x16/2 bits/field (2 fields/frame) = 207360 bytes/field x 2 = 460*4882a593Smuzhiyun414720 bytes/frame (add some more bytes for headers and DHT (huffman)/DQT 461*4882a593Smuzhiyun(quantization) tables, and you'll get to something like 512kB per frame for 462*4882a593Smuzhiyun1:2 compression. For 1:4 compression, you'd have frames of half this size. 463*4882a593Smuzhiyun 464*4882a593SmuzhiyunSome additional explanation by Martin Samuelsson, which also explains the 465*4882a593Smuzhiyunimportance of buffer sizes: 466*4882a593Smuzhiyun-- 467*4882a593Smuzhiyun> Hmm, I do not think it is really that way. With the current (downloaded 468*4882a593Smuzhiyun> at 18:00 Monday) driver I get that output sizes for 10 sec: 469*4882a593Smuzhiyun> -q 50 -b 128 : 24.283.332 Bytes 470*4882a593Smuzhiyun> -q 50 -b 256 : 48.442.368 471*4882a593Smuzhiyun> -q 25 -b 128 : 24.655.992 472*4882a593Smuzhiyun> -q 25 -b 256 : 25.859.820 473*4882a593Smuzhiyun 474*4882a593SmuzhiyunI woke up, and can't go to sleep again. I'll kill some time explaining why 475*4882a593Smuzhiyunthis doesn't look strange to me. 476*4882a593Smuzhiyun 477*4882a593SmuzhiyunLet's do some math using a width of 704 pixels. I'm not sure whether the Buz 478*4882a593Smuzhiyunactually use that number or not, but that's not too important right now. 479*4882a593Smuzhiyun 480*4882a593Smuzhiyun704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block; 481*4882a593Smuzhiyun3168 blocks per field. Each pixel consist of two bytes; 128 bytes per block; 482*4882a593Smuzhiyun1024 bits per block. 100% in the new driver mean 1:2 compression; the maximum 483*4882a593Smuzhiyunoutput becomes 512 bits per block. Actually 510, but 512 is simpler to use 484*4882a593Smuzhiyunfor calculations. 485*4882a593Smuzhiyun 486*4882a593SmuzhiyunLet's say that we specify d1q50. We thus want 256 bits per block; times 3168 487*4882a593Smuzhiyunbecomes 811008 bits; 101376 bytes per field. We're talking raw bits and bytes 488*4882a593Smuzhiyunhere, so we don't need to do any fancy corrections for bits-per-pixel or such 489*4882a593Smuzhiyunthings. 101376 bytes per field. 490*4882a593Smuzhiyun 491*4882a593Smuzhiyund1 video contains two fields per frame. Those sum up to 202752 bytes per 492*4882a593Smuzhiyunframe, and one of those frames goes into each buffer. 493*4882a593Smuzhiyun 494*4882a593SmuzhiyunBut wait a second! -b128 gives 128kB buffers! It's not possible to cram 495*4882a593Smuzhiyun202752 bytes of JPEG data into 128kB! 496*4882a593Smuzhiyun 497*4882a593SmuzhiyunThis is what the driver notice and automatically compensate for in your 498*4882a593Smuzhiyunexamples. Let's do some math using this information: 499*4882a593Smuzhiyun 500*4882a593Smuzhiyun128kB is 131072 bytes. In this buffer, we want to store two fields, which 501*4882a593Smuzhiyunleaves 65536 bytes for each field. Using 3168 blocks per field, we get 502*4882a593Smuzhiyun20.68686868... available bytes per block; 165 bits. We can't allow the 503*4882a593Smuzhiyunrequest for 256 bits per block when there's only 165 bits available! The -q50 504*4882a593Smuzhiyunoption is silently overridden, and the -b128 option takes precedence, leaving 505*4882a593Smuzhiyunus with the equivalence of -q32. 506*4882a593Smuzhiyun 507*4882a593SmuzhiyunThis gives us a data rate of 165 bits per block, which, times 3168, sums up 508*4882a593Smuzhiyunto 65340 bytes per field, out of the allowed 65536. The current driver has 509*4882a593Smuzhiyunanother level of rate limiting; it won't accept -q values that fill more than 510*4882a593Smuzhiyun6/8 of the specified buffers. (I'm not sure why. "Playing it safe" seem to be 511*4882a593Smuzhiyuna safe bet. Personally, I think I would have lowered requested-bits-per-block 512*4882a593Smuzhiyunby one, or something like that.) We can't use 165 bits per block, but have to 513*4882a593Smuzhiyunlower it again, to 6/8 of the available buffer space: We end up with 124 bits 514*4882a593Smuzhiyunper block, the equivalence of -q24. With 128kB buffers, you can't use greater 515*4882a593Smuzhiyunthan -q24 at -d1. (And PAL, and 704 pixels width...) 516*4882a593Smuzhiyun 517*4882a593SmuzhiyunThe third example is limited to -q24 through the same process. The second 518*4882a593Smuzhiyunexample, using very similar calculations, is limited to -q48. The only 519*4882a593Smuzhiyunexample that actually grab at the specified -q value is the last one, which 520*4882a593Smuzhiyunis clearly visible, looking at the file size. 521*4882a593Smuzhiyun-- 522*4882a593Smuzhiyun 523*4882a593SmuzhiyunConclusion: the quality of the resulting movie depends on buffer size, quality, 524*4882a593Smuzhiyunwhether or not you use 'low_bitrate=1' as insmod option for the zr36060.c 525*4882a593Smuzhiyunmodule to do 1:4 instead of 1:2 compression, etc. 526*4882a593Smuzhiyun 527*4882a593SmuzhiyunIf you experience timeouts, lowering the quality/buffersize or using 528*4882a593Smuzhiyun'low_bitrate=1 as insmod option for zr36060.o might actually help, as is 529*4882a593Smuzhiyunproven by the Buz. 530*4882a593Smuzhiyun 531*4882a593SmuzhiyunIt hangs/crashes/fails/whatevers! Help! 532*4882a593Smuzhiyun--------------------------------------- 533*4882a593Smuzhiyun 534*4882a593SmuzhiyunMake sure that the card has its own interrupts (see /proc/interrupts), check 535*4882a593Smuzhiyunthe output of dmesg at high verbosity (load zr36067.o with debug=2, 536*4882a593Smuzhiyunload all other modules with debug=1). Check that your mainboard is favorable 537*4882a593Smuzhiyun(see question 2) and if not, test the card in another computer. Also see the 538*4882a593Smuzhiyunnotes given in question 3 and try lowering quality/buffersize/capturesize 539*4882a593Smuzhiyunif recording fails after a period of time. 540*4882a593Smuzhiyun 541*4882a593SmuzhiyunIf all this doesn't help, give a clear description of the problem including 542*4882a593Smuzhiyundetailed hardware information (memory+brand, mainboard+chipset+brand, which 543*4882a593SmuzhiyunMJPEG card, processor, other PCI cards that might be of interest), give the 544*4882a593Smuzhiyunsystem PnP information (/proc/interrupts, /proc/dma, /proc/devices), and give 545*4882a593Smuzhiyunthe kernel version, driver version, glibc version, gcc version and any other 546*4882a593Smuzhiyuninformation that might possibly be of interest. Also provide the dmesg output 547*4882a593Smuzhiyunat high verbosity. See 'Contacting' on how to contact the developers. 548*4882a593Smuzhiyun 549*4882a593SmuzhiyunMaintainers/Contacting 550*4882a593Smuzhiyun---------------------- 551*4882a593Smuzhiyun 552*4882a593SmuzhiyunPrevious maintainers/developers of this driver are 553*4882a593Smuzhiyun- Laurent Pinchart <laurent.pinchart@skynet.be> 554*4882a593Smuzhiyun- Ronald Bultje rbultje@ronald.bitfreak.net 555*4882a593Smuzhiyun- Serguei Miridonov <mirsev@cicese.mx> 556*4882a593Smuzhiyun- Wolfgang Scherr <scherr@net4you.net> 557*4882a593Smuzhiyun- Dave Perks <dperks@ibm.net> 558*4882a593Smuzhiyun- Rainer Johanni <Rainer@Johanni.de> 559*4882a593Smuzhiyun 560*4882a593SmuzhiyunDriver's License 561*4882a593Smuzhiyun---------------- 562*4882a593Smuzhiyun 563*4882a593Smuzhiyun This driver is distributed under the terms of the General Public License. 564*4882a593Smuzhiyun 565*4882a593Smuzhiyun This program is free software; you can redistribute it and/or modify 566*4882a593Smuzhiyun it under the terms of the GNU General Public License as published by 567*4882a593Smuzhiyun the Free Software Foundation; either version 2 of the License, or 568*4882a593Smuzhiyun (at your option) any later version. 569*4882a593Smuzhiyun 570*4882a593Smuzhiyun This program is distributed in the hope that it will be useful, 571*4882a593Smuzhiyun but WITHOUT ANY WARRANTY; without even the implied warranty of 572*4882a593Smuzhiyun MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 573*4882a593Smuzhiyun GNU General Public License for more details. 574*4882a593Smuzhiyun 575*4882a593SmuzhiyunSee http://www.gnu.org/ for more information. 576