KSPROPERTY_STREAM_PRESENTATIONTIME

The KSPROPERTY_STREAM_PRESENTATIONTIME property is used to retrieve and set the current presentation time of a filter pin.

Usage Summary Table

Get Set Target Property Descriptor Type Property Value Type

Yes

Yes

Pin

KSPROPERTY

KSTIME

Remarks

KSPROPERTY_STREAM_PRESENTATIONTIME is an optional property that should be implemented if a pin retains positional information or uses different interfaces with different time stamp formats on topologically related pins. Therefore, it would need to have the time stamps translated as a seek presentation time occurs.

The presentation time of the filter pin is specified as a KSTIME structure whose interpretation depends on the interface used. For the standard streaming interface, time is specified in 100-nanosecond increments (unless the numerator and denominator specify otherwise) representing the presentation position of the stream the filter is currently processing or is seeking to process. If this is a rendering filter, this position represents the data that is currently being rendered. This positioning information is synchronized with the master clock's presentation time. Presentation time typically begins at zero and may represent a time offset into file data. The numerator and denominator can be used to specify block alignment that the interface enforces.

This property is also used when translating positional values during propagation of a seek request. The seek positional value on one pin is translated within the filter to presentation time on topologically related pins. A client sets this property with a new stream position in order to seek. This typically is called by the proxy when a seek is required after canceling outstanding I/O and resetting device state. If a reset has not been performed, the filter may have to automatically cancel and reset appropriately. The property is passed a KSTIME containing the new stream position in units consistent with the interface used on the connection.

After a client (for example, a DirectShow proxy) writes a seek request to one connection, it then queries the other topologically related connections for a presentation time. Any other connections that conduct a successful read request make the proxy pass the result position to the other end of that connection. In this manner, seek positions are propagated (for example, throughout the DirectShow graph) without having to know the unit format other than the initial unit format passed by a client. Translations occurs within the filter as the positional information propagates through the topology within a filter. This roundabout method is used because communication methods may be limited between various filters in a graph depending on the interfaces they use. When setting a new seek position, the numerator/denominator pair must be acceptable to the pin.

Requirements

Header

Ks.h (include Ks.h)

See also

KSTIME

KSPROPERTY