Hauppauge HD-PVR

From MythTV Official Wiki
Revision as of 16:18, 12 June 2008 by Iamlindoro (talk | contribs)

Jump to: navigation, search
The Hauppauge HD-PVR Model 1212.

As of late May 2008, the Hauppauge HD-PVR is shipping to customers. The HD-PVR is a USB device that captures the component video and analog/optical audio outputs of any consumer device (including cable/satellite set-top-boxes, HD Disk Players, video game consoles, and various other home media devices). The HD-PVR is a highly anticipated capture device because it exploits the so-called "analog hole" of component video outputs, permitting the user to capture High-Definition video from most sources and without concern for encryption. In other words, since component video is not and cannot be encrypted, previously un-capturable HD sources such as satellite and premium television will now be fully accessible in MythTV.

The HD PVR captures at resolutions from VGA/D1 up to 1080i, and encodes the component inputs in real time using the h.264/MPEG-4 video codec and the AAC audio codec. The streams are muxed into a slightly modified MPEG-2 Transport Stream container. Capture resolution is dependent on the source (ie 720p video with be captured as such, 1080i as 1080i, etc.) but the bitrate is user-selectable from 1 Megabit/second up to 13.5 Megabits/second. The h.264 video codec is, bit-for-bit, up to 40% more efficient than the MPEG-2 video codec commonly used in US HDTV broadcasts today. A 13.5 Mb/s h.264 stream is roughly equivalent to a full-channel-bitrate MPEG-2 recording at approximately 19 Mb/s.

The HD-PVR uses modern codecs capable of exceptional compression rates at excellent quality. The tradeoff is that decoding h.264 material is very processor-intensive. Systems which struggle or barely manage to play back US broadcast HD are likely to fail altogether when playing back recording from the HD-PVR. Hauppauge recommends a dual-core CPU as a minimum. A frequently cited minimum for medium-bitrate h.264 playback is a Core 2 Duo 1.8 Ghz processor. HD Playback Reports acts as a repository for processor requirements to play High Definition material. HD-PVR users are encouraged to contribute to the page to ascertain real-world playback requirements with MythTV.

Hauppauge has signalled their intention to update the HD-PVR firmware and software with the ability to mux the original AC3 audio of the source via the optical connector, enabling the device to record the original multichannel audio track. This capability will not be present at launch.

Possible Countermeasures

Some UK television providers (notably Virgin and Freesat) have attempted to counter the HD-PVR and similar devices by selectively disabling the component outputs of their set-top-boxes. US cable and satellite providers are following suit and lobbying legislators for the right to disable the component outputs of their devices.

NOTE: Citations for the above information would be helpful for readers seeking additional information about this issue. Thanks.

There is a theoretical solution to this, albeit somewhat expensive. A company called HDFury makes a HDCP-compliant HDMI to RGB bridge. The RGB output of the HDFury can be converted to component with a second device from Box1020. In essence, a user with an HDMI-only device could utilize the following path to convert HDMI to component video:

HDMI Source -> HDMI to DVI cable -> HD Fury -> Box1020 -> Component Cable -> HD-PVR

At the time of this writing, the HDFury and Box1020 cost approximately $350 US. Add to that the cabling and $250 US cost of the HD-PVR and the total cost approaches $650 US. Some users will be put off by the high cost and circuitousness of the solution, but for an increasing number of MythTV users, it may be the only one.

Another possibility is the Exten HD HDMI to Component Video Converter. It is currently available for approximately $260.00 US. However this device automatically shuts off the component outputs when the input is encrypted (Protected), so it is no different than the outputs of the set top box.

HD-PVR Driver Compilation Howto

The alpha release of the HD-PVR Linux driver is available at http://hg.jannau.net/hdpvr/

Please note the following release notes:

The driver is currently at most alpha quality and tested only with
v4l2-ctl and cat /dev/video0. Other applications might fail in
interesting ways.

I've compiled the driver only with kernel 2.6.24 and 2.6.25. A tester
reported success on 2.6.22. 

-extend V4L MPEG encoding api (atm only add mpeg4 AVC and AAC
 as formats)
-test IR support and merge it into the official repo
-improve buffer management, especially make it fault-tolerant
-add missing device options (iirc only sharpness and
 chroma/luma filters)
-test with other v4l application and fix issues 

Support for MythTV is already worked on. 

I've probably missed a couple of things so feel free to reply or join
the development irc channel #hdpvr on freenode.net.


Currently, firmware loading is unimplemented in the driver. As a result, you must install the HD-PVR at least once on a Windows machine to load the firmware into it. Once you have done so, you will need a working build environment, Mercurial tools, and kernel headers on your system. In Debian and debain-based distros, the following command should install all necessary dependencies to build the driver.

sudo apt-get install build-essential mercurial linux-headers-`uname -r` 

Then, you can download the driver source with the following command:

hg clone http://hg.jannau.net/hdpvr/

In best case scenarios, the following should be enough to compile and install the driver:

cd hdpvr
sudo make install 

If compilation and installation succeeded, it should be possible to load the HD-PVR driver with:

modprobe hdpvr

In Ubuntu, the module may fail to load and refer you to the dmesg command. If this happens, reboot and see if the error resolves itself. It is also possible that Ubuntu is prioritizing another, older copy of the v4l-dvb modules above the one you just installed, and the hdpvr will fail because the two versions do not match. Try a command like:

locate cx88-dvb.ko |grep `uname -r`

This will search for the cx88-dvb kernel module, which is provided in the Hg tree you just built, and also in default Ubuntu installs. If you see more than one copy of this file, you may need to move the older versions out of the way. In at least one case, alternate versions of all the modules were located in "/opt/ltsp/amd64/lib/modules/kernel version number/ubuntu/". The symbol mismatch was solved by moving the "/opt/ltsp/amd64/lib/modules/kernel version number/ubuntu/media" directory into a backup directory in the user's home, then rebooting.

Configuring the HD-PVR in MythTV

MythTV support for the HD-PVR is also underway. A howto will appear in this space upon release of Myth support.