ICCOMPRESS


typedef struct {
    DWORD dwFlags;
    LPBITMAPINFOHEADER lpbiOutput;
    LPVOID lpOutput;
    LPBITMAPINFOHEADER lpbiInput;
    LPVOID lpInput;
    LPDWORD lpckid;
    LPDWORD lpdwFlags;
    LONG lFrameNum;
    DWORD dwFrameSize;
    DWORD dwQuality;                 // Quality setting
    LPBITMAPINFOHEADER lpbiPrev;
    LPVOID lpPrev;
} ICCOMPRESS;

Contains compression parameters used with the ICM_COMPRESS message.

dwFlags

Flags used for compression. The following value is defined:

ICCOMPRESS_KEYFRAME

Indicates the input data should be treated as a key frame.


lpbiOutput

Address of a BITMAPINFOHEADER structure containing the output (compressed) format. The biSizeImage member must contain the size of the compressed data.

lpOutput

Address of the buffer where the driver should write the compressed data.

lpbiInput

Address of a BITMAPINFOHEADER structure containing the format of the input (uncompressed) data.

lpInput

Address of the buffer containing input data.

lpckid

Address of a doubleword to return the chunk identifier for data in the AVI file. If the value of this member is not NULL, the driver should specify a two-character code for the chunk identifier corresponding to the chunk identifier used in the AVI file.

lpdwFlags

Address of a doubleword to return flags for the AVI index. If the returned frame is a key frame, the driver should set the AVIIF_KEYFRAME flag.

lFrameNum

Number of the frame to compress.

dwFrameSize

Desired maximum size, in bytes, for compressing this frame. The size value is used for compression methods that can make tradeoffs between compressed image size and image quality. Specify zero for this member to use the default setting.

dwQuality

Quality setting, if supported by the compression driver. Quality values range from 0 to 10,000.

lpbiPrev

Address of a BITMAPINFOHEADER structure containing the format of the previous frame, which is normally the same as the input format.

lpPrev

Address of the buffer containing input data of the previous frame.

Drivers that perform temporal compression use data from the previous frame (found in the lpbiPrev and lpPrev members) to prune redundant data from the current frame.