WDM Video Capture Driver
for Bt848 / Bt849 / Bt878 & Bt879 Chipsets.

You need
Supported Cards
Custom Card Support
Known limitations
Microsoft Bugs
A bit of History
Contact Info
Contribute to the Cause
Useful links
Sourceforge page
Custom Cards

Well, if your card is not supported right now by the driver, or you have some audio problems (for example, TV audio is not heard when you choose TV audio, or audio is off when it should be on, or radio does not work), and you can spend some time and you have Win98, Win95 or WinME available (now , the BtSpy utility also supports Win2000/WinXP) and installed on a computer, and you have the original drivers and applications bundled with your card... It is possible to create a custom card definition that will make nearly any card (in the vast majority of cases) work with this driver. Please, read all the following directions before proceeeding.  


  1. Install your video capture card in a computer running Win95/Win98/Win98SE/WinME/Win2000 or WinXP.
  2. Install the video capture drivers and applications that were bundled with your card - At this point, card must be working with the manufacturer drivers.
  3. Now execute the BtSpy utility (you can find it in the download section) and follow each and every of the steps the program proposes. Note that BtSpy must NOT be closed until it finishes, so, there will we times when BtSpy is running at the same time of the video capture card applications bundled with the card, so BtSpy is able to Spy those applications)
  4. When BtSpy utility finishes, it has collected all the required information to create a custom card profile (or template): The card profile is displayed, and you can modify it if you need to (most users don't need to modify it).
  5. Now save the profile in a safe place because you will need that profile when you install the new driver.
  6. Now you can install (if you need to) your video capture card in the computer where you plan to install the new driver
  7. Run the driver installer: When asked for the card model, select "Custom card" (the last one), select the TV tuner model your card is using (If you don't know the TV tuner model, you will have to try several until you find one of them that lets you switch TV channels). Also, if your card is able to tune Radio, you should check the "TV tuner can natively tune Radio" box.
  8. Now press "Next": The Custom card definition screen will appear.
  9. The easiest way to fill the requested values is by just pressing the "Import" button, and select now the profile generated with the BtSpy utility. All the required values will be imported. Else, you will have to manually fill them using the created report and the tooltips each field displays.
  10. Press the "Next" button and continue installation.
  11. If the profile generated with BtSpy is right (95% of cases), then the driver should be able to handle your board without trouble.
  12. Don't forget to keep a copy of the profile, as every time you install the driver, it will be needed.
  13. And , if you manage to make the card work , don't forget to send the profile to me, so i can add native support for your card in the next driver release!

Just a few explanations on how this works

The Bt848/Bt878 has 24 I/O lines called GPIO that are user defined as Inputs or outputs. Usually, those lines are used to control an external audio mux (audio selector) that is a chip that lets the video capture card select the audio source to output, or allows to mute the audio output. Those I/O lines could also be used to select stereo/SAP/mono audio for cards that have this capability (there are some that use a different method), and could also be used to read the IR receiver (again, this is not the only method)

The problem is that every and each card model use different (of the 24) I/O lines to accomplish those tasks. So, for eaxmple, a card could be using lines 0,2 and 5 to select the audio source while another card could be using lines 2,8 and 10 to select the audio source; and even if they use the same lines, maybe the binary values (1 or 0) that must be output by those lines could be different. And even worse, you must know which of those 24 I/O lines are inputs and which of them are outputs!

The Bt848/Bt878 chip has a register called GPOE (the acronym for General Purpose io Output Enable): If you write a value to this register, every bit that is set (to 1) will force the associated I/O line to be an Output, else, the associated I/O line will be an input. If you read it, you read the last written value.

The chip also has a GPDATA register: If you write to it , then all lines of the I/O port that are set to be Outputs will output the associated bit of the written value; If you read this register, you will read the last written value for each bit that is associated to an output line, and you will read the current status of the line if it is set as an input.

The chip has also a I2C bus implemented in hardware: It is normally used to control TV tuner modules, and sometimes is used to select audio sources (10% or less) or to read the IR receiver codes (10% or less). I have implemented autodetection in the driver for nearly all I2C chipsets that are actually used on those cards, so there is no need to worry about this. It simply asks using this bus if a chip is there, and installs the required support for it if found..

Video source selection has also some problems: The chip has an internal video mux with 4 inputs. The manufacturer wires one of those inputs to the TV tuner, and other one to the SVideo connector and the remaining ones to composite (RCA) inputs (or are simply left unconnected) - There's no way to know the video input used for each video source. There seems to be a kind of traditional assignment, but it is not always used.

As you might notice, the only problems are the GPIO bus, as there's no way to autodetect settings and the video mux used for each video source: The only way is to spy the values that are output by the manufacturer's software using the GPIO bus of the Bt chipset and the registers used to select the video input to digitize. This is exactly what the BtSpy tool does: While the manufacturer application is running, the BtSpy tool is reading the GPDATA and GPOE and videxmux registers of the Bt848/Bt878 continuously and saving the values used to enable each and every audio and video source. Then, a profile with those values is generated and it is displayed so user can save it, or modify it.

When you install the driver, that profile is imported, and the driver uses the values you have captured to enable/disable the audio sources and select the proper video source. That's all - It should let nearly every existing card based on the Bt848/Bt878 chip work with the driver!

Please, If you are able to get / create a working profile for your card, don't forget to send it to me, so i can add native support for your card in the next driver release!

© Eduardo Josť Tagle Powered by SourceForge
SourceForge Logo