Decoders and Compressors
A version of this page is also available for
4/8/2010
The following examples describe some typical scenarios.
Decoders
In a typical video decoder, the output format is determined partly by the input format. For example, the output stream usually must have the same frame rate and video size as the input stream.
One option is for the decoder to return no output types until the input type is set. Another option is to enumerate a set of incomplete types with no format block. In that case, use the subtype to indicate the supported uncompressed types, such as 16-bit RGB and 24-bit RGB.
Also, video decoders generally do not support an application setting the output type before it sets the input type. Because the usual scenario is to decode from a known input format, this limitation is reasonable.
An audio decoder might support a fixed set of output formats. If so, it might be able to enumerate output formats before the application sets the input format.
Compressors
Usually, a video compressor cannot fully specify its preferred output formats until the application sets the input format, and vice versa. Instead, it should return an incomplete type with no format block.
For audio and video compression, applications usually need to control various format parameters, such as the output bit rate. However, if the input type is set, the compressor should enumerate at least one complete output type for the reasons mentioned previously.