Multimedia Streaming Object and Interface Hierarchy
[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.]
Note
These APIs are deprecated. Applications should use the Sample Grabber filter or implement a custom filter to get data from a DirectShow filter graph.
The following diagram shows the object hierarchy used in multimedia streaming.
The multimedia streaming architecture defines three general type of object:
- The AMMultimediaStream object exposes the IAMMultiMediaStream interface. Internally, this object wraps the DirectShow filter graph.
- Media stream objects expose the IMediaStream interface and are data specific. The AMMultimediaStream object contains one or more media streams.
- Stream sample objects contain the data for a particular stream.
The following media stream objects are supported:
- Audio stream. Exposes the IAudioMediaStream interface.
- DirectDraw stream. Represents a video stream that is rendered to a DirectDraw surface. Exposes the IDirectDrawMediaStream interface.
- Media type stream. Represents arbitrary data. Exposes the IAMMediaTypeStream interface.
Each media stream object creates its own kind of stream sample object:
- Audio streams create audio samples, which expose the IAudioStreamSample interface.
- DirectDraw streams create DirectDraw samples, which expose the IDirectDrawStreamSample interface.
- Media type streams create media type samples, which expose the IAMMediaTypeSample interface.
The following diagram shows the interface hierarchy for the interfaces listed previously: