ICSeqCompressFrame function

The ICSeqCompressFrame function compresses one frame in a sequence of frames.


  UINT      uiFlags,
  LPVOID    lpBits,
  BOOL      *pfKey,
  LONG      *plSize



Pointer to a COMPVARS structure initialized with information about the compression.


Reserved; must be zero.


Pointer to the data bits to compress. (The data bits exclude header or format information.)


Returns whether or not the frame was compressed into a key frame.


Maximum size desired for the compressed image. The compressor might not be able to compress the data to fit within this size. When the function returns, the parameter points to the size of the compressed image. Images sizes are specified in bytes.

Return Value

Returns the address of the compressed bits if successful or NULL otherwise.


This function uses a COMPVARS structure to provide settings for the specified compressor and intersperses key frames at the rate specified by the ICSeqCompressorFrameStart function. You can specify values for the data rate for the sequence and the key-frame frequency by using the appropriate members of COMPVARS.

Use this function instead of the ICCompress function to compress a video sequence.

You can allow the user to specify a compressor and initialize a COMPVARS structure by using the ICCompressorChoose function. Or, you can initialize a COMPVARS structure manually.

Use the ICSeqCompressFrameStart, ICSeqCompressFrame, and ICSeqCompressFrameEnd functions to compress a sequence of frames to a specified data rate and number of key frames. Use ICSeqCompressFrame once for each frame to be compressed.

When finished with compression, use the ICCompressorFree function to release the resources specified by COMPVARS.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header vfw.h
Library Vfw32.lib
DLL Msvfw32.dll

See Also

Video Compression Functions

Video Compression Manager