Share via


DirectShow Editing Services Architecture

 
Microsoft DirectShow 9.0

DirectShow Editing Services Architecture

The following illustration shows the architecture of Microsoft® DirectShow® Editing Services (DES).

DirectShow Editing Services Architecture

  • Timeline: Represents a video production as a collection of source clips, transitions, and effects, organized into a set of nested tracks. For more information, see The Timeline Model.
  • XML Parser: Parses the timeline and generates an output file, or reads an input file and generates a timeline. DES supports an XML-based persistence format.
  • Render engine: Translates the timeline into a form that can be rendered as streaming media. By default, the render engine produces a DirectShow filter graph (see next section).
  • Media locator: Maintains a cache of locations of media elements. When an attempt to open a media element fails, DES uses the cache to locate the element, based on a history of successful opens.

The timeline is an abstract description of a video editing project. It specifies the source clips used in the project, start and stop times, effects and transitions, and so forth. The timeline does not render the video and audio streams, however. Instead, the render engine translates the timeline into a filter graph, for either preview or file output. An application manipulates the timeline rather than directly manipulating the filter graph, which would be cumbersome and error prone.

The following table lists the main tasks that a typical video editing application performs, along with the interfaces that support each task. Later sections describe these tasks and the interfaces in more detail.

Task Interface(s)
Construct or modify a timeline. IAMTimeline and the other IAMTimelineXXXX interfaces
Save and load project files. IXml2Dex
Preview a project or write it to a file. IRenderEngine, ISmartRenderEngine

In addition, an application might perform some or all of the following secondary tasks.

Task Interface(s)
Obtain information about media files. (Number of streams; format and duration of each stream.) IMediaDet
Set properties on transitions and effects. IPropertySetter
Receive notification when errors occur during rendering. IAMSetErrorLog, IAMErrorLog
Retrieve poster frames. IMediaDet, ISampleGrabber