AVI Splitter Filter
The AVI Splitter Filter is used for playback of AVI files. It accepts data in AVI format and splits it into its constituent streams for further processing and/or rendering.
|Filter Interfaces||IAMMediaContent, IBaseFilter, IPersistMediaPropertyBag|
|Input Pin Media Types||MEDIATYPE_Stream, MEDIASUBTYPE_Avi|
|Input Pin Interfaces||IPin, IQualityControl|
|Output Pin Media Types||Typically MEDIATYPE_Video or MEDIATYPE_Audio. The exact type depends on the content of the file, whether the file is compressed, and what codec was used.|
|Output Pin Interfaces||IMediaPosition, IMediaSeeking, IPin, IPropertyBag, IQualityControl|
|Property Page CLSID||No property page.|
This filter is typically connected to the Async File Source filter on its input pin. It can connect to any filter whose output pin supports IAsyncReader and offers the correct media type to the AVI Splitter filter's input pin.
The output pins on the AVI Splitter support the IPropertyBag::Read method for reading properties from individual streams. Currently, the following property is defined.
|name||Returns the name of the stream, taken from the
The IPropertyBag::Write method returns E_FAIL. The AVI Mux filter supports IPropertyBag::Write for saving stream properties into an AVI file.
The AVI Splitter does not allow downstream filters to use their own allocator.
The interleaving duration in the file determines how much memory the AVI Splitter will allocate to process it. A file that is interleaved in one second chunks will require much more memory to process than a file whose interleave duration is set to one or two frames. On modern computers, this is generally not an issue unless you are running multiple instances of the AVI Splitter simultaneously.
If the file contains a video stream, the AVI Splitter supports seeking by frame number. To enable frame-based seeking, call IMediaSeeking::SetTimeFormat on the Filter Graph Manager with the value TIME_FORMAT_FRAME.
If the file contains an audio stream, the AVI Splitter supports seeking by sample number. To enable sample-based seeking, call SetTimeFormat on the Filter Graph Manager with the value TIME_FORMAT_SAMPLE.
In both cases, the output pin for that stream must be connected to a renderer filter.