IAMTimelineObj::SetStartStop
Microsoft DirectShow 9.0 |
IAMTimelineObj::SetStartStop
The SetStartStop method sets the object's start and stop times, relative to the object's parent.
Syntax
HRESULT SetStartStop( REFERENCE_TIME Start, REFERENCE_TIME Stop );
Parameters
Start
New start time, in 100-nanosecond units, or –1 to keep the existing start time.
Stop
New stop time, in 100-nanosecond units, or –1 to keep the existing stop time.
Return Value
Returns one of the following HRESULT values:
Return code | Description |
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
E_NOTIMPL | Not implemented. |
Remarks
Tracks, compositions, and groups do not implement this method. For these objects, the start time is always zero, and the stop time is the maximum stop time of the objects they contain.
Do not set overlapping times on source objects within the same track. Doing so can cause undefined behaviors.
For source objects, the start and stop times are independent of the media start and media stop times. Changing one pair of values does not change the other. To set the media start and stop times, call the IAMTimelineSrc::SetMediaTimes method. For more information, see Time in DirectShow Editing Services.
To get frame-accurate cuts and transitions, set the Start and Stop parameters to frame boundaries. You can use the IAMTimelineObj::FixTimes method to convert a time value into the nearest frame boundary, or use the following function to convert from frame number to reference time:
REFERENCE_TIME inline FrameNumToTime(LONGLONG frame, double fps) { double dt = (frame * 10000000 / fps); if (frame >= 0) { dt += 0.5; } else { dt -= 0.5; } return (REFERENCE_TIME)dt; }
Requirements
Header: Include Qedit.h. This header file is not compatible with Microsoft® Direct3D® headers later than version 7.
Library: Use strmiids.lib.
See Also