Hauppauge WinTV-HVR-950Q

From LinuxTVWiki
Jump to navigation Jump to search

Package.jpg

Overal Impression

This is my first video capture device and I really like it. It currently works great/excellent for ATSC (digital broadcast) but, at the time of writting, it doesn't work at all for NTSC (analog TV/cable). There is a patch[1] already available that fixes this problem, but I haven't tried it. I use WinTV-HVR-950Q on very modest hardware: an old Dell Latitude D600 laptop with 2GHz/500MB connected to a 1080p LCD TV through a VGA cable. Both my TV and the WinTV are connected to an internal amplified antenna (TERK HDTVa). This WinTV tuner is as good as my TV tuner: both found the same channels and have about the same video quality (even for 1080i broadcasts).

Note that it's critical to have a fast video card. My card, ATI Radeon 9000 32Mb, is not supported by ATI anymore, so I had to use the open source radeon driver instead of ATI's fglrx. If you use the default settings for the radeon driver, you will get a pitiful 170FPS in glxgears, which is NOT sufficient for watching digital TV. But after I used this xorg.conf file[2], I got about 1100FPS, which was sufficient. Of course, I had to do the following to get the best resolution on my TV (and a blank screen on my laptop):

xrandr --output LVDS --off --output VGA-0 --mode 1920x1080

Basic Installation

The xc5000 driver needed for this WinTV-HVR-950Q is already part of the latest Linux kernel (part of v4l-dvb drivers). You should upgrade to Linux kernel 2.6.27. First you need to download and install the xc5000 firmware:

wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
wget http://www.steventoth.net/linux/xc5000/extract.sh
sh extract.sh
cp dvb-fe-xc5000-1.1.fw /lib/firmware
modprobe xc5000

The firmware will be added lazily (on-demand) when you first use the driver. After you plug-in the device on a USB 2.0 port (it won't work with a USB 1.1) and use the driver for the first time (eg, by scanning channels), you may see something like this on dmesg:

usb 1-3: new high speed USB device using ehci_hcd and address 3
usb 1-3: configuration #1 chosen from 1 choice
au0828: i2c bus registered
tveeprom 0-0050: Hauppauge model 72001, rev B3F0, serial# 5280879
tveeprom 0-0050: MAC address is 00-0D-FE-XX-XX-XX
tveeprom 0-0050: tuner model is Xceive XC5000 (idx 150, type 4)
tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
tveeprom 0-0050: audio processor is AU8522 (idx 44)
tveeprom 0-0050: decoder processor is AU8522 (idx 42)
tveeprom 0-0050: has no radio, has IR receiver, has no IR transmitter
hauppauge_eeprom: hauppauge eeprom: model=72001
xc5000 0-0061: creating new instance
xc5000: Successfully identified at address 0x61
xc5000: Firmware has not been loaded previously
DVB: registering new adapter (au0828)
DVB: registering adapter 0 frontend 0 (Auvitek AU8522 QAM/8VSB Frontend)...
Registered device AU0828 [Hauppauge HVR950Q]
usb 1-3: New USB device found, idVendor=2040, idProduct=7200
usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=10
usb 1-3: Product: WinTV HVR-950
usb 1-3: Manufacturer: Hauppauge
usb 1-3: SerialNumber: 000000000
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
firmware: requesting dvb-fe-xc5000-1.1.fw
xc5000: firmware read 12332 bytes.
xc5000: firmware upload

Connect the WinTV to a good antenna. Then download some tools (using your distribution installer, yum, apt-get, etc):

yum install dvb-apps mplayer

Then scan your ATSC channels. For example, to scan ATSC channels in US do

scandvb /usr/share/dvb-apps/atsc/us-ATSC-center-frequencies-8VSB > channels.conf

Then copy the file channels.conf to the directory .mplayer/ and test it on of one of the channels listed in channels.conf. For example, if you have a channel called KERA-HD, you do:

mplayer dvb://'KERA-HD'

In my case, for a 1080i broadcast, I had to use the following parameters:

mplayer dvb://'KERA-HD' -vo x11 -framedrop 1 

because of my slow video and audio cards.