
Gunther Mayer's bttv card gallery (graphical version of this text file :-)
is available at: http://www.bttv-gallery.de/


Supported cards:
Bt848/Bt848a/Bt849/Bt878/Bt879 cards
------------------------------------

All cards with Bt848/Bt848a/Bt849/Bt878/Bt879 and normal
Composite/S-VHS inputs are supported.  Teletext and Intercast support
(PAL only) for ALL cards via VBI sample decoding in software.

Some cards with additional multiplexing of inputs or other additional
fancy chips are only partially supported (unless specifications by the
card manufacturer are given).  When a card is listed here it isn't
necessarily fully supported.

All other cards only differ by additional components as tuners, sound
decoders, EEPROMs, teletext decoders ...


Unsupported Cards:
------------------

Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by
this driver.


MATRIX Vision
-------------

MV-Delta
- Bt848A
- 4 Composite inputs, 1 S-VHS input (shared with 4th composite)
- EEPROM

http://www.matrix-vision.de/

This card has no tuner but supports all 4 composite (1 shared with an
S-VHS input) of the Bt848A.
Very nice card if you only have satellite TV but several tuners connected
to the card via composite.

Many thanks to Matrix-Vision for giving us 2 cards for free which made
Bt848a/Bt849 single crytal operation support possible!!!



Miro/Pinnacle PCTV
------------------

- Bt848
  some (all??) come with 2 crystals for PAL/SECAM and NTSC
- PAL, SECAM or NTSC TV tuner (Philips or TEMIC)
- MSP34xx sound decoder on add on board
  decoder is supported but AFAIK does not yet work
  (other sound MUX setting in GPIO port needed??? somebody who fixed this???)
- 1 tuner, 1 composite and 1 S-VHS input
- tuner type is autodetected

http://www.miro.de/
http://www.miro.com/


Many thanks for the free card which made first NTSC support possible back
in 1997!


Hauppauge Win/TV pci
--------------------

There are many different versions of the Hauppauge cards with different
tuners (TV+Radio ...), teletext decoders.
Note that even cards with same model numbers have (depending on the revision)
different chips on it.

- Bt848 (and others but always in 2 crystal operation???)
  newer cards have a Bt878
- PAL, SECAM, NTSC or tuner with or without Radio support

e.g.:
  PAL:
  TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
  TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3

  NTSC:
  TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
  TSA5518: no datasheet available on Philips site
- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip
  with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM)
  SAA5246 (I2C 0x22) is supported
- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y
  with configuration information
  I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf)
- 1 tuner, 1 composite and (depending on model) 1 S-VHS input
- 14052B: mux for selection of sound source
- sound decoder: TDA9800, MSP34xx (stereo cards)


Askey CPH-Series
----------------
Developed by TelSignal(?), OEMed by many vendors (Typhoon, Anubis, Dynalink)

  Card series:
    CPH01x: BT848 capture only
    CPH03x: BT848
    CPH05x: BT878 with FM
    CPH06x: BT878 (w/o FM)
    CPH07x: BT878 capture only

  TV standards:
     CPH0x0: NTSC-M/M
     CPH0x1: PAL-B/G
     CPH0x2: PAL-I/I
     CPH0x3: PAL-D/K
     CPH0x4: SECAM-L/L
     CPH0x5: SECAM-B/G
     CPH0x6: SECAM-D/K
     CPH0x7: PAL-N/N
     CPH0x8: PAL-B/H
     CPH0x9: PAL-M/M

  CPH03x was often sold as "TV capturer".

  Identifying:
  1) 878 cards can be identified by PCI Subsystem-ID:
      144f:3000 = CPH06x
      144F:3002 = CPH05x w/ FM
      144F:3005 = CPH06x_LC (w/o remote control)
  1) The cards have a sticker with "CPH"-model on the back.
  2) These cards have a number printed on the PCB just above the tuner metal box:
      "80-CP2000300-x" = CPH03X
      "80-CP2000500-x" = CPH05X
      "80-CP2000600-x" = CPH06X / CPH06x_LC

  Askey sells these cards as "Magic TView series", Brand "MagicXpress".
  Other OEM often call these "Tview", "TView99" or else.

