The idea to build my own home theater box came to me one day as I hooked my new DLP HDTV up to the huge stack of components piled next to it. My stack had an audio amplifier, an aging Series 1 TiVo, an HD cable box, a DVD player, another DVD player with upsampling, an X-box, and a radio tuner. If you’ve ever hooked up a set of components like this, you know there are literally dozens of ways to wire it up and make it work halfway coherently with a multi-function remote.
I should know: I’ve been hooking up, configuring, and re-reconfiguring these components for more than a decade, through several eras of technology. That there isn’t one of the original components in the stack is irrelevant, though, because I still consider it the same stack.
The entire collection was obsolete. Modern sound cards and computers have more than enough compute power to do virtually unlimited signal processing on an audio signal without a dedicated digital signal processor (DSP). I needed only one type of video going into the TV; all the old analog stuff could be intercepted and turned into nice, civilized digital signals before it ever got there. One media center PC could do the entire job.
The Requirements List
Having decided to embark on my quest to build the ultimate media box for my home theater room, I decided to do this project the right way and choose my parts first. Normally, I have two methods of doing these kind of projects: the professional way that I do it at work, and the DIY way of buying a bunch of random stuff that’s on sale and forcing it to work together with hammers, screws, and software patches. This way I figured I wouldn’t be building another Frankenstein computer, adding to the boxes of expensive obsolete components that I have under my bench in the garage.
Ignoring the evidence that I live in a house full of kids who like to touch my stuff, I managed to get into the professional mode. This clears the mind of useless clutter like, “why is there another picture drawn on the back of the front door with a Sharpie?” The clutter faded like white noise, leaving me with crystal clear mental pathways to building the new box.
While working a professional project, I start with requirements. This sounds dry and boring, but what it really expresses is an engineer’s desire to 1) not to reinvent the circuit board, and 2) not to waste time doing unnecessary work that keeps me away from the really expensive toys in the lab. So I took a few seconds to develop my requirements:
- The Home Theater Control Center shall do everything.
You really have to admire the simple elegance of my list. It’s tight and internally consistent – a welcome change from most customer requirements.
That out of the way, I got down to the business of building stuff! Or at least thinking about building stuff, which is almost as fun. Ignoring for the moment that the definition of “everything” needed to be narrowed down a bit, I started to list the GZINs
Cable box, Antenna, X-Box, CD, DVD, HD-DVD, BluRay, disk files, Ethernet, Firewire (IEEE1392), USB
Disk files, VGA cable, DVI (or HDMI), analog audio, digital optical audio.
Ideally, you’d be able to buy a Deluxe Super Whiz-bang Home Theater Card with all the features you need and a couple dozen connectors. A quick ‘tubes google taught me that there isn’t any such thing. It also taught me that there are major issues around the use of DVI and HD format disk players. But more about that later. In any case, the GZINs above only really tell you what kind of input you have available, which isn’t necessarily the same thing as a list of the functions inside the box.
So I made another list:
RF Demodulator, Video Frame Grabber, Analog Audio, Digital Audio
DSP on the audio, video decoding, video transcoding, video filters and post processing.
Digital Video, Digital Audio, Analog Video, Analog Audio
It looks sort of like the same list, but it isn’t. The first list is interface types; the second list is function types, with various crossovers. Breakdown by function is useful in choosing hardware with as little overlap as possible and covers all the required functions.
First, The TV
There are two types of TV: old, yucky TV, and new shiny HDTV. Unfortunately, we still have to deal with old, yucky TV for a couple more years, so it’s a basic requirement of the tuner card. In addition to the yucky old analog TV, the tuner I chose had to support HDTV broadcasts, otherwise there wouldn’t be much point to having a big screen unit.
Being a big fan of Wikipedia, I started there. It has articles on virtually every topic involved in this project as well as extremely valuable pointers to existing guidelines. Of course this has been done before, and I could probably go over to the nearest MythTV HOWTO or Windows Media PC selection guide and let them do the work for me. But following someone else’s formula is just not in my nature. So like all good engineering projects, this one deserved over-thinking and lots of time-consuming internet research. My boss would call this type of research a “trade survey.” I call it “fun.”
So like most always, I started directly with the source of all knowledge. This article on TV tuner cards lists about a dozen manufacturers of hardware. Each of them has a bunch of products and variants. Firing up a spreadsheet, I started typing names and options into a big matrix. After about 20 minutes of that, I realized I’d be typing for a long, long time if I wanted to do anything that even resembled a comprehensive comparison.
Weighing the Options
I'd typed in far too much stuff and was remembering why engineers hate typing stuff in. So I started focusing on features that I really want. Then I realized that I'm not really sure what features I actually want. “Simple,” I told myself, “All of them.” Again, this held the simple elegance of my requirements list. So I headed straight to the professional sites. After all, why settle for the self explanatory WinTV, when you can have this bad boy?
A note at the site claims that it’s, “The most powerful video and audio capture and preprocessing available.” Well, with all due respect to Digital Rapids, this time I don't have the backing of a multi-million dollar departmental skunk works budget and a team of software engineers to write code for me.
Time For Some Compromise
So, somewhat depressed, at not being a multi-million dollar corporate skunk works team, the guiding principle of my search switched from “include several kitchen sinks” to “compromise.” After all, I wasn't designing a holodeck. I was putting together a platform to support watching TV and blasting zombies. So let’s break down what I really need the box to do rather than my preferred choice of every possible audio/video signal. First, the unit has to be able to capture TV signals in the US, because that's where I live.
- NTSC video capture.
Also, looking ahead, I see that Congress has decided that in a few short years, there will be no regular TV broadcasts, so the card must also support HDTV capture.
- HDTV video capture.
And that’s about it, unless you start throwing in selection criteria like, “must support Linux,” or “must be compatible with cable systems.” So let’s throw it in:
- Must support Linux or (Windows XP/Vista, if I'm left with no civilized choices).
- Must support QAM 64 and QAM 256.
NTSC and HDTV broadcasts are fundamentally different. HDTV signals are already digital after you strip the pesky RF modulation off. This means that once the card has the signal decoded, it's already in a format ready to save to disk. Not so with regular TV signals.
Old-fashioned TV is broadcast in analog, meaning that the card has to convert it to digital. This function is known as “video capture” or “frame grabbing,” depending on which product spec you’re looking at. Frame grabbers can also snag video from regular component inputs as well as from the original RF demodulator.
So now it's nice to consider what other, non-RF interfaces the card supports.
- Must support component video capture. This option is crucial to capturing movies from zombie blasting sessions as well as plugging in ancient devices like VCRs.
The interface is key to building out your media server. Although this article started out as an exploration of what is available in TV tuner cards for stand-alone PCs, many products are only available as USB sticks.
Additionally, many graphics cards manufacturers are including TV capture functions as part of a graphics board, thus combining both the input and the output capabilities.
- PCI card format.
- Stand-alone tuner unit.
At this point, I was tired of requirements development and was hungry to look at some hardware. And already the tuner card had expanded 7 times from my original requirements list and was no longer in the “simple elegance” category. Besides, the requirements I'd already chosen would probably turn out to be incompatible anyway due to some Linux/DRM clash. More about that later, too. So after applying my list of functions to the vast list of TV tuner cards, I was left with a pretty short list of five viable options:
Ok, fine. It’s really three viable options, but who’s counting?
ATI and LeadTech appear to be continuing down the path of only supporting Windows and is in close collusion with the misnamed “Trusted Computing” movement, so probably neither will support Linux anytime soon.
Fugue: The Operating System
At this point I needed to make a premature decision about operating systems because of my scant choices in the matter. So I made a decision matrix.
Linux and MythTV
Windows Media Center
Way Not Free
Simple and elegant again, I made my choice: for better or worse, I chose Linux to move forward with. I did, however, take care to hedge my bets by reserving enough disk space for a Windows partition, in the event that I needed to kill Windows-only zombies.
So much for my MythTV box!
I'm left with only one real choice: the HD-5500. Unfortunately, sparse choice is pretty typical for Linux support, so it's not too surprising.
To build a Windows Media PC, there are really only two choices available given the stand-alone constraint. So as a backup plan against some very evil people trying to lock me out of my own personally owned computer, I picked a Windows PC version of the hardware as well. As it happens, I also know that there's an alternate issue with Linux, related to its fundamentally open nature: digital rights management (DRM).
There are actually two issues: cable/satellite systems and Blu-ray/HD DVD. High definition video is considered to be high-value content by all major content providers. As a result, they insist that the content be protected along the entire transmission path, which, unfortunately, includes the CPU.
Briefly, Blu-ray DVDs are encrypted and as such, the players, whether they are hardware or software must include what are known as Device Keys in order to decrypt them. There are very strict rules that manufacturers must adhere to in order to get a device key from the AACS, the organization that holds the patents on the protection scheme used by Blu-ray and HD DVD devices.
Because player software for Blu-ray requires a device key to decrypt a video stream for playback, open-source software is not an option. If it were included, people would simply be able to read it and decrypt all their HD content for such evil purposes as saving their movies to a central server.
If people were able to do that, then their kids wouldn’t have the ability to scratch them into unusable plastic disks, thus the content providers would lose out on the replacement market. Besides, someone might upload the content to the internet, although I’m sure that’s only a secondary consideration because that’s illegal.
In any case, the drivers for Blu-ray or HD DVD players are tightly controlled to prevent people from such unauthorized use as making backups and are only available in Windows. The DRM doesn’t much apply to over-the-air (OTA) broadcasts (yet) so it largely doesn’t affect TV tuner cards.
However, a side effect of this is that many manufacturers completely neglect Linux in their driver development efforts, thus limiting the choices Windows XP Media Center and Windows Vista.
I placed the ATI HDTV Wonder on the list as a backup in the event that I found it necessary to buy HD DVD based content in the future.
GZIN means “goes in” and GZOUT means “goes out,” and it’s official engineering terminology too – just ask that guy with the two foot long combover who taught signal processing algorithms in grad school.