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.
|