Commit d4d3a273 authored by Mathis Rosenhauer's avatar Mathis Rosenhauer

Allow nonconforming block sizes in SZ mode.

parent 6c0595c8
......@@ -775,11 +775,18 @@ int aec_encode_init(struct aec_stream *strm)
if (strm->bits_per_sample > 32 || strm->bits_per_sample == 0)
return AEC_CONF_ERROR;
if (strm->flags & AEC_NOT_ENFORCE) {
/* All even block sizes are allowed. */
if (strm->block_size & 1)
return AEC_CONF_ERROR;
} else {
/* Only allow standard conforming block sizes */
if (strm->block_size != 8
&& strm->block_size != 16
&& strm->block_size != 32
&& strm->block_size != 64)
return AEC_CONF_ERROR;
}
if (strm->rsi > 4096)
return AEC_CONF_ERROR;
......
......@@ -120,6 +120,9 @@ struct aec_stream {
/* Pad RSI to byte boundary. Only for decoding CCSDS sample data. */
#define AEC_PAD_RSI 32
/* Do not enforce standard regarding legal block sizes. */
#define AEC_NOT_ENFORCE 64
/*************************************/
/* Return codes of library functions */
/*************************************/
......
......@@ -127,7 +127,7 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
strm.block_size = param->pixels_per_block;
strm.rsi = (param->pixels_per_scanline + param->pixels_per_block - 1)
/ param->pixels_per_block;
strm.flags = convert_options(param->options_mask);
strm.flags = AEC_NOT_ENFORCE | convert_options(param->options_mask);
strm.avail_out = *destLen;
strm.next_out = dest;
buf = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment