DXVA and MKV in Windows 7
The Microsoft WMF codec supplied with Windows 7 does a pretty good job of decoding most formats including VC1 and x264. Unfortunetly it doesn’t understand the Matroska container. So step 1 is get this recognised, for this we need the Haali Media Splitter. This will register splitters for Ogg (.ogm/.ogg), Matroska (.mkv) and MPEG4 (.mp4/.mov) containers.
Haali Media Splitter Installer
Once this is installed you will find that your Matroska files will play in Media Center/Player but not using DXVA, so will be using a lot of cpu (a 30mbit 1080p VC1 video I have was maxing out my Core 2 Duo E6300 1.86GHz). So step 2 is to find and install a DXVA capable codec. Media Player Classic Home Cinema has such a codec, amongst many others which are available as a standalone filters (in 32bit and 64bit form). The one we’re interested in here is MPCVideoDec.ax. So copy this file to your system32 directory (Syswow64 on 64bit systems, i think ? The 64bit codecs go in system32 on 64bit systems, if you need the codec to work in 32bit applications you’ll the 32bit version as well and that would go in SysWOW64) and run the following command from a command prompt (make sure to run the prompt as administrator if you have UAC enabled)
Register the MPCVideoDec Codec
Now we’re close, sadly Media Player/Center will still use the Microsoft decoder as that is the preferred decoder so we need to change this. We could dive in to the registry and faff around with loads of CLSIDs ourselves, or we could use the Preferred Filter Tweaker for Windows 7 from clsid on the doom9 forums. Download and run this, and then select MPCVideoDec for H264/AVC and VC1.

Preferred DirectShow Filter Tweaker for Windows 7
Apply those changes and restart Media Center/Player (if its open), and try opening a Matroska file again. Now you should find the CPU much reduced thanks to DXVA. My CPU usage playing back the same 1080p file as before is now under 5% as you can see below.
There is one downside to this however, because this codec requires the decoder to be connected directly to the renderer there is no way (that I can find anyway) to display subtitles within Media Player/Center. If you have a Matroska file with subtitles you’ll have to drop out and play them in MPC-HC, which can display subtitles and still decode with DXVA. If anyone has a way of enabling this in Media Center please let me know.
UPDATE 11/11
Added subtitle caveat and corrected the 32/64 bit file locations. Isn’t it somewhat ridiculous to put 32bit dlls in a folder with ‘64′ in its name, and vice versa ?


Hopefully you’ll see this, but what about audio? Would I still need AC3 filter? I do play divx files that have 5.1 ac3 audio. And have played mkv files with dts and probably dolby something or other as well. I’m using MCE 90% of the time.
I own windows 7 x64 no codecs installed yet on an ATI 785G board using onboard realtek sound with spdif to DD DTS 5.1 receiver. 7.1 Dolby True-HD etc don’t matter to me and can all get downmixed to 5.1 hopefully. Thanks a ton if you can shed some light on this and give me some pointers on making sure surround audio comes through. Thanks.
Yes you’ll need AC3filter or the ffdShow audio codec to decode audio such as DD or DTS. Both of these should allow you to configure which codecs are decoded and which are pass-through to your AV receiver. If you’re happy with the video decoder as it is then I’d suggest you go with AC3filter as that will introduce fewer new components to your system. Hope this helps, let me know how it goes.
spdif only transports upto 5.1 channels. You’ll need a card with native hdmi (I don’t know if one exists yet), or revert to the old multiple jack solution; you know 2 ch./jack on many soundcards.
take a look over at the ffdshow tryouts project: Discussion & Development forum,i think they are close to resolve the issues whit dxva and subtitles!
http://forum.doom9.org/showthread.php?t=120465&page=553
mvh bitzorro.
[HowTo] Enable DXVA H264 Decoding for MKV + Subtitles for Windows Media Player/Center on Windows 7
http://www.youtube.com/watch?v=2jCV1914A7E