Requisitos mínimos de DMO

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Cada DMO deve atender aos seguintes requisitos mínimos:

  • Ele deve dar suporte à agregação.
  • Ele deve expor a interface IMediaObject .
  • O modelo de threading deve ser "ambos". Os DMOs devem funcionar corretamente em um ambiente de thread livre.

Os DMOs de efeito de áudio devem dar suporte à interface IMediaObjectInPlace , para uso em DirectMusic e DirectSound.

As interfaces a seguir estão documentadas em outro lugar, mas são úteis para muitos DMOs. No entanto, eles não são necessários.

  • ISpecifyPropertyPages, IPropertyPage: essas interfaces permitem que um DMO forneça uma página de propriedades para o usuário definir propriedades.
  • IPersistStream: essa interface permite que o DMO salve seu estado no armazenamento persistente.
  • IAMStreamConfig, IAMVideoCompression: essas interfaces permitem que um cliente defina o formato de saída e as configurações de compactação de um codificador. (Essas duas interfaces fazem parte da API do DirectShow, mas também são recomendadas para DMOs.)

Escrevendo um DMO