So, in the last 3 weeks I’ve done a lot with MythTV. Most notably, I’ve finished the frontend system that is connected to our TV. There was a lot of trial and error, frustration and an entire system replacement, but its now up and near perfect.
So, a week and a half ago Comcast got installed. I didn’t have any of the capture cards yet, so I did more reading and checking and it turns out the Comcast boxes include firewire ports. Despite what the installers say, they’re active on the boxes thanks to a nice FCC ruling a few years back. With active firewire ports, I wouldn’t need to get the PVR-350. I connected everything, following the guides from the MythTV wiki and went pretty smoothly. Or so I thought. I did manage to get things recording, but not reliably. In part 3, I’ll talk about my backend configuration since I’ll be doing more with that this afternoon and I’m not done with it. With the current setup, I have been managing to record HD programs and SD programs via firewire. That brought me to the shortcomings on the frontend…
So after recording my first Daily Show in HD and trying to watch it, there was a lot of stuttering and artifacts on the front end. Turns out it was the nVidia GeForce 7300GT in the frontend I had been using. It wasn’t quite up to the task of decoding HD content. So, a bit more reading and I found what appeared to be the perfect video card for it. I ordered from my favorite online store and it arrived a few days later. The card I ended up getting was a Zotec GeForce GT220. It seems that the GT2xx series are the first nVidia based cards to allow hardware accelerated decoding of MPEG4 as well as MPEG2 content. Additionally, the GT2xx series cards have a high quality scaler thats also in hardware.
Unfortunately, the frontend box was an old AGP based board. That means replacing the frontend with something a bit more modern. I managed to scrounge up a motherboard and CPU combination that would give Jessica an upgrade on her desktop machine and took her motherboard and used it for the frontend. I took her Athlon 64 3700 (2.2GHz) and replaced it with a dual core 3.4GHz Pentium D. After setting up the upgraded frontend hardware and connecting it to the TV, I still had issues with slowdowns. Xvid videos had a bar on the top 10% or so of the screen that shifted everything during scenes with motion, and MPEG2 streams from Comcast had a bit of stuttering and some blurring issues.
Turns out that I hadn’t yet optimized the frontend box for the new hardware yet. By default, the Myth frontend uses the CPU only for decoding and displaying video content. So, I went into the configuration under Setup -> Settings -> TV Display and made a few adjustments there. I enabled the VPDAU “Normal” profile and also turned on a few more tuning parameters since I have the GT220 card:
I added “colorspace=0,vpdaubuffersize=32,vpdauhqscaling” to the Custom Filters section.
That may have been enough, but I also did some X optimizations while I was at it. I disabled the Composite extension in xorg.conf:
Section “Extensions”
Option “Composite” “Disabled”
EndSection
And turned on Triple Buffering in the Device section:
Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce GT 220”
Option “TripleBuffer” “True”
EndSection
One other thing is that since I’m running an AMD CPU, I needed to adjust the automatic CPU frequency scaling as well. By default, it will drop down to 1GHz and lower the bus speed as well, which would slow down how fast the GT220 would get data. I added this to /etc/rc.local to tell it to only take the CPU down to 1.8Ghz:
echo 1800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
All of that may have been overkill, but let me tell you, everything is perfectly smooth now. No stutters, pauses or other glitches at all now. Fast forward and rewind are the smoothest they’ve ever been, rivaling our old TiVo’s capability.
All in all, I’m extremely pleased with the frontend configuration. Today I will be migrating from CentOS to Ubuntu 9.10 for the backend system, and then likely migrating to Ubuntu 10.4 LTS in a few weeks.
After updating the backend, I’ll post part 3 that will cover both firewire and Hauppauge setups. When I’m “finished” with the whole setup, I’ll post detailed specs and relevant configuration files for X, and for LIRC with the TiVo peanut remote.