Directly Hosting a DMO

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

This section describes how an application can act as the direct client of a DMO. The application delivers input to the DMO, the DMO creates output, and the application uses the output for rendering, further processing, or anything else. The application is responsible for issues such as memory allocation, timing and synchronization, and threading. These requirements will depend on the nature of the application.

The information in this section also applies if you are writing a component that acts as a layer between an application and a DMO (for example, an ActiveX Control that hosts a DMO). In addition, you should read this section if you are writing a DMO, because it describes the functionality that your DMO must implement.

This section contains the following topics:

Using DMOs