Microsoft DirectX 8.1 (C++)

How DMOs Differ from DirectShow Filters

DirectShow filters work only within a DirectShow filter graph. The filter graph manager mediates between the application and the filters in the graph. DMOs do not have this requirement; an application can use a DMO by itself.

In DirectShow, filters do much of the work required to stream data. This includes:

In contrast, a DMO does none of these things. Instead, these kinds of tasks become the responsibility of the client using the DMO. The client allocates buffers and fills them with data. Then it delivers the buffers to the DMO, which processes them. The client retrieves the output buffers.

Within DirectShow, the DMO Wrapper filter is the client of the DMO, so it handles these tasks. Other applications can provide their own implementations.