locked
Echo Cancellation Support in Media Foundation RRS feed

  • Question

  • Hi,

    We are developing an audio chat proof of concept in Media Foundation exclusively for Windows 7, and one big question that we cannot find an explicit answer to is whether echo cancellation is handled as a result of using MF.  We have done significant digging through MSDN and have not seen it directly addressed in the context of Media Foundation.  Can anyone confirm that it is handled or point me at documentation that clearly discusses it?

    Thanks,

    Scott
    • Edited by The March Hare Monday, November 16, 2009 10:02 PM "media foundation" not "ms foundation" in title
    Monday, November 16, 2009 9:31 PM

Answers

  • Here is more up-to-date documentation on the AEC DMO. According to this, the AEC DMO does not implement IMFTransform, so it could not be used in a Media Foundation topology as-is.

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

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




    - Mike


    ----------------------------------------------------------------------------
    Mike Wasson, SDK Documentation
    This posting is provided "AS IS" with no warranties, and confers no rights. You assume all risk for your use.
     


    Mike Wasson (SDK Documentation)
    • Marked as answer by The March Hare Thursday, December 17, 2009 6:16 PM
    Tuesday, November 17, 2009 7:18 AM
  • Regarding the input connection: The AEC DMO has two different modes. In one mode, it encapsulates the audio capture source and delivers AEC-processed samples. This mode has no input In the other mode, the DMO takes audio samples from upstream as input. I believe the DMO defaults to the first mode. You can set the mode through one of the DMO properties.


    - Mike


    ----------------------------------------------------------------------------
    Mike Wasson, SDK Documentation
    This posting is provided "AS IS" with no warranties, and confers no rights. You assume all risk for your use.
     


    Mike Wasson (SDK Documentation)
    • Marked as answer by The March Hare Thursday, December 17, 2009 6:16 PM
    Tuesday, November 17, 2009 11:03 PM

All replies

  • Media Foundation does not handle echo cancellation by default.  However, there is an MFT that ships with Windows that does AEC.  Unfortunately it looks like there is no documentation on how to use this hybrid DMO/MFT as an MFT, but http://msdn.microsoft.com/en-us/library/aa964545(VS.85).aspx gives a description of the DMO interface.  The configuration is largely the same.  The Media Foundation topology loader should do the type negotation for you if you insert the MFT into the audio branch of the topology.
    Tuesday, November 17, 2009 2:19 AM
  • Here is more up-to-date documentation on the AEC DMO. According to this, the AEC DMO does not implement IMFTransform, so it could not be used in a Media Foundation topology as-is.

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

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




    - Mike


    ----------------------------------------------------------------------------
    Mike Wasson, SDK Documentation
    This posting is provided "AS IS" with no warranties, and confers no rights. You assume all risk for your use.
     


    Mike Wasson (SDK Documentation)
    • Marked as answer by The March Hare Thursday, December 17, 2009 6:16 PM
    Tuesday, November 17, 2009 7:18 AM
  • Mike,

    Thanks, that makes it pretty clear what we have to do. My concern now is that the echo cancellation DMO was not implemented as a MFT for good reason.  Guess I will find that out when I try, if anyone has any insight on that I would appreciate it. As an aside, I did try adding the AEC Audio Effect into the chain in TopoEdit, however once placed on the canvas it is the one MFT from the menu that is missing the input connection.  Guessing that is the result of not supporting the IMFTransform. Not sure why it is listed as a tranform in TopoEdit if it cannot be connected.

    Scott
    Tuesday, November 17, 2009 10:00 PM
  • Regarding the input connection: The AEC DMO has two different modes. In one mode, it encapsulates the audio capture source and delivers AEC-processed samples. This mode has no input In the other mode, the DMO takes audio samples from upstream as input. I believe the DMO defaults to the first mode. You can set the mode through one of the DMO properties.


    - Mike


    ----------------------------------------------------------------------------
    Mike Wasson, SDK Documentation
    This posting is provided "AS IS" with no warranties, and confers no rights. You assume all risk for your use.
     


    Mike Wasson (SDK Documentation)
    • Marked as answer by The March Hare Thursday, December 17, 2009 6:16 PM
    Tuesday, November 17, 2009 11:03 PM