Lifeview Flyvideo Series:
-------------------------
  The naming of these series differs in time and space.

  Identifying:
  1) Some models can be identified by PCI subsystem ID:
      1852:1852 = Flyvideo 98 FM
      1851:1850 = Flyvideo 98
      1851:1851 = Flyvideo 98 EZ (capture only)
  2) There is a print on the PCB:
      LR25       = Flyvideo (Zoran ZR36120, SAA7110A)
      LR26 Rev.N = Flyvideo II (Bt848)
	   Rev.O = Flyvideo II (Bt878)
      LR37 Rev.C = Flyvideo EZ (Capture only, ZR36120 + SAA7110)
      LR38 Rev.A1= Flyvideo II EZ (Bt848 capture only)
      LR50 Rev.Q = Flyvideo 98 (w/eeprom and PCI subsystem ID)
	   Rev.W = Flyvideo 98 (no eeprom)
      LR51 Rev.E = Flyvideo 98 EZ (capture only)
      LR90       = Flyvideo 2000 (Bt878)
		   Flyvideo 2000S (Bt878) w/Stereo TV (Package incl. LR91 daughterboard)
      LR91       = Stereo daughter card for LR90
      LR97       = Flyvideo DVBS
      LR99 Rev.E = Low profile card for OEM integration (only internal audio!) bt878
      LR136	 = Flyvideo 2100/3100 (Low profile, SAA7130/SAA7134)
      LR137      = Flyvideo DV2000/DV3000 (SAA7130/SAA7134 + IEEE1394)
      LR138 Rev.C= Flyvideo 2000 (SAA7130)
		or Flyvideo 3000 (SAA7134) w/Stereo TV
		   These exist in variations w/FM and w/Remote sometimes denoted
		   by suffixes "FM" and "R".
  3) You have a laptop (miniPCI card):
      Product    = FlyTV Platinum Mini
      Model/Chip = LR212/saa7135

      Lifeview.com.tw states (Feb. 2002):
      "The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98."
      Their Bt8x8 cards are listed as discontinued.
      Flyvideo 2000S was probably sold as Flyvideo 3000 in some contries(Europe?).
      The new Flyvideo 2000/3000 are SAA7130/SAA7134 based.

  "Flyvideo II" had been the name for the 848 cards, nowadays (in Germany)
  this name is re-used for LR50 Rev.W.
  The Lifeview website mentioned Flyvideo III at some time, but such a card
  has not yet been seen (perhaps it was the german name for LR90 [stereo]).
  These cards are sold by many OEMs too.

  FlyVideo A2 (Elta 8680)= LR90 Rev.F (w/Remote, w/o FM, stereo TV by tda9821) {Germany}
  Lifeview 3000 (Elta 8681) as sold by Plus(April 2002), Germany = LR138 w/ saa7134


Typhoon TV card series:
-----------------------
  These can be CPH, Flyvideo, Pixelview or KNC1 series.
  Typhoon is the brand of Anubis.
  Model 50680 got re-used, some model no. had different contents over time.

  Models:
  50680 "TV Tuner PCI Pal BG"(old,red package)=can be CPH03x(bt848) or CPH06x(bt878)
  50680 "TV Tuner Pal BG" (blue package)= Pixelview PV-BT878P+ (Rev 9B)
  50681 "TV Tuner PCI Pal I" (variant of 50680)
  50682 "TView TV/FM Tuner Pal BG"       = Flyvideo 98FM (LR50 Rev.Q)
	 Note: The package has a picture of CPH05x (which would be a real TView)
  50683 "TV Tuner PCI SECAM" (variant of 50680)
  50684 "TV Tuner Pal BG"                = Pixelview 878TV(Rev.3D)
  50686 "TV Tuner"                       = KNC1 TV Station
  50687 "TV Tuner stereo"                = KNC1 TV Station pro
  50688 "TV Tuner RDS" (black package)   = KNC1 TV Station RDS
  50689  TV SAT DVB-S CARD CI PCI (SAA7146AH, SU1278?) = "KNC1 TV Station DVB-S"
  50692 "TV/FM Tuner" (small PCB)
  50694  TV TUNER CARD RDS (PHILIPS CHIPSET SAA7134HL)
  50696  TV TUNER STEREO (PHILIPS CHIPSET SAA7134HL, MK3ME Tuner)
  50804  PC-SAT TV/Audio Karte = Techni-PC-Sat (ZORAN 36120PQC, Tuner:Alps)
  50866  TVIEW SAT RECEIVER+ADR
  50868 "TV/FM Tuner Pal I" (variant of 50682)
  50999 "TV/FM Tuner Secam" (variant of 50682)


Guillemot
---------
  Maxi-TV PCI (ZR36120)
  Maxi TV Video 2 = LR50 Rev.Q (FI1216MF, PAL BG+SECAM)
  Maxi TV Video 3 = CPH064 (PAL BG + SECAM)

