locked
MFT in DirectShow RRS feed

  • Question

  • Apparently MFTs are similar to DMOs. Is it possible somehow to use a MFT such as the AAC Encoder in Windows 7 in a DirectShow filter graph? Or is the DirectShow world completely locked out of utilising any MFT-only  transforms?

     

    Tuesday, July 27, 2010 6:09 PM

Answers

  • It would be theoretically possible, and I'm sure it is something Microsoft probably considered, but the generic case is actually quite difficult as some of the MF attributes don't have standard CMediaType counterparts.  Here's a list of all the currently defined MF attributes.

    http://msdn.microsoft.com/en-us/library/aa376629(VS.85).aspx

    Creating a special case wrapper should be a little easier, e.g. wrap the AAC encoder as a transform.

    Note that some of the Microsoft MFT's also have a DMO interface enabling them to (theoretically) be used in DirectShow.


    www.chrisnet.net
    • Marked as answer by tiresias Wednesday, July 28, 2010 3:48 PM
    Wednesday, July 28, 2010 2:07 PM

All replies

  • There is no built-in mechanism for using MFTs in dshow.  MF was not designed to provide compatibility with dshow components or to have its components used in dshow filter graphs.
    Please use Vote As Helpful (green up arrow at top-left of posts) and Mark As Answer where appropriate.
    My dshow site is http://tmhare.mvps.org.
    Tuesday, July 27, 2010 6:23 PM
  • An MFT is a standalone object much like a DMO is, so in theory you can use an MFT outside of the MF framework and potentially even inside DirectShow by providing a MFT wrapper.

    The biggest hurdle is translating the media types, which are expressed a little differently in MF vs DShow.


    www.chrisnet.net
    Tuesday, July 27, 2010 6:42 PM
  • MF was not designed to provide compatibility with dshow components or to have its components used in dshow filter graphs.

    MFDS.DLL describes itself as being a “Media Foundation Direct Show wrapper DLL”

     

    http://www.win7dll.info/mfds_dll.html

     

    What does it wrap?

     

     

    Tuesday, July 27, 2010 6:53 PM
  • I believe that filter is designed to use certain MF sources as a DirectShow source by creating a MF topology inside a DirectShow push source filter. I couldn't find any documentation on it but it does appear to be used by WMP.
    www.chrisnet.net
    Tuesday, July 27, 2010 7:08 PM
  • An MFT is a standalone object much like a DMO is, so in theory you can use an MFT outside of the MF framework and potentially even inside DirectShow by providing a MFT wrapper.

    The biggest hurdle is translating the media types, which are expressed a little differently in MF vs DShow.


    www.chrisnet.net

     

    So it should be possible to embed say the AAC encoder MFT inside a CTransform filter?

    Interesting thought. I wonder if it is practical to produce a general wrapper class based on CTransform which can be used to wrap any MFT ?  It would certainly help ease the migration of apps from DirectShow to MF.

     

    Wednesday, July 28, 2010 11:41 AM
  • It would be theoretically possible, and I'm sure it is something Microsoft probably considered, but the generic case is actually quite difficult as some of the MF attributes don't have standard CMediaType counterparts.  Here's a list of all the currently defined MF attributes.

    http://msdn.microsoft.com/en-us/library/aa376629(VS.85).aspx

    Creating a special case wrapper should be a little easier, e.g. wrap the AAC encoder as a transform.

    Note that some of the Microsoft MFT's also have a DMO interface enabling them to (theoretically) be used in DirectShow.


    www.chrisnet.net
    • Marked as answer by tiresias Wednesday, July 28, 2010 3:48 PM
    Wednesday, July 28, 2010 2:07 PM