Microsoft DirectX 9.0


Retrieves the current sample's start and end times. If the sample is updating, this method returns the times after the update completes.


HRESULT GetSampleTimes(
  STREAM_TIME *pStartTime,
  STREAM_TIME *pEndTime,
  STREAM_TIME *pCurrentTime



[out] Pointer to a STREAM_TIME value that will contain the sample's start time.


[out] Pointer to a STREAM_TIME value that will contain the sample's end time.


[out] Pointer to a STREAM_TIMEvalue that will contain the media stream's current media time.

Return Values

Returns S_OK if successful or E_POINTER if one of the parameters is invalid.


For streams that have a clock, the start and end times will be relative to the stream's current time. If the stream doesn't have a clock, the times are media-relative and the current time will be zero.

The pCurrentTime parameter enables you to conveniently track the media stream's current time, so you don't have to call IMultiMediaStream::GetTime. Unlike GetTime, however, this method returns S_OK if the stream doesn't have a clock; GetTime returns S_FALSE. The value assigned to pCurrentTime is the same as the value produced by the following code fragment.

IMediaStream *pMediaStream = 0;
hr = pSample->GetMediaStream(&pMediaStream);
if (SUCCEEDED(hr))
  IMultiMediaStream *pMultiMediaStream = 0;
  hr = pMediaStream->GetMultiMediaStream(&pMultiMediaStream);
  if (SUCCEEDED(hr))
    STREAM_TIME CurrentTime = 0;
    hr = pMultiMediaStream->GetTime(&CurrentTime);

See Also