I have finally got my HTPC working well, after much fiddling around to get things perfect. Turns out it’s no easy task, especially compared to my old XBOX media centre which pretty much just worked.
I am using an Abit A-S78H with 780g chipset (see my post about it), meaning Radeon 3200 graphics with hardware assisted video decoding. OS is Vista, mainly because I wanted to try out Vista Media Centre (which turned out to be crap), but XP will do to.
First thing is to get hardware acceleration working. PowerDVD 8 Ultra is the best option. It needs to be installed which includes the DXVA hardware assisted codecs. I use Media Player Classic Home Cinema as my player, and for DXVA to work you must use either the “VMR9 renderless” or “EVR” renderers in the output section of the options windows. Once set to either of those, CPU usage when playing H.264 or VP-1 encoded videos should drop to 10-15% (which is accounted for my misc processing and audio).
Next, to get perfect frame sync and prevent video tearing, either VMR9 with vertical blank sync or EVR with frame sync needs to be selected. Using either of these means that playback will be full screen only and no menus or on-screen text will be displayed.
My TV is a Samsung with 100Hz motion processing, and it works best when video is synced exactly with the refresh rate. In fact, the output frame rate is the key, because even if the video is 24fps and the screen 50hz, the TV is clever enough to recognise the repartition of frames and deal with it perfectly. What causes problems is odd frame rates (like the standard 23.976 NTSC that Japanese and American TV rips use) and non-exact refresh rates.
First, refresh rates. On my system, 60Hz mode is actually 59.92Hz. In theory you can use Rivatuner to fix it, and get an exact 60Hz, as well as 24hz or 48hz for movies and even exact NTSC timings. I experimented a lot with Rivatuner, but found that when messing with the refresh rate the screen often blanked out periodically as the TV lost sync with the computer. I was unable to find a working set of parameters for either exactly 59.97Hz (NTSC). However, the default settings for 24Hz and 50Hz were spot on. The only problem with 24Hz mode is that for some reason it messes up the audio sync on some videos, while they play back fine at 50Hz. So, 50Hz seems to be the best option. The important things is that the timings must be exact for 100Hz motion processing to work.
To deal with NTSC recordings the best strategy seems to be to use ReClock. ReClock re-works the audio to change the frame rate of the video to 24fps exactly, which the 100Hz processing can deal with. The key in getting it to work with VMR9 or EVR is to set it to use DirectShow rather than DirectX, otherwise you will get an error message. With ReClock and a perfect 24hz or 50hz screen mode everything is nice and smooth. However, I have found that for 24fps movies I need to disable ReClock when using a 50Hz screen mode. There should be a way to configure ReClock to shut down when it sees a 24fps stream, I need to investigate further.
720p60 is, infortunately, actually usually 59.97Hz and so far experiments with ReClock and 60Hz output modes have been patchy. If I find a good solution, I’ll post it.
All that, along with the Combined Community Codec Pack, should play back just about anything perfectly. Unfortunately connecting a PC to a TV for video playback is still a bit of a black art, but it is possible to get excellent results with most media.