Hacking Windows 7 Media Center

Windows Media Foundation and Windows 7

by Michael Healy @ 5:45 am on March 26th, 2009 in codecs, ffdshow, windows 7, windows media foundation with 16 Comments

Windows 7 Logo Windows 7 introduces some additional functionality to a feature that was added in Windows Vista, Windows Media Foundation. The goal of the Windows Media Foundation is to ease control of media playback for developers. The idea is to remove the need for individual codecs and instead rely on a single Windows package for media playback, much like DirectX does for game platforms.

In Windows 7, as noted on Microsoft MSDN, there have been some additional changes made to the Windows Media Foundation framework.

What’s New in Windows 7

Microsoft Media Foundation was introduced in Windows Vista as the replacement for DirectShow. Of course, DirectShow is still supported in Windows 7, but developers are encouraged to use Media Foundation in their new digital media applications.

The improvements to Media Foundation can be summarized as follows:

  • Better format support, including MPEG-4
  • Support for capture devices and hardware codecs
  • A simplified programming model
  • Improvements to the platform

We are all fairly well aware that Windows 7 includes native support for certain formats, such as H.264, and it does this through the use of Windows Media Foundation. Media Center and Windows Media Player have both been updated to use this new framework in Windows 7. The benefit is added support for a number of codecs out of the box.

There is, however, a downside to this new implementation. The protected pipeline used in this new framework doesn’t allow outside access to user installed codecs for native formats by default. For instance, if you wanted to use FFDShow to decode avi files, which are natively supported by WMF. This means much like the (often indefinite) wait for x64 codecs and splitters users will once again be put to the sidelines to wait for updated decoders that use WMF.

Media Foundation Process Chart

Current work-arounds for this situation have led users to renaming system files and other chicanery in order to get their favorite codecs working through Media Center. In more recent versions of Windows 7’s beta, however, the ability to accomplish this hack has been crippled. The consensus seems to be that as of beta 7057, the rename hack no longer works.

It seems that once again users may be forced to wait on new solutions to the codec problem that have already been hard suffered for Windows Vista Media Center users. It seems we may once again be at the whim of those gracious programs who take it upon themselves to better Microsoft’s meager implementations and give us a little more control of our media.

Expect updates on Windows Media Foundation and Windows 7 Media Center in the near future. Keep up to date on the situation by subscribing to the Hack7MC RSS Feed or by following on Twitter.

16 Comments


dmce
Comment #243 from dmce [Reply]

Ive been running build 7057 and using the new native (and forced) filter for h.264 (mkv) i get stuttering video. I didint get this in build 7000 as i could use MPCVideoDecoder. Hopefully it will be sorted in newer builds.

It sucks that we cant change to what we want. Its good that more formats are supported natively, but why not give those who want to make changes that option.

Comment left March 26, 2009 at 6:21 am Permanent Link

Aaron Rodriguez
Comment #244 from Aaron Rodriguez [Reply]

I think there should be a followup post about this from an extenders point of view. Because in 7048 h264 is not very well supported still. And if its not fixed by the time the RC hits it will be a very big flaw imo.

Comment left March 26, 2009 at 1:50 pm Permanent Link

Anonymous
Comment #245 from Anonymous [Reply]

@dmce, I am not sure if the h.264 support in Windows also does support hardware acceleration. That is why I am still using external codecs.

Comment left March 27, 2009 at 2:04 am Permanent Link

Zyphrax
Comment #246 from Zyphrax [Reply]

I noticed a really weird bug in Windows Media Center. When I play some of the divx/xvid in Media Center, I do get sound, but the screen stays black. This only happends in Fullscreen mode.

A bypass to enable the usage of ffdshow in 7057 would be awesome!

Comment left March 27, 2009 at 2:38 am Permanent Link

MHealy
Comment #247 from MHealy [Reply]

I’ve had success using FFDShow video for some video files by renaming the files mentioned in this comment but renaming the H.264 filter breaks live TV playback. It works fairly well for MPG4 and AVI though.

Comment left March 27, 2009 at 5:33 am Permanent Link

Alex D. Campbell
Comment #242 from Alex D. Campbell [Reply]

I would be careful not to let it appear that you’re putting the blame on Media Foundation. From what I’ve seen this is a great system. The problem in this case is that WMP and WMC do not expose the ability to override their preferred decoders for each media type to the user in WMP and WMC respectively.

Comment left March 30, 2009 at 8:41 pm Permanent Link

Laga Mahesa
Comment #249 from Laga Mahesa [Reply]

Well, I was very keen on Win7 until I read this. Seems i’ll be with XP and Linux until the next decade, for now.

Comment left April 3, 2009 at 7:08 am Permanent Link
Comment #248 from Michael Healy [Reply]

I wouldn’t give up on Windows 7 just yet, these details do come from unreleased builds of the Windows 7 beta.

Absolving Microsoft by blaming another part of Microsoft isn’t the answer either. Enthusiasts understand that the development is seperated into several departments which have trouble communicating with each other, etc, but the average user has no sympathy for the situation.

In this new era of interconnected computing Microsoft needs to learn to work better with Microsoft. Otherwise, they may as well get used to the Vista-esque stigma they’ve earned over the past few years.

Comment left April 3, 2009 at 10:31 am Permanent Link

Battles
Comment #1347 from Battles [Reply]

Michael,

You’ve been infinitely helpful to the MCE enthusiast community…so again many thanks. I’ve got a challenge for you, which I can’t seem to figure out and perhaps you already know the solution to. For the life of me, I can’t seem to play back any blu-ray files (stored in mkv or .m2ts file containers) that were encoded using VC-1 codecs (as you know blu-ray movies are encoded using MPEG, AVC/.264, or VC-1). I have tried to disable media foundation to play through ffdshow (which theoretically playback VC-1 using wm9 decoder), but it doesn’t seem to work (on the other hand, I can disable media foundation and play back .mkv files encoded in AVC/.264 decode using CoreAVC). The upshot is that at least 25% of my movie libary is comprised of VC-1 encoded movies which I can’t play in win7. Your help on this (step-by-step) would be much appreciated! I am using 32 bit, btw.

Thanks!

Comment left May 30, 2009 at 10:04 am Permanent Link

battles
Comment #1351 from battles [Reply]

Okay, I’ve done a little trouble shooting and determined that contrary to what I described above, so long as you CONVERT (vs. playing the .m2ts file straight from the blu-ray rip) a VC-1 encoded blu-ray file into mkv, it will play back in MCE. However, in general, I have found that the playback of VC-1 encoded files tend to be CPU intensive because FFDSHOW and other codec packs don’t utilize a VC-1 decoder that takes advantage of hardware acceleration. As a result, playback has a slight studder even on quad-core boxes. Of course, if you use a program like PowerDVD to playback said files, playback is smooth because PowerDVD, notably, uses decoders that take advantage of hardware acceleration. That said, using PowerDVD isn’t as seemless as simply selecting a file from Mediabrowser and having it play back without a leaving the sofa.

Does anyone know of a VC-1 decoder that will work with Win7 that utilizes hardware acceleration?

Comment left May 30, 2009 at 10:58 pm Permanent Link
@Reply #1355 from Michael Healy [Reply]

If you have an ATI video card you could use the MPC Video decoder for VC-1 hardware accelerated playback.

You should also be able to use the PowerDVD codec inside Media Center. You’ll need to disable VC-1 playback in FFDShow and use Filter Manager to set the Cyberlink Video Decoder with the highest priority. The Cyberlink codec should then handle all VC-1 playback by default including inside Media Center.

There’s more on using the Cyberlink decoder in this guide.

Comment left May 31, 2009 at 8:10 am Permanent Link

battles
Comment #1363 from battles [Reply]

Thanks Michael. Is there any reason not to use the Cyberlink decoder for .264, MPEG2 HD as well as VC-1 vs. media foundation, if Cyberlink utilizes hardware acceleration as well? If I were to use Cyberlink vs. media foundation, do you believe the best way to disable media foundation to be renaming the system 32 codec files or by using MCDU?

Comment left May 31, 2009 at 6:53 pm Permanent Link
@Reply #1364 from Michael Healy [Reply]

There wouldn’t be any reason you couldn’t use Cyberlink for each of those formats. I would probably use MCDU but either method is essentially the same process, with MCDU being much easier to use.

Should you run into problems using MCDU you can always go back and do things manually.

Comment left May 31, 2009 at 10:29 pm Permanent Link

Battles
Comment #1383 from Battles [Reply]

Michael,

I followed your directions with regard to disabling media foundation and assigning cyberlink as the default video decoder. However, it doesn’t seem to work. When playing a VC-1 encoded file, no video decoder seems to launch. FFDSHOW audio decoder launches and sound plays back but no video. If I’m playing an AVC/.264 formated movie, however, CoreAVC launches, so I know that I have successfully disable media foundation. Have you in the past replicated what I am trying to achieve on your MCE, or was your guidance to me more theoretical? I feel like I have tried to use Cyberlink’s video decoder in the past, but it didn’t seem to work for all video formats unless I was playing the file through the Cyberlink application.

Thanks again.

Comment left June 1, 2009 at 6:18 pm Permanent Link
@Reply #1393 from Michael Healy [Reply]

I don’t personally use VC-1 encoding but I managed to find a sample video and couldn’t get it to connect to the Cyberlink decoder either. I did find some further information on the problem and it seems that for whatever reason Cyberlink and Arcsoft have gone out of their way to prevent using their codecs for VC-1 playback.

The best I could find was this thread on Doom9 which may have some possible solutions for you.

Comment left June 2, 2009 at 9:52 am Permanent Link

battles
Comment #1398 from battles [Reply]

Thanks Michael. I’ll see if doom 9 can be of help. On an unrelated note, besides eac3to, do you know of a video converter that can convert .m2ts files to .mkv? I looked into using iVideo, but it downconverts the audio into stereo. Eac3to works great, but then you have to use a separate application to integrate the video and audio streams. Finally, when using Media Browser to playback a Blu-ray ISO, I understand that one needs to use daemon tools or the like to mount the ISO, but in the past, one also needed to use TMT or PowerDVD to view the mounted Blu-ray ISO. Does Media Brower automatically launch PowerDVD or TMT in order to view the ISO? Further, if PowerDVD or TMT does launch automatically, can you get back into Media Center once the movie is over or stopped via an mce remote control vs. having to use a mouse (which detracts from the experience)?

Comment left June 2, 2009 at 5:15 pm Permanent Link

Leave A Comment

Post Anonymously, Fill in your details or Use one of the Social Networks below to login and post a comment!