Mentor
------
  Mentor TV card ("55-878TV-U1") = Pixelview 878TV(Rev.3F) (w/FM w/Remote)

Prolink
-------
   TV cards:
   PixelView Play TV pro - (Model: PV-BT878P+ REV 8E)
   PixelView Play TV pro - (Model: PV-BT878P+ REV 9D)
   PixelView Play TV pro - (Model: PV-BT878P+ REV 4C / 8D / 10A )
   PixelView Play TV - (Model: PV-BT848P+)
   878TV - (Model: PV-BT878TV)

   Multimedia TV packages (card + software pack):
   PixelView Play TV Theater - (Model: PV-M4200) =  PixelView Play TV pro + Software
   PixelView Play TV PAK -     (Model: PV-BT878P+ REV 4E)
   PixelView Play TV/VCR -     (Model: PV-M3200 REV 4C / 8D / 10A )
   PixelView Studio PAK -      (Model:    M2200 REV 4C / 8D / 10A )
   PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E)
   PixelView DigitalVCR PAK -  (Model: PV-M2400 REV 4C / 8D / 10A )

   PixelView PlayTV PAK II (TV/FM card + usb camera)  PV-M3800
   PixelView PlayTV XP PV-M4700,PV-M4700(w/FM)
   PixelView PlayTV DVR PV-M4600  package contents:PixelView PlayTV pro, windvr & videoMail s/w

   Further Cards:
   PV-BT878P+rev.9B (Play TV Pro, opt. w/FM w/NICAM)
   PV-BT878P+rev.2F
   PV-BT878P Rev.1D (bt878, capture only)

   XCapture PV-CX881P (cx23881)
   PlayTV HD PV-CX881PL+, PV-CX881PL+(w/FM) (cx23881)

   DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030
   DTV2000 DVB-S = Twinhan VP-1020

   Video Conferencing:
   PixelView Meeting PAK - (Model: PV-BT878P)
   PixelView Meeting PAK Lite - (Model: PV-BT878P)
   PixelView Meeting PAK plus - (Model: PV-BT878P+rev 4C/8D/10A)
   PixelView Capture - (Model: PV-BT848P)

   PixelView PlayTV USB pro
   Model No. PV-NT1004+, PV-NT1004+ (w/FM) = NT1004 USB decoder chip + SAA7113 video decoder chip

Dynalink
--------
   These are CPH series.

Phoebemicro
-----------
   TV Master    = CPH030 or CPH060
   TV Master FM = CPH050

Genius/Kye
----------
   Video Wonder/Genius Internet Video Kit = LR37 Rev.C
   Video Wonder Pro II (848 or 878) = LR26

Tekram
------
   VideoCap C205 (Bt848)
   VideoCap C210 (zr36120 +Philips)
   CaptureTV M200 (ISA)
   CaptureTV M205 (Bt848)

Lucky Star
----------
   Image World Conference TV = LR50 Rev. Q

Leadtek
-------
   WinView 601 (Bt848)
   WinView 610 (Zoran)
   WinFast2000
   WinFast2000 XP

KNC One
-------
   TV-Station
   TV-Station SE (+Software Bundle)
   TV-Station pro (+TV stereo)
   TV-Station FM (+Radio)
   TV-Station RDS (+RDS)
   TV Station SAT (analog satellite)
   TV-Station DVB-S

   newer Cards have saa7134, but model name stayed the same?

Provideo
--------
  PV951 or PV-951 (also are sold as:
   Boeder TV-FM Video Capture Card
   Titanmedia Supervision TV-2400
   Provideo PV951 TF
   3DeMon PV951
   MediaForte TV-Vision PV951
   Yoko PV951
   Vivanco Tuner Card PCI Art.-Nr.: 68404
  ) now named PV-951T

  Surveillance Series
  PV-141
  PV-143
  PV-147
  PV-148 (capture only)
  PV-150
  PV-151

  TV-FM Tuner Series
  PV-951TDV (tv tuner + 1394)
  PV-951T/TF
  PV-951PT/TF
  PV-956T/TF Low Profile
  PV-911

Highscreen
----------
   TV Karte = LR50 Rev.S
   TV-Boostar = Terratec Terra TV+ Version 1.0 (Bt848, tda9821) "ceb105.pcb"

