We will now devote a couple of sections to open source / freeware software for HTPCs running Windows 7.

One of the main issues with the integrated GPUs in the Clarkdale/Arrandale and Sandy Bridge CPUs is the fact that the Intel HD Graphics engine doesn't play nice with open source software. Commercial Blu-ray playback software have woeful support for MKVs and HD audio bitstreaming from non-Blu-ray sources. Users of the Intel IGP are often left to implement a series of hacks (such as using the Arcsoft and Cyberlink decoders in other DirectShow players) to get the expected HTPC experience.

Windows 7 uses the DirectShow / Media Foundation framework for media processing. A detailed description of the framework is beyond the scope of this piece. However, what we need to specifically be aware of is the architecture of the DirectShow framework, as described here.

The two important components of the filter chain in the above link are the splitter and the decoder. MPC-HC is undoubtedly the most common DirectShow based media player used to playback HD material. The player aims to make the task of the filter construction transparent to the user by packaging a variety of source filters for various containers. These include the Gabest MPEG Splitter, internal Matroska Splitter (I remember preferring the Haali Matroska Splitter from the CCCP codec pack in late 2009), MP4 Splitter, OGG Splitter etc. A look at the standalone filters reveals the large number of standalone source filters / splitters which are in the self-contained executable.

It is preferable to have a single actively developed multi-format splitter capable of handling a wide variety of containers with a multitude of audio and video codecs / subtitle formats. This is where the LAV Splitter project comes in. Basic supported for decrypted Blu-rays (playback of MPLS / index.bdmv files) is the icing on the cake.

With HD audio capable AV receivers becoming the rule rather than the exception, one increasingly finds users interested in HD audio bitstreaming. MediaSmartServer's Damian has a great guide dealing with the usage of ffdshow for HD audio bitstreaming. Advanced users often consider ffdshow Audio as bloatware for those who just want HD audio bitstreaming. LAV Splitter comes with the optional LAV Audio Decoder which achieves the same purpose. For users who want HD audio to be decoded in a bit-perfect manner, the LAV Splitter can also connect to the Arcsoft Audio Decoder as explained here. In this section, we will deal only with HD audio bitstreaming.

The gallery below shows the sequence of steps to install LAV Splitter and Audio Decoder on a Windows 7 machine for usage with MPC-HC. You can also use any other DirectShow based player. The LAV Audio Decoder is then configured to bitstream all the HD audio formats.

Ensure that all the file formats chosen in screenshot 5 are unselected in screenshot 8 (MPC-HC options -> Internal Filters -> Source Filter). Also, the Transform Filters for AC3 and DTS must be unselected to ensure that the LAV Audio Decoder is used. Screenshots 9 through 12 show the setting up of the LAV Audio Decoder for bitstreaming in the External Filters section using the 'Add Filter' button. Screenshots 13 through 16 show the setting up of the LAV Splitter in a similar manner. Fortunately, the default settings in the splitter configuration are good to go unless you have some specific requirements with respect to the language code or don't want the LAV Splitter to activate for some specific extensions. Make sure that both the LAV Splitter and the LAV Audio Decoder are set to 'Prefer' in the External Filters section.

Playing back interlaced VC-1 clips with the default codecs in MPC-HC usually results in a blank screen. To resolve this, the Arcsoft Video Decoder needs to be registered and used. (The WMV Decoder DMO codec is able to play back such clips, but it does software decode). After installing Arcsoft TMT (TMT 5 was used to test this out), the Arcsoft Video Decoder (ASVid.ax) was manually registered using the regsvr32 command in Administrator mode. This exposes the decoder for inclusion in the External Filters section in MPC-HC, as in the first picture of the gallery below. However, setting the decoder to Preferred doesn't enable its usage unless the checkactivate.dll from this doom9 post gets placed in the same folder as ASVid.ax. After this process, an interlaced VC-1 clip can be loaded into MPC-HC. In the default configuration, you will still end up with a blank screen. The VC-1 output compatibility of the LAV Splitter needs to be configured to reflect the presence of the Arcsoft VC-1 decoder, as in the rest of the screenshots in the gallery below. Note that this configuration is necessary only for AMD (and Intel) GPUs. NVIDIA GPUs have a open source decoder capable of playing back interlaced VC-1 clips in any DirectShow based player. We will cover that in the next section.

Once configured, you should be able to see the filters in action during the playback of any media file in the appropriate container.

Playing The DaVinci Code's BR Folder Structure - index.bdmv

(Click to Enlarge)

We have never seen the ffdshow Audio decoder successfully bitstream E-AC3 (Dolby Digital Plus). With the LAV Audio Decoder, there were no such issues.

Dolby Digital + Lights Up on the Onkyo 606

The ease of use of the LAV Audio Decoder, its tight integration with LAV Splitter and the ability to use the Arcsoft HD audio decoder for DTS-HD / DTS-ES streams (for which no open source decoders exist) make it a very attractive option for HTPC users.

GT 430 Bitrate Limitations and the GT 520 VDPAU Feature Set D Software for NVIDIA HTPCs : LAV CUVID and madVR
Comments Locked

70 Comments

View All Comments

  • enki - Monday, June 13, 2011 - link

    How about a short conclusion section for those who just use a Windows 7 box with a Ceton tuner card to watch hdtv in Windows Media Center? (i.e. will just be playing back WTV files recorded directly on the box)

    What provides the best quality output?

    What can stream better then stereo over HDMI? On my old 3400 ATI card it either streams the Dolby Digital directly (the computer doesn't do any processing of the audio) or can output stereo (doesn't think there can be more then 2 speakers connected)

    Thanks
  • BernardP - Monday, June 13, 2011 - link

    The inability to create and scale custom resolutions within AMD graphics drivers is, for me, a deal-breaker that keeps me from even considering AMD graphics. It will also keep me from Llano, Trinity and future AMD Fusion APU's. I'll stay with NVidia as long as they keep allowing for custom resolutions.

    My older eyes are grateful for the custom 1536 X 960 desktop resolution on my 24 inch 16:10 monitor. I couldn't create this resolution with AMD graphics drivers.
  • bobbozzo - Tuesday, June 14, 2011 - link

    In your case, you should just increase the size of the fonts and widgets instead of lowering the screen res.
  • Assimilator87 - Tuesday, June 14, 2011 - link

    I wish there was a section dedicated to the silent stream bug. I have a GTX 470 hooked up to an Onkyo TX-SR805 and this issue is driving me insane. For instance, does this issue only plague certain cards or do all nVidia suffer from it? I was hoping the latest WHQL driver (275.33) would fix this, but sadly, no. Otherwise, the article was amazing and I'll definitely have to check out LAV Splitter.
  • ganeshts - Tuesday, June 14, 2011 - link

    The problem with the silent stream bug is that one driver version has it, the next one doesn't and then the next release brings it back. It is hard to pinpoint where the issue is.

    Amongst our candidates, even with the same driver release, the GT 520 had the bug, but the GT 430 didn't. I am quite confident that the GT 520 issue will get resolved in a future update, but then, I can just hope that it doesn't break the GT 430.
  • JoeHH - Tuesday, June 14, 2011 - link

    This is simply one of the best articles I have ever seen about HTPC. Congrats Ganesh and thank you. Very informative and useful.
  • bobbozzo - Tuesday, June 14, 2011 - link

    Hi, Can you please compare hardware de-intelacing, etc., vs software?

    e.g. many players/codecs can do de-interlacing, de-noise, etc. in software, using the CPU.

    How does this compare with a hardware implementation?

    thanks
  • ganeshts - Tuesday, June 14, 2011 - link

    This is a good suggestion. Let me try that out in the next HTPC / GPU piece.
  • CiNcH - Wednesday, June 15, 2011 - link

    Hey guys,

    here is how I understand the refresh rate issue. It does not matter weather it is 0.005 Hz off. You can't calculate frame drops/repeats from that. In DirectShow, frames are scheduled with the graph reference clock. So the real problem is how much the clock which the VSync is based on and the reference clock in the DirectShow graph drift from each other. And here comes ReClock into play. It derives the DirectShow graph clock from the VSync, i.e. synchronizes the two. So it does not matter weather your VSync is off as long as playback speed is adjusted accordingly. A problem here is synchronizing audio which is not too easy if you bitstream it...
  • NikosD - Thursday, June 16, 2011 - link

    Nice guide but you missed something.
    It's called PotPlayer, it's free and has built-in almost everything.
    CPU & DXVA (partial, full) codecs and splitters for almost every container and every video file out there.
    The same is true for audio, too.
    It has even Pass through (S/PDIF, HDMI) for AC3/TrueHD/DTS, DTS-HD. Only EAC3 is not working.
    It has also support for madVR and a unique DXVA-renderless mode which combines DXVA & madVR!
    I think it's close to perfect!
    BTW, in the article says that there is no free audio decoder for DTS, DTS-HD.
    That's not correct.
    FFDShow is capable of decoding and pass through (S/PDIF, HDMI) both DTS and DTS-HD.
    And PotPlayer of course!

Log in

Don't have an account? Sign up now