Kworld NB-TV 100 [17de:7139] in Debian GNU/Linux

Kworld NB-TV 100 (sometimes called Kworld NBTV-100) is a PCMCIA card with TV tuner, Composite and S-Video input, perfect solution for mobile TV when laptop is at hand. The card is very cheap and I could not find any Linux success story on the internet, but appearently it is not too exotic and must be working, at least the video part (could not get the sound working yet). Here is the product page:

http://www.kworld.com.tw/en/kworld/body/Products/Analog/NB-TV100.htm

One might suspect that this card also contains MPEG encoder as PVR systems do, while this is not true, the encoding is done by software (the Windows software included in the box was too buggy to do any recording or time shifting anyway, maybe update is better).

I don't guarantee anything, the information is provided with a hope that it may be useful. Use with caution and solely at your own risk!

Identification

Here is what "dmesg" on Linux-2.6.17.1 says about it:

saa7133[0]: found at 0000:07:00.0, rev: 240, irq: 11, latency: 0, mmio: 0xf6000000
PCI: Setting latency timer of device 0000:07:00.0 to 64
saa7133[0]: subsystem: 17de:7139, board: UNKNOWN/GENERIC [card=0,autodetected]
saa7133[0]: board init: gpio is 40
saa7133[0]: i2c eeprom 00: de 17 39 71 ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0

Huh? Unknown and no info about tuner in eeprom :-(

This is how "lspci -vvv" identifies it:

07:00.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev f0)
        Subsystem: KWorld Computer Co. Ltd. Unknown device 7139
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 64 (63750ns min, 63750ns max)
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at f6000000 (32-bit, non-prefetchable) [size=2K]
        Capabilities: [40] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=3 PME-

Finding out a card number

I found that "tvtime" identifies the correct set of inputs and successfully shows the contents of my photo camera output on the Composite connection, when I specify the following cards:

 10 - Kworld/KuroutoShikou SAA7130-TVPCI
 13 - Typhoon TV+Radio 90031
 17 - AOPEN VA1000 POWER                       [1131:7133]
 19 - Compro VideoMate TV                      [185b:c100]
 24 - KNC One TV-Station DVR                   [1894:a006]
 34 - Noval Prime TV 7133
 40 - Compro VideoMate TV PVR/FM               [185b:c100]
 41 - Compro VideoMate TV Gold+                [185b:c100]
 43 - :Zolid Xpert TV7134
 46 - AVerMedia Cardbus TV/Radio (E500)        [1461:d6ee]
 49 - Compro VideoMate Gold+ Pal               [185b:c200]
 58 - ADS Tech Instant TV (saa7135)            [1421:0350,1421:0351,1421:0370,1421:1370]
 59 - Kworld/Tevion V-Stream Xpert TV PVR7134
 62 - Compro VideoMate TV Gold+II
 63 - Kworld Xpert TV PVR7134
 65 - V-Stream Studio TV Terminator
 76 - SKNet MonsterTV Mobile                   [1131:4ee9]
 78 - ASUSTeK P7131 Dual                       [1043:4862]
 80 - ASUS Digimatrix TV                       [1043:0210]
 81 - Philips Tiger reference design           [1131:2018]
 82 - MSI TV@Anywhere plus                     [1462:6231]
 88 - Tevion/KWorld DVB-T 220RF                [17de:7201]
 90 - Kworld ATSC110                           [17de:7350]

I picked the card #88 in this list, the others will probably also work. Please also note that I am not good at book-keeping and some more good cards escaped the list (I got a few freezes and mouse+ keyboard chaos due to some modprobe/rmmod..), but these are definitely good ones (laptop shouldn't blow up), at least good for displaying the Composite connection.

Finding out a tuner number

