Microsoft DirectX 8.1 (C++) |
This article describes how Microsoft DirectShow Editing Services (DES) renders a video editing project.
In DES, a project is represented as a
The smart render engine uses
For preview, use the basic render engine. The smart render engine can also preview, but less efficiently because it has to decompress the compressed stream. For writing files, use the smart render engine if you want smart recompression. Otherwise, use the basic render engine. Smart recompression can greatly reduce the time it takes to write the file.
Important If your source files include ASF files, and your target file is an AVI file, do not use the smart render engine. The file might not play back correctly. Use the basic render engine, or consider writing an ASF file instead.
Important Both render engines create an invisible window that processes messages. The thread that creates the render engine must have a message loop, to dispatch messages. Also, that thread must not exit until the Render Engine and the Filter Graph Manager are released. Otherwise, the application might deadlock.
Constructing the Filter Graph
The filter graph is built in two stages. In the first stage, the render engine constructs a "front end," which is a partial filter graph. The following diagram illustrates a typical front end:
The subsystems contain various specialized filters, which the render engine assembles automatically. The front end contains one output pin for each
In the second step, the output pins are connected to rendering filters. For preview, the rendering filters are video and audio renderers. For file writing, the rendering filters are multiplexer (mux) filters and file-writer filters.
See Also