Microsoft DirectX 8.1 (C++) |
The DVD Time Stamp Rate Change property set enables you to change DVD playback rates by modifying time stamps between input and output pins on two filters.
Time stamp remapping is a linear relationship given by the equation y = r(x - xi), where y is the new time stamp, r is the rate (or slope), x is the original time stamp, and xi is the x-intercept. This is shown graphically in the following diagram, with the time stamps that are input to the filter shown along the x-axis and the output time stamps shown along the y-axis.
Variable definitions for the time stamp conversion graph:
The decoder filter handles DVD rate changes, by reading the original time stamp on the media sample (x). The remaining variables, r and xi, must either be supplied or internally calculated to determine the new time stamp for the sample. The Time Stamp Rate Change property set supports two mechanisms for setting these parameters:
Specifying the AM_RATE_SimpleRateChange property is the easiest way to change the rate, but requires the filter to do some additional calculation.
The AM_RATE_MaxFullDataRate property enables an upstream filter to query for the maximum rate at which it can process the data. It uses the AM_MaxFullDataRate data type, which is a LONG value.
The following information presents the necessary constants and data types to use for this property set in calls to IKsPropertySet methods. It provides values for the GUID (guidPropSet), property ID (dwPropID), and property data type (pPropData) parameters.
Property ID | Data type used by the specified property |
AM_RATE_ExactRateChange | AM_ExactRateChange |
AM_RATE_MaxFullDataRate | AM_MaxFullDataRate |
AM_RATE_SimpleRateChange | AM_SimpleRateChange |
AM_RATE_Step | AM_Step |
The following list provides the Time Stamp Rate Change property set IDs and descriptions:
AM_RATE_ExactRateChange
Use the AM_ExactRateChange structure to change rate.
AM_RATE_MaxFullDataRate
Use the AM_MaxFullDataRate Long value to process at maximum rate.
AM_RATE_SimpleRateChange
Use the AM_SimpleRateChange structure to change rate.
AM_RATE_Step
Indicates the number of frames to step over. (Obsolete. See DVD Framestep property set.)
Use the IKsPropertySet interface to set, retrieve, and query for support of these properties.
This property set uses the following data types.
Data type | Description |
AM_ExactRateChange | Changes the rate of DVD playback based on the new rate and the time at which the output time stamps are zero. |
AM_SimpleRateChange | Changes the rate of DVD playback, based on starting time and the new rate. |