DSP Plug-in Packaging

[The feature associated with this page, Windows Media Player SDK, is a legacy feature. It has been superseded by MediaPlayer. MediaPlayer has been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer instead of Windows Media Player SDK, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

Windows Media Player renders audio and video by using one of the following pipelines.

  • DirectShow
  • Media Foundation

In Microsoft Windows XP and earlier, the Player uses DirectShow. In Windows Vista, the Player sometimes uses DirectShow and sometimes uses Media Foundation.

A DSP plug-in that is designed to run in the DirectShow pipeline is called a basic DSP plug-in. A basic DSP plug-ins acts as a DirectX Media Object (DMO). A basic DSP plug-in can run natively in the DirectShow pipeline and can also run in the Media Foundation pipeline inside a wrapper provided by Media Foundation.

A DSP plug-in that is designed to run natively (no wrapper required) in both the DirectShow and Media Foundation pipelines is called a dual-mode DSP plug-in. A dual-mode DSP plug-in can act as a DMO or as a Media Foundation Transform (MFT).

A DSP plug-in is a COM object that is packaged as a self-registering .dll file. The interfaces that the plug-in implements depend on whether the plug-in is designed as a basic DSP plug-in or as a dual-mode DSP plug-in. For detailed information about the interfaces that DSP plug-ins must implement, see Required Interfaces.

A DSP plug-in that runs in the Media Foundation pipeline (either natively or wrapped) must register its threading model as "Both". For detailed information about registry subkeys and entries associated with DSP plug-ins, see Registering DSP Plug-ins.

A DSP plug-in that implements custom interfaces and runs in the Media Foundation pipeline (either natively or wrapped) must be paired with a proxy-stub .dll file that can marshal the custom interfaces across process boundaries. For information about the proxy-stub component, see Updating Existing DSP Plug-ins and Updates to the DSP Plug-in Wizard for Windows Media Player 11.

DSP plug-in objects must not be created as singletons. Windows Media Player must be able to create multiple separate instances of a particular DSP plug-in.

DSP plug-ins that run in the Windows Vista Protected Media Path (PMP) must be signed. For more information, see Code Signing for Protected Media Components in Windows Vista.

DSP Plug-in Developer Overview