The AVIMakeCompressedStream function creates a compressed stream from an uncompressed stream and a compression filter, and returns the address of a pointer to the compressed stream. This function supports audio and video compression.

STDAPI AVIMakeCompressedStream(
  PAVISTREAM * ppsCompressed,  
  PAVISTREAM psSource,         
  CLSID * pclsidHandler        



Pointer to a buffer that receives the compressed stream pointer.


Pointer to the stream to be compressed.


Pointer to a structure that identifies the type of compression to use and the options to apply. You can specify video compression by identifying an appropriate handler in the AVICOMPRESSOPTIONS structure. For audio compression, specify the compressed data format.


Pointer to a class identifier used to create the stream.

Return Values

Returns AVIERR_OK if successful or an error otherwise. Possible error values include the following.

Value Description
AVIERR_NOCOMPRESSOR A suitable compressor cannot be found.
AVIERR_MEMORY There is not enough memory to complete the operation.
AVIERR_UNSUPPORTED Compression is not supported for this type of data. This error might be returned if you try to compress data that is not audio or video.


Applications can read from or write to the compressed stream.

A PAVISTREAM is a pointer to an IAVIStream interface.


  Windows NT/2000/XP: Included in Windows NT 3.1 and later.
  Windows 95/98/Me: Included in Windows 95 and later.
  Header: Declared in Vfw.h.
  Library: Use Vfw32.lib.

See Also

AVIFile Functions and Macros, AVIFile Functions, AVICOMPRESSOPTIONS