DMO Minimum Requirements
Every DMO should meet the following minimum requirements:
- It must support aggregation.
- It must expose the IMediaObject interface.
- The threading model must be 'both'. DMOs must function correctly in a free-threaded environment.
Audio effect DMOs should support the IMediaObjectInPlace interface, for use in DirectMusic and DirectSound.
The following interfaces are documented elsewhere, but are useful for many DMOs. They are not required, however.
- ISpecifyPropertyPages, IPropertyPage: These interfaces enable a DMO to provide a property page, for the user to set properties.
- IPersistStream: This interface enables the DMO to save its state to persistent storage.
- IAMStreamConfig, IAMVideoCompression: These interfaces enable a client to configure an encoder's output format and compression settings. (These two interfaces are part of the DirectShow API, but are also recommended for DMOs.)