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.