Zoltrix
-------
   Face to Face Capture (Bt848 capture only) (PCB "VP-2848")
   Face To Face TV MAX (Bt848) (PCB "VP-8482 Rev1.3")
   Genie TV (Bt878) (PCB "VP-8790 Rev 2.1")
   Genie Wonder Pro

AVerMedia
---------
   AVer FunTV Lite (ISA, AV3001 chipset)  "M101.C"
   AVerTV
   AVerTV Stereo
   AVerTV Studio (w/FM)
   AVerMedia TV98 with Remote
   AVerMedia TV/FM98 Stereo
   AVerMedia TVCAM98
   TVCapture (Bt848)
   TVPhone (Bt848)
   TVCapture98 (="AVerMedia TV98" in USA) (Bt878)
   TVPhone98 (Bt878, w/FM)

   PCB      PCI-ID      Model-Name      Eeprom  Tuner  Sound    Country
   --------------------------------------------------------------------
   M101.C   ISA !
   M108-B      Bt848                     --     FR1236		 US   (2),(3)
   M1A8-A      Bt848    AVer TV-Phone           FM1216  --
   M168-T   1461:0003   AVerTV Studio   48:17   FM1216 TDA9840T  D    (1) w/FM w/Remote
   M168-U   1461:0004   TVCapture98     40:11   FI1216   --      D    w/Remote
   M168II-B 1461:0003   Medion MD9592   48:16   FM1216 TDA9873H  D    w/FM

   (1) Daughterboard MB68-A with TDA9820T and TDA9840T
   (2) Sony NE41S soldered (stereo sound?)
   (3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz

   US site has different drivers for (as of 09/2002):
   EZ Capture/InterCam PCI (BT-848 chip)
   EZ Capture/InterCam PCI (BT-878 chip)
   TV-Phone (BT-848 chip)
   TV98 (BT-848 chip)
   TV98 With Remote (BT-848 chip)
   TV98 (BT-878 chip)
   TV98 With Remote (BT-878)
   TV/FM98 (BT-878 chip)
   AVerTV
   AverTV Stereo
   AVerTV Studio

   DE hat diverse Treiber fuer diese Modelle (Stand 09/2002):
   TVPhone (848) mit Philips tuner FR12X6 (w/ FM radio)
   TVPhone (848) mit Philips tuner FM12X6 (w/ FM radio)
   TVCapture (848) w/Philips tuner FI12X6
   TVCapture (848) non-Philips tuner
   TVCapture98 (Bt878)
   TVPhone98 (Bt878)
   AVerTV und TVCapture98 w/VCR (Bt 878)
   AVerTVStudio und TVPhone98 w/VCR (Bt878)
   AVerTV GO Serie (Kein SVideo Input)
   AVerTV98 (BT-878 chip)
   AVerTV98 mit Fernbedienung (BT-878 chip)
   AVerTV/FM98 (BT-878 chip)

   VDOmate (www.averm.com.cn) = M168U ?

Aimslab
-------
   Video Highway or "Video Highway TR200" (ISA)
   Video Highway Xtreme (aka "VHX") (Bt848, FM w/ TEA5757)

IXMicro (former: IMS=Integrated Micro Solutions)
-------
   IXTV BT848 (=TurboTV)
   IXTV BT878
   IMS TurboTV (Bt848)

Lifetec/Medion/Tevion/Aldi
--------------------------
   LT9306/MD9306 = CPH061
   LT9415/MD9415 = LR90 Rev.F or Rev.G
	  MD9592 = Avermedia TVphone98 (PCI_ID=1461:0003), PCB-Rev=M168II-B (w/TDA9873H)
	  MD9717 = KNC One (Rev D4, saa7134, FM1216 MK2 tuner)
	  MD5044 = KNC One (Rev D4, saa7134, FM1216ME MK3 tuner)

Modular Technologies (www.modulartech.com) UK
---------------------------------------------
   MM100 PCTV (Bt848)
   MM201 PCTV (Bt878, Bt832) w/ Quartzsight camera
   MM202 PCTV (Bt878, Bt832, tda9874)
   MM205 PCTV (Bt878)
   MM210 PCTV (Bt878) (Galaxy TV, Galaxymedia ?)

Terratec
--------
   Terra TV+ Version 1.0 (Bt848), "ceb105.PCB" printed on the PCB, TDA9821
   Terra TV+ Version 1.1 (Bt878), "LR74 Rev.E" printed on the PCB, TDA9821
   Terra TValueRadio,             "LR102 Rev.C" printed on the PCB
   Terra TV/Radio+ Version 1.0,   "80-CP2830100-0" TTTV3 printed on the PCB,
				     "CPH010-E83" on the back, SAA6588T, TDA9873H
   Terra TValue Version BT878,    "80-CP2830110-0 TTTV4" printed on the PCB,
				     "CPH011-D83" on back
   Terra TValue Version 1.0       "ceb105.PCB" (really identical to Terra TV+ Version 1.0)
   Terra TValue New Revision	  "LR102 Rec.C"
   Terra Active Radio Upgrade (tea5757h, saa6588t)

   LR74 is a newer PCB revision of ceb105 (both incl. connector for Active Radio Upgrade)

   Cinergy 400 (saa7134), "E877 11(S)", "PM820092D" printed on PCB
   Cinergy 600 (saa7134)

Technisat
---------
   Discos ADR PC-Karte ISA (no TV!)
   Discos ADR PC-Karte PCI (probably no TV?)
   Techni-PC-Sat (Sat. analog)
	 Rev 1.2 (zr36120, vpx3220, stv0030, saa5246, BSJE3-494A)
   Mediafocus I (zr36120/zr36125, drp3510, Sat. analog + ADR Radio)
   Mediafocus II (saa7146, Sat. analog)
	 SatADR Rev 2.1 (saa7146a, saa7113h, stv0056a, msp3400c, drp3510a, BSKE3-307A)
   SkyStar 1 DVB  (AV7110) = Technotrend Premium
   SkyStar 2 DVB  (B2C2) (=Sky2PC)

Siemens
-------
   Multimedia eXtension Board (MXB) (SAA7146, SAA7111)

Powercolor
----------
   MTV878
       Package comes with different contents:
       a) pcb "MTV878" (CARD=75)
       b) Pixelview Rev. 4_
   MTV878R w/Remote Control
   MTV878F w/Remote Control w/FM radio