The product page says it contains Silicon tuner, sadly this does not tell me anything, neither kernel documentation mentions Silicon :-( So, I am doing it the hard way. I figured out frequencies (from cable tv news letter) for a few TV channels and created "Custom" list of channels in .tvtime/stationlist.xml and launched this script to find a working tuner:

#/usr/bin/env bash
MAX=100
TVCARD=88
t=0
while [ $t -lt $MAX ];
do
    rmmod tuner saa7134_alsa saa7134 tda98870
    modprobe saa7134 card=$TVCARD tuner=$t
    modprobe saa7134_alsa
    echo "Actual tuner is:" $t
    sleep 1 # this is to make sure /dev/video is registered when tvtime starts
    tvtime
    sleep 1
    t=$(($t+1))
done

...and at the point of 54 I got video part of TV running!!! In conclusion, the driver can be loaded with "modprobe saa7134 card=88 tuner=54", there are probably more combinations, if you know a better one, please tell me: mmikucionis at gmail com.

Making sound work

The card does not have audio output jack that I could connect to my sound card audio input, so I need to route the audio signal by software means. Luckily Linux kernel includes DMA driver for it: I did "modprobe saa7134-alsa" and a new audio device interface (with id 2, yours could be different) has been created for me. Now I just need to record the sound from this new device and output it to my main audio device (or use it for multiplexing with video when recording). I found two ways, the straightforward (of what I just explained):

arecord -D hw:2,0 -r 32000 -c 2 -f S16_LE | aplay -

However it eventually (after about 15-20mins) gets out of sync with video with overrun/underrun messages. This is not good enough. The better choice is sox:

sox -t alsa hw:2,0 -t alsa hw:0,0

This solves the synchrony problem, I cannot even break the synchrony even with Ctrl+S (suspend/freeze sox process), so it seems that sox picks up only the up-to-date audio samples (no process pipe buffering like in first approach), it's a mystery for me how this works.

Then I noticed that in periods of about 15-20mins the video part is freezing or giving only few frames per second (and CPU consumption drops to almost 0% versus about 40% during normal playback), but audio continues without any glitches. Luckily this lasts for only a few seconds and tvtime seems to recover (for another 15-20mins). The other downside is that sox reports the stream being mono, regardless of tvtime setting Stereo in channel audio properties (is this supposed to be changing during the channel switch from Stereo to Mono and vice versa? I hope not..). So I assume I still need to find a proper card driver.

For now, I am using this script to start sox and tvtime at the same time:

#!/bin/sh
sox -qt alsa hw:2,0 -t alsa hw:0,0 &
soxpid=$!
tvtime --mixer=/dev/mixer:pcm
kill $soxpid

The mixer part in tvtime command line is used to tell tvtime that it should use my main audio card's PCM mixer to adjust the volume instead of something that does not respond.

Additional information

The following information could be usefull in determining the contents of this card as I am not certain with what I have and that it won't blow up. Everything here is for the sake of compatibility and interroperability, and no intention to break any copyright laws, if you still have problems with information being displayed below, then let me know, and I will remove it.

Linux developers, let me know if you need more info/experiments with this card: mmikucionis gmail com.

The card ships with the following driver files for Microsoft Windows:

34avstrm.cat
34CoInstaller.dll
p3xunist.exe
SetupDrv.exe
SetupSP.exe
34AVStrm.inf
TVP3XDrv.ini
3xHybrid.sys

The contents of 34AVStrm.inf is:

; Copyright 2004, Philips Semiconductors GmbH

[Version]
signature="$CHICAGO$" ;all windows os
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%PSH%
DriverVer=01/26/2004,1.3.2.0
CatalogFile=34AVStrm.cat

[Manufacturer]
%PSH%=Philips

[Philips]
;%30Hybrid.DeviceDesc%=3xHybrid,PCI\VEN_1131&DEV_7130
;%34Hybrid.DeviceDesc%=3xHybrid,PCI\VEN_1131&DEV_7134
;%33Hybrid.DeviceDesc%=3xHybrid,PCI\VEN_1131&DEV_7133

%Hybrid.DeviceDescSilicon%  =3xHybridA,PCI\VEN_1131&DEV_7133
;******** Subvendors
%Hybrid.DeviceDescSilicon%  =3xHybridA,PCI\VEN_1131&DEV_7133&SUBSYS_713117DE
%Hybrid.DeviceDescSilicon%  =3xHybridA,PCI\VEN_1131&DEV_7133&SUBSYS_713517DE
%Hybrid.DeviceDescSilicon%  =3xHybridB,PCI\VEN_1131&DEV_7133&SUBSYS_713617DE
%Hybrid.DeviceDescSilicon%  =3xHybridC,PCI\VEN_1131&DEV_7133&SUBSYS_713717DE
%Hybrid.DeviceDescSilicon%  =3xHybridD,PCI\VEN_1131&DEV_7133&SUBSYS_713817DE
%Hybrid.DeviceDescSilicon%  =3xHybridE,PCI\VEN_1131&DEV_7133&SUBSYS_720017DE
%Hybrid.DeviceDescSilicon%  =3xHybrid,PCI\VEN_1131&DEV_7133&SUBSYS_725017DE

[DestinationDirs]
3xHybrid.CopyCoInst=11
3xHybrid.CopyFiles=10,system32\drivers ; be aware not to use 12 as the drivers directory,
                                       ; as driver will not work anymore in W98

[SourceDisksNames]
1 = %AVSTRM_INSTALLATION_DISK%,,

[SourceDisksFiles]
34CoInstaller.dll=1
3xHybrid.sys=1

[3xHybrid.CopyCoInst]
34CoInstaller.dll

[3xHybrid.CopyFiles]
3xHybrid.sys

;
;*** initialization and registry entries
;

[3xHybrid.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridA.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridB.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridC.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridD.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridE.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybrid.ntx86.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridA.ntx86.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridB.ntx86.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridC.ntx86.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridD.ntx86.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg

[3xHybridE.ntx86.CoInstallers]
CopyFiles = 3xHybrid.CopyCoInst
AddReg = 3xHybrid.CoInstaller_AddReg


[3xHybrid.CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000,"34CoInstaller.dll, CoInstallerEntry"

[3xHybrid]
AlsoInstall=KS.Registration(ks.inf), WDMAUDIO.Registration(wdmaudio.inf), KSCAPTUR.Registration(kscaptur.inf), BDA.Installation(bda.inf)
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg

[3xHybridA]
AlsoInstall=KS.Registration(ks.inf), WDMAUDIO.Registration(wdmaudio.inf), KSCAPTUR.Registration(kscaptur.inf), BDA.Installation(bda.inf)
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridA.AddReg, Common.AddReg

[3xHybridB]
AlsoInstall=KS.Registration(ks.inf), WDMAUDIO.Registration(wdmaudio.inf), KSCAPTUR.Registration(kscaptur.inf), BDA.Installation(bda.inf)
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridB.AddReg, Common.AddReg

[3xHybridC]
AlsoInstall=KS.Registration(ks.inf), WDMAUDIO.Registration(wdmaudio.inf), KSCAPTUR.Registration(kscaptur.inf), BDA.Installation(bda.inf)
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridC.AddReg, Common.AddReg

[3xHybridD]
AlsoInstall=KS.Registration(ks.inf), WDMAUDIO.Registration(wdmaudio.inf), KSCAPTUR.Registration(kscaptur.inf), BDA.Installation(bda.inf)
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridD.AddReg, Common.AddReg

[3xHybridE]
AlsoInstall=KS.Registration(ks.inf), WDMAUDIO.Registration(wdmaudio.inf), KSCAPTUR.Registration(kscaptur.inf), BDA.Installation(bda.inf)
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridE.AddReg


[3xHybrid.ntx86]
Include=ks.inf, wdmaudio.inf, kscaptur.inf, bda.inf
Needs=KS.Registration.NT, WDMAUDIO.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg

[3xHybridA.ntx86]
Include=ks.inf, wdmaudio.inf, kscaptur.inf, bda.inf
Needs=KS.Registration.NT, WDMAUDIO.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridA.AddReg, Common.AddReg

[3xHybridB.ntx86]
Include=ks.inf, wdmaudio.inf, kscaptur.inf, bda.inf
Needs=KS.Registration.NT, WDMAUDIO.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridB.AddReg, Common.AddReg

[3xHybridC.ntx86]
Include=ks.inf, wdmaudio.inf, kscaptur.inf, bda.inf
Needs=KS.Registration.NT, WDMAUDIO.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridC.AddReg, Common.AddReg

[3xHybridD.ntx86]
Include=ks.inf, wdmaudio.inf, kscaptur.inf, bda.inf
Needs=KS.Registration.NT, WDMAUDIO.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridD.AddReg, Common.AddReg

[3xHybridE.ntx86]
Include=ks.inf, wdmaudio.inf, kscaptur.inf, bda.inf
Needs=KS.Registration.NT, WDMAUDIO.Registration.NT, KSCAPTUR.Registration.NT, BDA.Installation.NT
CopyFiles=3xHybrid.CopyFiles
AddReg=3xHybrid.AddReg, 3xHybridE.AddReg

[3xHybrid.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridA.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridB.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridC.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridD.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridE.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybrid.ntx86.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridA.ntx86.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridB.ntx86.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridC.ntx86.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridD.ntx86.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybridE.ntx86.Services]
AddService=3xHybrid, 0x00000002, 3xHybrid.ServiceInstall

[3xHybrid.ServiceInstall]
DisplayName=%DISPLAY_NAME%
Description=%SERVICE_DESCRIPTION%
ServiceType=%SERVICE_KERNEL_DRIVER%
StartType=%SERVICE_DEMAND_START%
ErrorControl=%SERVICE_ERROR_IGNORE%
ServiceBinary=%12%\3xHybrid.sys
; [StartName=driver-object-name]
; [AddReg=add-registry-section[, add-registry-section] ...]
; [DelReg=del-registry-section[, del-registry-section] ...]
; [BitReg=bit-registry-section[,bit-registry-section] ...]
; [LoadOrderGroup=load-order-group-name]
; [Dependencies=depend-on-item-name[,depend-on-item-name]...]

[3xHybrid.AddReg]
HKR,,DevLoader,,*NTKERN
HKR,,NTMPDriver,,3xHybrid.sys

; audio capture registry entries

HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,3xHybrid.SYS

HKR,Drivers,SubClasses,,"wave,mixer"

HKR,Drivers\wave\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv

HKR,Drivers\wave\wdmaud.drv,Description,,"Europa audio capture device"
HKR,Drivers\mixer\wdmaud.drv,Description,,"Europa audio capture device"

; Setting FM radio of the Silicon tuner via SIF (GPIO 21 in use/ 5.5MHz)
HKR, "Audio", "FM Radio IF",0x00010001,0x729555

; Enable MCE
;HKR, "Parameters", "MCE",0x00010001,0x01
; add audio input and output pinnames

HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%VAMP_ANLG_AUDIO_IN_PIN%,"Name",,"Analog Audioinput"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%VAMP_ANLG_AUDIO_OUT_PIN%,"Name",,"Audio"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%VAMP_ANLG_VIDEO_ITU_PIN%,"Name",,"Analog ITU Video"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%VAMP_ANLG_AUDIO_I2S_PIN%,"Name",,"I2S Audio"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%VAMP_MPEG_AES_PIN%,"Name",,"MPEG Audio ES"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%VAMP_MPEG_VES_PIN%,"Name",,"MPEG Video ES"
HKLM,SYSTEM\CurrentControlSet\Control\MediaCategories\%VAMP_MPEG_PS_PIN%,"Name",, "MPEG2 Program"

[3xHybridA.AddReg]
HKR, "I2C Devices", "Device 0, Data1",0x00010001,0x14,0x00,0x00,0x00               ; Tuner ID
HKR, "I2C Devices", "Device 0, Data6",0x00010001,0x30,0x00,0x00,0x00               ; FM radio mode.

[3xHybridB.AddReg]
HKR, "I2C Devices", "Device 0, Data1",0x00010001,0x22,0x00,0x00,0x00               ; Tuner ID
HKR, "I2C Devices", "Device 0, Data6",0x00010001,0x30,0x00,0x00,0x00               ; FM radio mode.

[3xHybridC.AddReg]
HKR, "Parameters", "Latency Timer",0x00010001,0x40
HKR, "I2C Devices", "Device 0, Data1",0x00010001,0x14,0x00,0x00,0x00               ; Tuner ID
HKR, "I2C Devices", "Device 0, Data6",0x00010001,0x32,0x00,0x00,0x00               ; FM radio mode.

[3xHybridD.AddReg]
HKR, "Parameters", "Latency Timer",0x00010001,0x40
HKR, "I2C Devices", "Device 0, Data1",0x00010001,0x14,0x00,0x00,0x00               ; Tuner ID
HKR, "I2C Devices", "Device 0, Data6",0x00010001,0x30,0x00,0x00,0x00               ; FM radio mode.

[3xHybridE.AddReg]
HKR, "Parameters", "Syncronization disabled",0x00010001,0x0

[Common.AddReg]
HKR, "AudioDecoder", "Tuner Channel",0x00010001,1
HKR, "AudioDecoder", "CVBS Channel",0x00010001,3
HKR, "AudioDecoder", "SVHS Channel",0x00010001,3
HKR, "AudioDecoder", "FM Radio Channel",0x00010001,1

; maps user setting to hardware video input
HKR, "VideoDecoder", "Tuner Channel",0x00010001,1
HKR, "VideoDecoder", "CVBS Channel",0x00010001,3
HKR, "VideoDecoder", "SVHS Channel",0x00010001,8
HKR, "VideoDecoder", "FM Radio Channel",0x00010001,1

; I2C Device settings
HKR, "I2C Devices", "Number of I2C Devices",0x00010001,1


HKR, "I2C Devices", "Device 0, Data2",0x00010001,0xC2,0x00,0x00,0x00               ; Tuner slave addr.
HKR, "I2C Devices", "Device 0, Data3",0x00010001,0x96,0x00,0x00,0x00               ; Tuner IF PLL slave addr.
HKR, "I2C Devices", "Device 0, Data4",0x00010001,0x00,0x00,0x00,0x00               ; Tuner IF PLL slave addr.
HKR, "I2C Devices", "Device 0, Data5",0x00010001,0x01,0x00,0x00,0x00               ; Tuner IF PLL slave addr.


HKR, "I2C Devices", "Force Registry Settings",0x00010001,1

HKR,,PageOutWhenUnopened,3,0
HKR,,DontSuspendIfStreamsAreRunning,3,00


;
;*** strings, GUIDs and names
;

[Strings]

; Proxy GUIDs

KSProxy.CLSID   = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSXBar.CLSID    = "{71F96460-78F3-11d0-A18C-00A0C9118956}"
KSTVAudio.CLSID = "{71F96462-78F3-11d0-A18C-00A0C9118956}"
KSTvTune.CLSID  = "{266EEE40-6C63-11cf-8A03-00AA006ECB65}"

; Category GUIDs

KSCATEGORY_CAPTURE                = "{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_VIDEO                  = "{6994AD05-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_AUDIO                  = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"

; Our Pin Name GUIDs

VAMP_ANLG_AUDIO_IN_PIN   = "{7BB284B9-714D-493d-A101-B1B028E782BD}"
VAMP_ANLG_AUDIO_OUT_PIN  = "{5582E657-E596-42b5-9DB3-541B27A2355F}"
VAMP_ANLG_AUDIO_I2S_PIN  = "{C2E46358-F032-4d88-B802-06B59D162730}"
VAMP_ANLG_VIDEO_ITU_PIN  = "{82631A2E-403C-4581-A4B0-EC173D004410}"

VAMP_MPEG_AES_PIN        = "{9DEC84B9-BCEF-4aac-997E-43EDD0A2D6C7}"
VAMP_MPEG_VES_PIN        = "{181CF87E-7741-47ba-8629-22347E03C64C}"
VAMP_MPEG_PS_PIN         = "{DDA87B83-65DB-4aec-82D0-79FBE67D2BB6}"

; Our Filter GUIDs

VAMP_ANLG_AUDIO_FILTER   = "{F3B951E7-8619-4ff3-91CA-03910E4BB900}"
VAMP_ANLG_CAP_FILTER     = "{BBEFB6C7-2FC4-4139-BB8B-A58BBA724000}"

; system defines

SERVICE_BOOT_START     = 0x0
SERVICE_SYSTEM_START   = 0x1
SERVICE_AUTO_START     = 0x2
SERVICE_DEMAND_START   = 0x3
SERVICE_DISABLED       = 0x4

SERVICE_KERNEL_DRIVER  = 0x1
SERVICE_ERROR_IGNORE   = 0x0
SERVICE_ERROR_NORMAL   = 0x1
SERVICE_ERROR_SEVERE   = 0x2
SERVICE_ERROR_CRITICAL = 0x3

FLG_REGSVR_DLLREGISTER = 0x00000001

;Our strings

PSH="Philips"
30Hybrid.DeviceDesc      = "Philips SAA7130, Hybrid Capture Device"
34Hybrid.DeviceDesc      = "Philips SAA7134, Hybrid Capture Device"
33Hybrid.DeviceDesc      = "Philips SAA7133/35, Hybrid Capture Device"
AVSTRM_INSTALLATION_DISK = "3xHybrid installation disk"
DISPLAY_NAME             = "3xHybrid service"
SERVICE_DESCRIPTION      = "The Europa capture driver"
Hybrid.DeviceDescSilicon=   "Philips SAA713X, Hybrid Capture Device"

The contents of TVP3XDrv.ini is:

;============================================================================
; English
;============================================================================
[1]
;
;		713X WDM Driver Setup inf file related
;   	Driver Version : V2.3.4.1a (040712)
;
DevIDNum=1
DevDrvID0=PCI\VEN_1131&DEV_713

;DevDrvName0=Philips TV7135 WDM Video Capture
;DevDrvSYS0=cap713x.sys
;DevDrvINF0=cap713x.inf
DevDrvName0=Philips SAA713X, Hybrid Capture Device
DevDrvSYS0=3xHybrid.sys
DevDrvINF0=34AVStrm.inf


PossibleDevIDNum=0
;PossibleDevID0=PCI\VEN_1131&DEV_7130
;PossibleDevID1=PCI\VEN_1131&DEV_7133
;PossibleDevID2=PCI\VEN_1131&DEV_7134

;PossibleDevInf0=cap7130.inf
;PossibleDevInf1=cap7133.inf
;PossibleDevInf2=cap7134.inf

;PossibleDevDrvName0=Philips TV7135 WDM Video Capture
;PossibleDevDrvName1=Philips TV7135 WDM Video Capture
;PossibleDevDrvName2=Philips TV7135 WDM Video Capture

;PossibleDevDrvSYS0=cap7134.sys
;PossibleDevDrvSYS1=cap7134.sys
;PossibleDevDrvSYS2=cap7134.sys

ExtDevIDNum=0
;ExtDevDrvID0=Stream\PhTVTune
;ExtDevDrvName0=Empire WDM TVTuner
;ExtDevDrvSYS0=phTvTune.sys
;ExtDevDrvINF0=phTvTune.inf

;ExtDllFileNum=3
ExtDllFileNum=1
;ExtCopyFileName0=Prop713x.dll
;ExtCopyFileName1=34api.dll
;ExtCopyFileName2=34com.dll
ExtCopyFileName2=34CoInstaller.dll

; SetupSP and SetupDrv will use this parameter
;DrvChkFinishName=Philips TV7135 WDM Video Capture
DrvChkFinishName=Philips SAA713X, Hybrid Capture Device

DrvUninstRegKeyPath=TVP3XDrv
;DrvUninstRegKeyName=Philips TV7135 WDM Video Capture
DrvUninstRegKeyName=Kworld TV713X Utilities
DrvUninstAppName=p3xunist.exe

;
; mulit-language support for SetupDrv.exe
;
;AppDrvSetupTitleName=Kworld TV713X WDM Drivers Setup Wizard
;AppDrvSetupInitTipW2K=Press "START" to install Kworld TV713X WDM Drivers.
;AppDrvSetupRunTipW2K=Now we are installing Kworld TV713X WDM Drivers and wait a minute.
;AppDrvSetupFinishW2K=We have installed Kworld TV713X WDM Drivers successfully !!
AppDrvSetupTitleName=Kworld TV713X BDA Drivers Setup Wizard
AppDrvSetupInitTipW2K=Press "START" to install Kworld TV713X BDA Drivers.
AppDrvSetupRunTipW2K=Now we are installing Kworld TV713X BDA Drivers and wait a minute.
AppDrvSetupFinishW2K=We have installed Kworld TV713X BDA Drivers successfully !!


;AppDrvSetupPassMsgW2K=We have installed Kworld TV713X WDM Drivers successfully on Win2K/XP.
AppDrvSetupPassMsgW2K=We have installed Kworld TV713X BDA Drivers successfully on Win2K/XP.
AppDrvSetupNoFoundDev=We CAN'T find any TV713X Devices on your system.
;AppDrvSetupFailMsgW2K=The TV713X WDM Driver Installation failed!!
;AppDrvSetupRestartW2K=You MUST to restart your system and re-install the TV713X WDM Drivers.
AppDrvSetupFailMsgW2K=The TV713X BDA Driver Installation failed!!
AppDrvSetupRestartW2K=You MUST to restart your system and re-install the TV713X BDA Drivers.


;AppDrvSetupRunTipW9X=Now we are installing Kworld TV713X WDM Drivers.
;AppDrvSetupPassMsgW9X=We have installed Kworld TV713X WDM Drivers successfully on Win9X.
;AppDrvSetupReboot1W9X=TV713X WDM Drivers have been installed completely on Win9X.
AppDrvSetupRunTipW9X=Now we are installing Kworld TV713X BDA Drivers.
AppDrvSetupPassMsgW9X=We have installed Kworld TV713X BDA Drivers successfully on Win9X.
AppDrvSetupReboot1W9X=TV713X BDA Drivers have been installed completely on Win9X.
AppDrvSetupReboot2W9X=Please CLOSE other applications before restarting computer.

OKText=OK
CancelText=Cancel
StartText=Start

;	Setup9XPatch
;	CompanyName & ProductName are the same with the Note file in the InstallShied 7.0
;
;AppPatchName=Kworld TV713X WDM Drivers Patch
AppPatchName=Kworld TV713X BDA Drivers Patch
CompanyName=Kworld Multimedia
ProductName=TV713X

;
;	p3xUnist.exe : WDM Driver Uninstallation.
;
;
;UnInstDrvAppTitle=Kworld TV713X WDM Drivers Uninstallation Wizard
;UnInstNoRegKeyMsg=The Kworld TV713X WDM Drivers Uninstallation failed !!
;UnInstDrvPassMsg=Kworld TV713X WDM Drivers have been uninstalled completely.
;UnInstDrvRunTipMsg=Please click 'OK' to uninstall the TV713X WDM Drivers. 
UnInstDrvAppTitle=Kworld TV713X BDA Drivers Uninstallation Wizard
UnInstNoRegKeyMsg=The Kworld TV713X BDA Drivers Uninstallation failed !!
UnInstDrvPassMsg=Kworld TV713X BDA Drivers have been uninstalled completely.
UnInstDrvRunTipMsg=Please click 'OK' to uninstall the TV713X BDA Drivers. 


UnInstServiceNum=1
UnInstService0=34AVStrm