|Microsoft DirectX 9.0|
MPEG samples have the following characteristics.
Not all samples have start and stop times. The sample stop time for packet and payload data is not useful; it is usually set to the start time plus one. MPEG packet or payload data samples will have a start and stop time set if the system layer packet they are generated from had a valid PTS.
For more information about time stamps, see section 2.4.1 of ISO1-11172: "The packet header may contain decoding and/or presentation time stamps (DTS and PTS) that refer to the first access unit in the packet."
For MPEG_Stream major types, the start time is the byte position of the first byte, rated at 1 byte per second. The stop time is the byte position of the last byte. Thus, consecutive samples should have the stop time of the first packet equal to the start time of the next packet. For Video CD data, the origin of the medium must match the format of a video-CD file exposed by CDFS with the standard RIFF chunk at the start.
For MPEG video packet and payload types, the time stamp is the presentation time for the first video frame whose picture start code begins in the sample.
For MPEG audio packet and payload types, the time stamp is the presentation time for the first audio frame whose sync code starts in the sample.
It is assumed that packet and payload data without time stamps can be successfully prerolled by the handling filters.
If there is a break in the stream (for example, a gap in the real-time data, or an error in the data or after a seek), the discontinuity property is set on the next media sample. This also allows for a time-stamp discontinuity.
When the deoder receives this notification, it must process any buffered data. Any new data must then start with the discontinuity property.