Timeline Objects

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

[This API is not supported and may be altered or unavailable in the future.]

Each type of object in the timeline—source, track, effect, and so forth—is a distinct COM object. However, an application does not create them using the CoCreateInstance function. Instead, it calls the IAMTimeline::CreateEmptyNode method. This method creates an object of the requested type, initializes it, and returns a pointer to the object. For details, see Constructing a Timeline.

Every timeline object exposes the IAMTimelineObj interface. In addition, the various object types support their own specialized interfaces:

Note that groups are a type of composition, so they support IAMTimelineComp, as well as their own IAMTimelineGroup interface.

In addition to the interfaces listed previously, timeline objects expose other, secondary interfaces. These interfaces determine the relationships between the object types.

Interface Meaning Exposed By
IAMTimelineVirtualTrack The object is a virtual track. Virtual tracks can reside inside compositions and hold other timeline objects. Composition, Track
IAMTimelineEffectable The object can have effects. Composition, Track, Source
IAMTimelineTransable The object can have transitions. Composition, Track
IAMTimelineSplittable The object can be split into two objects. Track, Source, Effect, Transition

 

Overview of the Timeline Components