
Why have you forsaken me?
My MythTV box has been chugging along nicely, playing DVDs and recording two shows off of a 2-tuner standard definition hardware MPEG encoder card (doing all at once). Just before Thanksgiving, I purchased a projector that can do 720p and had been enjoying the finer detail of my DVDs at full resolution. However, standard definition material really looks like crap when displayed on a 69" screen. Enter: High Definition. I bought a HDTV tuner card, thinking that I had prepared myself for this moment. According to the MythTV documentation, the minimum recommended processor speed for recording and playing off of one HD Tuner card is about 2.4GHz. So I built my box with an Athlon XP 2800+ (2083MHz clock speed) thinking it would be up to the task. Think again...
To get my CPU usage to a managable level while playing HD content, I had to change the MPEG2 decoder to XvMC, which brought it from an utterly useless 90% to a more managable 50%. I then had to deal with tearing issues on HD programs. While researching I discovered the older 5 series nvidia cards apparently don't have the tearing problem (because they work correctly with the OpenGL software), so I switched out my 6200 for a 5200. This solved my tearing and still plays HD with about 50% cpu usage, however... if even the slightest process starts, ends, operates or even so much breathes there can be issues.
Mostly these issues stem from doing too many things at once. Recording/Buffering/Playing HD with a 2 channel audio stream will work as long as there's nothing going on (listing the guide on-screen, browsing channels, etc.). Where it really falls apart is when you add in AC3 passthrough. Yesterday on ABC, Polar Express was being broadcast in HD. It was a sight (and sound) to behold, 1280x720 with Dolby Digital 5.1 sound -- all over the airwaves. The scene where the train stops at the boy's house was amazing! It rattled the cups in the cupboard... until the audio started dropping out. Then, as South Park started to record later, it got worse, much worse. I had to stop that recording, cancel three more 1/2 hour recordings as well as suspend all commercial flagging just so I could finish Polar Express. This is when I realized I simply need to upgrade. To everyone else, learn from my mistake: when you read that 2.4GHz is a minimum, remember: this is the bare minimum. If you want to do DD5.1, deinterlacing, and have video without tearing go read the benchmarks and buy the fastest thing you can afford.
This is the approach that is sometimes looked down upon by software developers: throw some more hardware at it. I think this is usually a bad approach because it probably indicates that the software isn't as efficient as it should be. This may be the case of the nvidia drivers or even MythTV itself. But right now, what my box requires to do high definition is some more horsepower. It seems doing 1920x1080 video at 30fps requires quite a bit of processing power. It reminds me of when MP3s first became popular. My poor Cyrix 6x86 120MHz (marketed as 166+) could barely play a MP3 without stuttering... I had to run my MP3 player with setuid root, and dare not doing anything else on the computer! Similarly with HD, the 1920x1080 video can only be rendered by pretty expensive display devices -- seems that it also goes for processing HD too.
So I ordered a new Intel Core 2 Duo E6600. Two cores at 2.4GHz, 4MB cache. Yes I know the clock speed is slower than "the recommended" but now that we're onto a new instruction set and 64 bit words the numbers are a bit different (I believe the MythTV docs reference P4s and Athlon XPs). I'm kind of excited as this is the first desktop/server class Intel processor I've ever bought
All this is to really do away with XvMC and let the new, powerful processor handle all the MPEG decoding with standard libaries. Without the (broken) XvMC / nvidia interaction, there should be no tearing, plus I can have color menus, get Picture-in-Picture back, and hopefully be able to record 3 shows (2 SD, 1HD), commercial flag, and watch a HD program all at once. If I can't, you'll surely hear back from me...