Cannot play an ASF video file that uses a 32-bit DMO in Vista 64-bit RRS feed

  • Question

  • Our C# application (32-bit since it's explicitly compiled as x86) uses the Windows Media Player ActiveX control to play an ASF file that contains MPEG-4 video. We use a third-party video decoder (DMO) that is a 32-bit DLL.

    In Windows Vista Business 64-bit, playing the ASF file results in an error saying that there is no suitable video decoder. I have double checked and the video decoder is properly installed, registered (I see the right OLE registration entries under the WoW64 part of the Registry) and associated with the expected fourCC (DX50).

    Also, when I get the same error when playing the same ASF file from Windows Explorer, which opens the full-fledged Windows Media Player. Vista 64-bit is the only OS where this problem occurs. I don't get the problem with Windows XP or Windows 7 (both 64-bit).

    My guess is that the mfpmp.exe process is running as a 64-bit process and that when it tries to load the video decoder DMO, fails due to the decoder being a 32-bit DLL. I think is odd that the mfpmp process is running as 64-bit when the Windows Media Player (either the control or the full-fledged application) runs as 32-bit.

    My question is: is my guess correct or is there any other thing that I should check before blaming mfpmp?

    If mfpmp is indeed the culprit, is it possible to force WMP to use the 32-bit version (either programatically or by some other means)? 

    Wednesday, September 22, 2010 11:23 PM

All replies

  • That is correct, mfpmp.exe always runs 64-bit on a 64-bit system.  On Windows 7, Windows Media Player does not use mfpmp.exe by default so 32-bit codecs still work as long as no protected content is being played.  There is no way to get WMP to run the 32-bit mfpmp.exe.  This issue is one of the reasons mfpmp.exe is not used by default on Windows 7.  On Vista, you pretty much need a 64-bit codec.
    Thursday, October 21, 2010 11:03 PM