Pinnacle
--------
   Mirovideo PCTV (Bt848)
   Mirovideo PCTV SE (Bt848)
   Mirovideo PCTV Pro (Bt848 + Daughterboard for TV Stereo and FM)
   Studio PCTV Rave (Bt848 Version = Mirovideo PCTV)
   Studio PCTV Rave (Bt878 package w/o infrared)
   Studio PCTV      (Bt878)
   Studio PCTV Pro  (Bt878 stereo w/ FM)
   Pinnacle PCTV    (Bt878, MT2032)
   Pinnacle PCTV Pro (Bt878, MT2032)
   Pinncale PCTV Sat (bt878a, HM1821/1221) ["Conexant CX24110 with CX24108 tuner, aka HM1221/HM1811"]
   Pinnacle PCTV Sat XE

   M(J)PEG capture and playback:
   DC1+ (ISA)
   DC10  (zr36057,     zr36060,      saa7110, adv7176)
   DC10+ (zr36067,     zr36060,      saa7110, adv7176)
   DC20  (ql16x24b,zr36050, zr36016, saa7110, saa7187 ...)
   DC30  (zr36057, zr36050, zr36016, vpx3220, adv7176, ad1843, tea6415, miro FST97A1)
   DC30+ (zr36067, zr36050, zr36016, vpx3220, adv7176)
   DC50  (zr36067, zr36050, zr36016, saa7112, adv7176 (2 pcs.?), ad1843, miro FST97A1, Lattice ???)

Lenco
-----
   MXR-9565 (=Technisat Mediafocus?)
   MXR-9571 (Bt848) (=CPH031?)
   MXR-9575
   MXR-9577 (Bt878) (=Prolink 878TV Rev.3x)
   MXTV-9578CP (Bt878) (= Prolink PV-BT878P+4E)

Iomega
------
   Buz (zr36067, zr36060, saa7111, saa7185)

LML
---
   LML33 (zr36067, zr36060, bt819, bt856)

Grandtec
--------
   Grand Video Capture (Bt848)
   Multi Capture Card  (Bt878)

Koutech
-------
   KW-606 (Bt848)
   KW-607 (Bt848 capture only)
   KW-606RSF
   KW-607A (capture only)
   KW-608 (Zoran capture only)

IODATA (jp)
------
   GV-BCTV/PCI
   GV-BCTV2/PCI
   GV-BCTV3/PCI
   GV-BCTV4/PCI
   GV-VCP/PCI (capture only)
   GV-VCP2/PCI (capture only)

Canopus (jp)
-------
   WinDVR	= Kworld "KW-TVL878RF"

www.sigmacom.co.kr
------------------
   Sigma Cyber TV II

