IAMStreamControl Interface

 
Microsoft DirectShow 9.0

IAMStreamControl Interface

The IAMStreamControl interface controls individual streams on a filter. Pins on some filters expose this interface. For example, the AVI Mux Filter supports this interface on its input pins, and the Audio Capture Filter and WDM Video Capture Filter support it on their output pins.

This interface enables an application to turn streams on and off at specified times. For example, an application might turn off an audio stream to mute the audio during video preview. Capture applications can use this interface to specify exact start and stop times for capture, and to control capture and preview streams independently of each other.

To use this interface, call the IAMStreamControl::StartAt method to specify when the pin will start delivering data, and the IAMStreamControl::StopAt method to specify when it will stop delivering data. Then call IMediaControl::Run on the Filter Graph Manager to run the filter graph. All times are relative to when the graph starts running.

When you use this interface, be aware of the following limitations:

  • There must be a reference clock in the filter graph.
  • Preview pins on capture cards with hardware overlay do not support this interface.
  • If you are capturing audio and video to an interleaved AVI file, the AVI Mux filter requires data both streams. If you stop one stream, the filter cannot interleave the data. For more information, see IConfigInterleaving Interface.

Depending on the application, you might find the ICaptureGraphBuilder2::ControlStream method more convenient, because it supports stream control at the graph level, so that you do not have to enumerate individual filters and pins.

Filter developers: The CBaseStreamControl base class implements this interface.

In addition to the methods inherited from IUnknown, the IAMStreamControl interface exposes the following methods.

Method Description
StartAt Informs the pin when to start sending streaming data.
StopAt Informs the pin when to suspend processing and supplying data.
GetInfo Retrieves information about the current streaming settings.

See Also

Requirements

Header: Declared in Strmif.h; include Dshow.h.

Library: Use Strmiids.lib.