PDA

View Full Version : MS WMP: how to use a custom WMV3/9 decoder?


dZeus
15th August 2008, 20:23
I'd like to use ffdshow-tryouts to play back WMV3 (aka WMV9) video in WMP9.

unregistering wmvdmod.dll (WMV Video DMO decoder filter) doesn't do the trick, as instead of ffdshow, it seems to load some different filter. MPC-HC loads 'AVI decompressor' (quartz.dll) to do the decoding when ffdshow is also disabled, so my guess is that WMP uses it instead of ffdshow. All other directshow players correctly use ffdshow when loading a WMV3 stream or video.

So... how do I force use of ffdshow in WMP for WMV3/9? ffdshow is already at the highest merit level, and I don't think unregistering quartz.dll is an option (afaik, it's an integral part of directshow).

I need ffdshow, as my videocard has some issues with YV12 colourspace, which the wmvdmod.dll decoder uses; ffdshow permits me to disable YV12 output.

I guess this problem also holds true for playback of VC1 streams using the mpcvideodec.ax filter to use DXVA in WMP.

Dark Shikari
15th August 2008, 20:33
Enable FFDshow for all raw colorspaces and it'll be automatically inserted into the directshow graph after all decoders.

Snowknight26
15th August 2008, 21:44
Thats a workaround. I don't believe there is a way for WMP to use other decoders for anything that the MS decoders can do natively.

More info: http://forum.doom9.org/showthread.php?t=135722

zambelli
16th August 2008, 08:35
The answer is simple - WMP doesn't use DirectShow for ASF playback. It uses WM Format SDK (in XP and older) and Media Foundation SDK (in Vista and later). You'd have to develop your decoder in the form of an MFT (Media Foundation Transform) and then probably play some priority game to force WMP to use your custom decoder instead. It ought to be possible, considering the emphasis that Microsoft is now placing on making MF a truly extensible platform that will eventually replace DShow.