www.sasem.co.kr
---------------
   Litte OnAir TV

hama
----
   TV/Radio-Tuner Card, PCI (Model 44677) = CPH051

Sigma Designs
-------------
   Hollywood plus (em8300, em9010, adv7175), (PCB "M340-10") MPEG DVD decoder

Formac
------
   iProTV (Card for iMac Mezzanine slot, Bt848+SCSI)
   ProTV (Bt848)
   ProTV II = ProTV Stereo (Bt878) ["stereo" means FM stereo, tv is still mono]

ATI
---
   TV-Wonder
   TV-Wonder VE

Diamond Multimedia
------------------
   DTV2000 (Bt848, tda9875)

Aopen
-----
   VA1000 Plus (w/ Stereo)
   VA1000 Lite
   VA1000 (=LR90)

Intel
-----
   Smart Video Recorder (ISA full-length)
   Smart Video Recorder pro (ISA half-length)
   Smart Video Recorder III (Bt848)

STB
---
   STB Gateway 6000704 (bt878)
   STB Gateway 6000699 (bt848)
   STB Gateway 6000402 (bt848)
   STB TV130 PCI

Videologic
----------
   Captivator Pro/TV (ISA?)
   Captivator PCI/VC (Bt848 bundled with camera) (capture only)

Technotrend
------------
   TT-SAT PCI (PCB "Sat-PCI Rev.:1.3.1"; zr36125, vpx3225d, stc0056a, Tuner:BSKE6-155A
   TT-DVB-Sat
    revisions 1.1, 1.3, 1.5, 1.6 and 2.1
    This card is sold as OEM from:
	Siemens DVB-s Card
	Hauppauge WinTV DVB-S
	Technisat SkyStar 1 DVB
	Galaxis DVB Sat
    Now this card is called TT-PCline Premium Family
   TT-Budget (saa7146, bsru6-701a)
    This card is sold as OEM from:
	Hauppauge WinTV Nova
	Satelco Standard PCI (DVB-S)
   TT-DVB-C PCI

Teles
-----
   DVB-s (Rev. 2.2, BSRV2-301A, data only?)

Remote Vision
-------------
   MX RV605 (Bt848 capture only)

Boeder
------
   PC ChatCam (Model 68252) (Bt848 capture only)
   Tv/Fm Capture Card  (Model 68404) = PV951

Media-Surfer  (esc-kathrein.de)
-------------------------------
   Sat-Surfer (ISA)
   Sat-Surfer PCI = Techni-PC-Sat
   Cable-Surfer 1
   Cable-Surfer 2
   Cable-Surfer PCI (zr36120)
   Audio-Surfer (ISA Radio card)

Jetway (www.jetway.com.tw)
--------------------------
   JW-TV 878M
   JW-TV 878  = KWorld KW-TV878RF

Galaxis
-------
   Galaxis DVB Card S CI
   Galaxis DVB Card C CI
   Galaxis DVB Card S
   Galaxis DVB Card C
   Galaxis plug.in S [neuer Name: Galaxis DVB Card S CI

Hauppauge
---------
   many many WinTV models ...
   WinTV DVBs = Technotrend Premium 1.3
   WinTV NOVA = Technotrend Budget 1.1 "S-DVB DATA"
   WinTV NOVA-CI "SDVBACI"
   WinTV Nova USB (=Technotrend USB 1.0)
   WinTV-Nexus-s (=Technotrend Premium 2.1 or 2.2)
   WinTV PVR
   WinTV PVR 250
   WinTV PVR 450

  US models
  990 WinTV-PVR-350 (249USD) (iTVC15 chipset + radio)
  980 WinTV-PVR-250 (149USD) (iTVC15 chipset)
  880 WinTV-PVR-PCI (199USD) (KFIR chipset + bt878)
  881 WinTV-PVR-USB
  190 WinTV-GO
  191 WinTV-GO-FM
  404 WinTV
  401 WinTV-radio
  495 WinTV-Theater
  602 WinTV-USB
  621 WinTV-USB-FM
  600 USB-Live
  698 WinTV-HD
  697 WinTV-D
  564 WinTV-Nexus-S

  Deutsche Modelle
  603 WinTV GO
  719 WinTV Primio-FM
  718 WinTV PCI-FM
  497 WinTV Theater
  569 WinTV USB
  568 WinTV USB-FM
  882 WinTV PVR
  981 WinTV PVR 250
  891 WinTV-PVR-USB
  541 WinTV Nova
  488 WinTV Nova-Ci
  564 WinTV-Nexus-s
  727 WinTV-DVB-c
  545 Common Interface
  898 WinTV-Nova-USB

  UK models
  607 WinTV Go
  693,793 WinTV Primio FM
  647,747 WinTV PCI FM
  498 WinTV Theater
  883 WinTV PVR
  893 WinTV PVR USB  (Duplicate entry)
  566 WinTV USB (UK)
  573 WinTV USB FM
  429 Impact VCB (bt848)
  600 USB Live (Video-In 1x Comp, 1xSVHS)
  542 WinTV Nova
  717 WinTV DVB-S
  909 Nova-t PCI
  893 Nova-t USB   (Duplicate entry)
  802 MyTV
  804 MyView
  809 MyVideo
  872 MyTV2Go FM


  546 WinTV Nova-S CI
  543 WinTV Nova
  907 Nova-S USB
  908 Nova-T USB
  717 WinTV Nexus-S
  157 DEC3000-s Standalone + USB

  Spain
  685 WinTV-Go
  690 WinTV-PrimioFM
  416 WinTV-PCI Nicam Estereo
  677 WinTV-PCI-FM
  699 WinTV-Theater
  683 WinTV-USB
  678 WinTV-USB-FM
  983 WinTV-PVR-250
  883 WinTV-PVR-PCI
  993 WinTV-PVR-350
  893 WinTV-PVR-USB
  728 WinTV-DVB-C PCI
  832 MyTV2Go
  869 MyTV2Go-FM
  805 MyVideo (USB)


Matrix-Vision
-------------
   MATRIX-Vision MV-Delta
   MATRIX-Vision MV-Delta 2
   MVsigma-SLC (Bt848)

Conceptronic (.net)
------------
   TVCON FM,  TV card w/ FM = CPH05x
   TVCON = CPH06x

BestData
--------
   HCC100 = VCC100rev1 + camera
   VCC100 rev1 (bt848)
   VCC100 rev2 (bt878)

Gallant  (www.gallantcom.com) www.minton.com.tw
-----------------------------------------------
   Intervision IV-510 (capture only bt8x8)
   Intervision IV-550 (bt8x8)
   Intervision IV-100 (zoran)
   Intervision IV-1000 (bt8x8)

Asonic (www.asonic.com.cn) (website down)
-----------------------------------------
   SkyEye tv 878

Hoontech
--------
   878TV/FM

Teppro (www.itcteppro.com.tw)
-----------------------------
   ITC PCITV (Card Ver 1.0) "Teppro TV1/TVFM1 Card"
   ITC PCITV (Card Ver 2.0)
   ITC PCITV (Card Ver 3.0) = "PV-BT878P+ (REV.9D)"
   ITC PCITV (Card Ver 4.0)
   TEPPRO IV-550 (For BT848 Main Chip)
   ITC DSTTV (bt878, satellite)
   ITC VideoMaker (saa7146, StreamMachine sm2110, tvtuner) "PV-SM2210P+ (REV:1C)"

Kworld (www.kworld.com.tw)
--------------------------
  PC TV Station
   KWORLD KW-TV878R  TV (no radio)
   KWORLD KW-TV878RF TV (w/ radio)

   KWORLD KW-TVL878RF (low profile)

   KWORLD KW-TV713XRF (saa7134)


  MPEG TV Station (same cards as above plus WinDVR Software MPEG en/decoder)
   KWORLD KW-TV878R -Pro   TV (no Radio)
   KWORLD KW-TV878RF-Pro   TV (w/ Radio)
   KWORLD KW-TV878R -Ultra TV (no Radio)
   KWORLD KW-TV878RF-Ultra TV (w/ Radio)



JTT/ Justy Corp.(http://www.jtt.ne.jp/)
---------------------------------------------------------------------
   JTT-02 (JTT TV) "TV watchmate pro" (bt848)

ADS www.adstech.com
-------------------
   Channel Surfer TV ( CHX-950 )
   Channel Surfer TV+FM ( CHX-960FM )

AVEC www.prochips.com
---------------------
   AVEC Intercapture (bt848, tea6320)

NoBrand
-------
   TV Excel = Australian Name for "PV-BT878P+ 8E" or "878TV Rev.3_"

Mach www.machspeed.com
----
   Mach TV 878

Eline www.eline-net.com/
-----
   Eline Vision TVMaster / TVMaster FM (ELV-TVM/ ELV-TVM-FM) = LR26  (bt878)
   Eline Vision TVMaster-2000 (ELV-TVM-2000, ELV-TVM-2000-FM)= LR138 (saa713x)

Spirit 
------
   Spirit TV Tuner/Video Capture Card (bt848)

Boser www.boser.com.tw
-----
   HS-878 Mini PCI Capture Add-on Card
   HS-879 Mini PCI 3D Audio and Capture Add-on Card (w/ ES1938 Solo-1)

Satelco www.citycom-gmbh.de, www.satelco.de
-------
   TV-FM =KNC1 saa7134
   Standard PCI (DVB-S) = Technotrend Budget
   Standard PCI (DVB-S) w/ CI
   Satelco Highend PCI (DVB-S) = Technotrend Premium


Sensoray www.sensoray.com
--------
   Sensoray 311 (PC/104 bus)
   Sensoray 611 (PCI)

CEI (Chartered Electronics Industries Pte Ltd [CEI] [FCC ID HBY])
---
  TV Tuner  -  HBY-33A-RAFFLES  Brooktree Bt848KPF + Philips
  TV Tuner MG9910  -  HBY33A-TVO  CEI + Philips SAA7110 + OKI M548262 + ST STV8438CV
  Primetime TV (ISA)
   acquired by Singapore Technologies
   now operating as Chartered Semiconductor Manufacturing
   Manufacturer of video cards is listed as:
   Cogent Electronics Industries [CEI]

AITech
------
   Wavewatcher TV (ISA)
   AITech WaveWatcher TV-PCI = can be LR26 (Bt848) or LR50 (BT878)
   WaveWatcher TVR-202 TV/FM Radio Card (ISA)

MAXRON
------
   Maxron MaxTV/FM Radio (KW-TV878-FNT) = Kworld or JW-TV878-FBK

www.ids-imaging.de
------------------
   Falcon Series (capture only)
 In USA: http://www.theimagingsource.com/
   DFG/LC1

www.sknet-web.co.jp
-------------------
   SKnet Monster TV (saa7134)

A-Max www.amaxhk.com (Colormax, Amax, Napa)
-------------------
   APAC Viewcomp 878

Cybertainment
-------------
   CyberMail AV Video Email Kit w/ PCI Capture Card (capture only)
   CyberMail Xtreme
  These are Flyvideo

VCR (http://www.vcrinc.com/)
---
  Video Catcher 16

Twinhan
-------
   DST Card/DST-IP (bt878, twinhan asic) VP-1020
    Sold as:
     KWorld DVBS Satellite TV-Card
     Powercolor DSTV Satellite Tuner Card
     Prolink Pixelview DTV2000
     Provideo PV-911 Digital Satellite TV Tuner Card With Common Interface ?
   DST-CI Card (DVB Satellite) VP-1030
   DCT Card (DVB cable)

MSI
---
    MSI TV@nywhere Tuner Card (MS-8876) (CX23881/883) Not Bt878 compatible.
    MS-8401 DVB-S

Focus www.focusinfo.com
-----
    InVideo PCI (bt878)

Sdisilk www.sdisilk.com/
-------
    SDI Silk 100
    SDI Silk 200 SDI Input Card

www.euresys.com
    PICOLO series

PMC/Pace
www.pacecom.co.uk website closed

Mercury www.kobian.com (UK and FR)
    LR50
    LR138RBG-Rx  == LR138

TEC sound (package and manuals don't have any other manufacturer info) TecSound
    Though educated googling found: www.techmakers.com
    TV-Mate = Zoltrix VP-8482

Lorenzen www.lorenzen.de
--------
     SL DVB-S PCI = Technotrend Budget PCI (su1278 or bsru version)

Origo (.uk) www.origo2000.com
     PC TV Card = LR50

I/O Magic www.iomagic.com
---------
    PC PVR - Desktop TV Personal Video Recorder DR-PCTV100 = Pinnacle ROB2D-51009464 4.0 + Cyberlink PowerVCR II

Arowana
-------
    TV-Karte / Poso Power TV (?) = Zoltrix VP-8482 (?)

iTVC15 boards:
-------------
kuroutoshikou.com ITVC15
yuan.com MPG160 PCI TV (Internal PCI MPEG2 encoder card plus TV-tuner)

Asus www.asuscom.com
   Asus TV Tuner Card 880 NTSC (low profile, cx23880)
   Asus TV (saa7134)

Hoontech
--------
http://www.hoontech.de/
   HART Vision 848 (H-ART Vision 848)
   HART Vision 878 (H-Art Vision 878)
