This function compresses the given input data using Huffman coding and stores the output in out. Note that the output buffer should still be larger than the input buffer because there exists a certain input for which there will be no compression possible, which will still require a lookup table. It is recommended that one allocate srcSz + 0.1% + 12 for the output buffer.
- Returns
- On successfully compressing the input data, returns the number of bytes stored in the output buffer
-
COMPRESS_INIT_E Returned if there is an error initializing the stream for compression
-
COMPRESS_E Returned if an error occurs during compression
- Parameters
-
out | pointer to the output buffer in which to store the compressed data |
outSz | size available in the output buffer for storage |
in | pointer to the buffer containing the message to compress |
inSz | size of the input message to compress |
flags | flags to control how compression operates. Use 0 for normal decompression |
Example
byte message[] = {
byte compressed[(sizeof(message) + sizeof(message) * .001 + 12 )];
if(
wc_Compress(compressed,
sizeof(compressed), message,
sizeof(message),
0) != 0){
}
- See also
- wc_DeCompress