View Single Post
Old 25th March 2009, 16:15   #5  |  Link
albain
Media Control author
 
Join Date: Dec 2006
Location: Paris
Posts: 1,014
Hi there,

if you want more details :

For any codecs with no equivalent in Media Foundation :
=> Our directShow codec (FFDShow) is loaded correctly and runs into the graph

For any codecs with equivalent in Media Foundation (mpeg4/h264)
=> Our directshow codec is loaded, the input pin is connected (the media type is accepted by FFDShow), then an output pin is looked after, found, and... the filter is unloaded. No querying about the output media type, nothing. It is replaced then by MS DMO decoder

Tests done on Windows 7 build 7057 32 bits with WMP 12 and Media Center

Second step : I have built a dummy Media Foundation filter that declares all H264/MPEG4 media types.
=> It is not even consulted

Last step : I have built a dummy Media Foundation filter that is not a decoder but a transform filter (this is a different category).
=> It is not consulted either.

Reason : Microsoft maintains a list of preferred codecs in the following registry key : HKEY_CLASSES_ROOT\MediaFoundation\Transforms\Preferred
This key cannot be modified even in admin mode (this is a protected area, like system files).
So this list cannot be modified.

Conclusion : decoder is not overridable, even if one develops a Media Foundation filter

Two leads :
1/ Develop a DSP filter for Windows Media Player. This will only do postprocessing, no decoding.
2/ Make the source filter (Haali) autoload with a configurable option FFDShow or any other compatible filter.
Maybe Haali could reproduce the DirectShow filters enumeration according to their merit and take the highest one which is compatible with the media type.
This will work for MKV/MP4 containers, not AVI, unless the AVI container is overridable in Media Center/Media Player.
albain is offline   Reply With Quote