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.
Syntax
HRESULT GetSampleTimes(
STREAM_TIME *pStartTime,
STREAM_TIME *pEndTime,
STREAM_TIME *pCurrentTime
);
Parameters
pStartTime
[out] Pointer to a STREAM_TIME value that will contain the sample's start time.
pEndTime
[out] Pointer to a STREAM_TIME value that will contain the sample's end time.
pCurrentTime
[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.
Remarks
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);
pMediaStream->Release();
if (SUCCEEDED(hr))
{
STREAM_TIME CurrentTime = 0;
hr = pMultiMediaStream->GetTime(&CurrentTime);
pMultiMediaStream->Release();
}
}
See Also