List of Multimedia Streaming Interfaces

Multimedia streaming comprises a number of interfaces; this article provides a brief description of each interface. For additional information about multimedia streaming, see About the Multimedia Streaming Architecture.

This article contains the following sections.

Base Multimedia Streaming Interfaces

The Microsoft® DirectX® Media SDK includes reference documentation for the multimedia streaming interfaces; the interfaces and their methods provide a programmatic way to access multimedia streams. However, using a base interface to access a specific type of data can limit the amount of control you have over the data, so media developers should create derived versions of these interfaces that provide more powerful control over the unique capabilities of their media type.

IMultiMediaStream
Defines how to access the highest-level multimedia stream object; this object contains and provides access to other stream objects. IMultiMediaStream has methods that enumerate or retrieve specific streams, as well as checking the stream's total time duration and seeking within the stream.
IMediaStream
Defines a generic stream object. Use its methods to retrieve a pointer to the stream, get information about the stream, and create samples from the stream data. You can also create shared stream samples, which multiple streams can access without duplicating the sample's data.
IStreamSample
Controls the behavior of a specific stream sample. You can retrieve the stream that created the sample, check the sample's start and end times and completion status, and perform a user-defined function on the sample itself (through the Update method). Typically, the Update method processes the sample data in an appropriate manner, such as rendering video data or playing back audio data.

DirectDraw Streaming Interfaces

If you use Microsoft® DirectDraw®-supported video formats in your streams, the following interfaces give you more powerful control over the data than the more generic base interfaces.

IDirectDrawMediaStream
Sets and retrieves the stream format and the DirectDraw object associated with the media stream; this interface derives from IMediaStream. You can also use this interface to create video samples.
IDirectDrawStreamSample
Enables you to attach video samples to DirectDraw surfaces; this interface derives from the IStreamSample interface. Each attached surface includes a clipping rectangle to make rendering easier.

Audio Streaming Interfaces

IAudioMediaStream
Controls audio media streams. This interface inherits from the IMediaStream interface and is used to create one or more IAudioStreamSample objects. It is also used to set and retrieve the current format of the stream data.
IAudioStreamSample
Retrieves information from the underlying IAudioData data objects.
IMemoryData
Contains methods that set and retrieve memory data on audio data objects. Audio data objects provide the underlying data that stream samples access. This interface provides a way to initialize memory buffers and to set actual amounts of audio data in the objects. Additionally, the IMemoryData::GetInfo method can be used to retrieve audio memory data.
IAudioData
Provides methods that enable applications to set and get the underlying audio data that audio streams will reference. The audio data format is set in the WAVEFORMATEX structure.

DirectShow Multimedia Streaming Interfaces

The following interfaces expose Microsoft® DirectShow® functionality to multimedia stream developers. Application developers should implement only the IAMMultiMediaStream interface in their applications; DirectShow uses the other two interfaces internally.

IAMMultiMediaStream
Controls connections between streams and DirectShow filter graphs. It provides methods that instantiate filter graphs, open DirectShow-supported media files, and generate an appropriate filter graph for playback. The CLSID_ActiveMovieMMStream class identifier supports this interface.
IAMMediaStream
Handles the internal negotiation of connections between multimedia streams and DirectShow filter graphs. This interface is a DirectShow-specific derivation of the IMediaStream interface. Application developers should not use or implement this interface.

Top of Page Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.