Media Center and MPEG-4 (H.264)
Simply put, current versions of Media Center (XP, Vista) are not ideally suited to the H.264 format. When watching live TV,  the H.264 content will show up as a black screen, usually with audio. The good news is that you should be able to playback R5000-HD H.264 transport streams in Media Center provided you have a suitable codec installed (e.g. the Elecard filters shown in the examples below).

Note: the following maybe somewhat technical in nature and assumes knowledge of DirectShow and filter graph technology.

The problem is due to the building blocks Media Center uses to construct its DirectShow signal path (as illustrated below). At the heart of the problem is the "MPEG-2 Demultiplexer" filter. Media Center uses this block as a starting point to render the audio and video signal paths. As seen below, the AC-3 audio path will be constructed properly. However, when the video path is created, an MPEG-2 decoder filter is connected to the video pin of the demultiplexer. When we examine the properties of this pin its easy to see why...

 

A working graph would require a demultiplexer that exposed a different stream subtype, namely AVC/H.264. Just for curiosity's sake, we can dump the elementary stream data from the video pin and see what we get...

 

Rendering our dump file from above, we verify that it contains an H.264 video elementary stream which we are able to playback using the appropriate filters. A new, custom GUID is used to differentiate the AVC sub type from MPEG-2.

 

A possible solution would start with a redesigning the demultiplexer filter so that the H.264 media type is enumerated on the video output pin's accepted formats. The filter dll would replace the existing MPEG-2 demultiplexer and use the same CLSID. The next problem arises when Media Center attempts to connect to this pin. As seen below, Media Center wraps the tuner in a custom filter with encrypted/tagged outputs. If these operations treat the video stream in a generic manner, then the possibility exists that the AVC stream subtype will be simply passed along and reflected at the output the "Decoder/Tagger Filter 001", below.  In that case, rendering the video stream from that point should give us a viewable picture by utilizing the same AVC/H.264 decoder chain as above.



go back