IMediaPosition Interface

 
Microsoft DirectShow 9.0

IMediaPosition Interface

The IMediaPosition interface contains methods for seeking to a position within a stream. The IMediaSeeking interface improves on this interface. Applications written in C/C++ should use IMediaSeeking instead of IMediaPosition. However, IMediaSeeking is not compatible with Automation, so applications written in Microsoft® Visual Basic® 6.0 must use IMediaPosition instead.

This interface is exposed by the Filter Graph Manager as well as by individual filters. Applications should obtain an IMediaPosition interface pointer from the Filter Graph Manager, not from a filter. The Filter Graph Manager distributes method calls to all of the renderer filters. The renderer filters propagate the calls upstream to the source filters. This sequence of events ensures that all streams remain synchronized.

If one of the distributed calls returns an error, the Filter Graph Manager returns the first error value it received. Some of the distributed calls may have succeeded in this case. However, the filter graph does not return E_NOTIMPL unless all the distributed calls return E_NOTIMPL. If at least one filter in the graph implements the method, the Filter Graph Manager does not return E_NOTIMPL.

Filter developers: Do not implement this method. Implement IMediaSeeking instead. If your filter supports IMediaSeeking, the Filter Graph Manager automatically handles calls to IMediaPosition.

In addition to the methods inherited from IDispatch, the IMediaPosition interface exposes the following methods.

Method Description
get_Duration Retrieves the duration of the stream.
put_CurrentPosition Sets the current position, relative to the total duration of the stream.
get_CurrentPosition Retrieves the current position, relative to the total duration of the stream.
get_StopTime Retrieves the time at which the playback will stop, relative to the duration of the stream.
put_StopTime Sets the time at which the playback will stop, relative to the duration of the stream.
get_PrerollTime Retrieves the amount of data that will be queued before the start position.
put_PrerollTime Sets the amount of data that will be queued before the start position.
put_Rate Sets the playback rate.
get_Rate Retrieves the playback rate.
CanSeekForward Determines whether the filter graph can seek forward in the stream.
CanSeekBackward Determines whether the filter graph can seek backward in the stream.

Requirements

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

Library: Use Strmiids.lib.