## About Cutlists

This article introduces cutlists and discusses interfaces that provide cutlist support. See Using Cutlists for information about the limitations of the current cutlist implementation and sample code for using cutlists in an application.

Contents of this article:

- What Are Cutlists?
- Cutlist Objects and Interfaces

What Are Cutlists?

A cutlist is a list of audio or video clips (cutlist elements) you want to play back sequentially. For each clip, the cutlist element contains the file name from which to create the clip, and details about the clip including start and stop time within that file. A cutlist is either video- or audio- specific, and that video or audio data must all be of the same media type. The beginning time for the clip, relative to the source file, is called the trimin position and the ending time for the clip is the trimout position.

You use cutlists to edit pieces of AVI and WAV files together. For instance a video cutlist could contain video clips (elements) with characteristics as follows:

Clip # | File Name | Start Time | Stop Time | Type | Stream #
1 | Venus.avi | 5 seconds | 10 seconds | video | 0
2 | Mars.avi | 15 seconds | 20 seconds | video | 0
3 | Venus.avi | 15 seconds | 30 seconds | video | 0

In the preceding example, the first and third clips are both taken from the same file. One clip is from seconds 5 through 10 of Venus.avi, while another is from seconds 15 through 30 of the same file. Between those clips, the cutlist contains seconds 15 through 20 of Mars.avi. All clips are taken from the first video stream (stream 0) in their respective files. The clips play back sequentially (1, 2, and then 3).

Cutlist Objects and Interfaces

Microsoft® DirectShow™ defines the following objects that implement the specified interfaces. Applications use these objects and interfaces to create, manipulate, and play cutlists.

Object | Supported interfaces | Description
CLSID_SimpleCutList | IStandardCutList | Cutlist object
CLSID_VideoFileClip | IFileClip | Cutlist element (individual clip) object for video
CLSID_AudioFileClip | IFileClip | Cutlist element (individual clip) object for audio
CLSID_CutListGraphBuilder | ICutListGraphBuilder | Cutlist graph builder object

These interfaces enable application writers to construct filter graphs without having to worry about the specifics of each cutlist object. They provide a simple way to create and manipulate cutlists, and to create a filter graph to play an edited movie in real time. In addition, a single cutlist filter calls these interfaces — the application must be aware of the different cutlist filters that are installed and generate the proper filter graph.

If you need cutlist functionality that the preceding interfaces don't provide, such as detailed cutlist or cutlist element information, see the following interfaces.

- IAMAudioCutListElement
- IAMCutListElement
- IAMFileCutListElement
- IAMVideoCutListElement

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.