Skip to content
Snippets Groups Projects
Commit d4d3a273 authored by Mathis Rosenhauer's avatar Mathis Rosenhauer
Browse files

Allow nonconforming block sizes in SZ mode.

parent 6c0595c8
No related branches found
No related tags found
No related merge requests found
......@@ -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->block_size != 8
&& strm->block_size != 16
&& strm->block_size != 32
&& strm->block_size != 64)
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 */
/*************************************/
......
......@@ -70,8 +70,8 @@ static void deinterleave_buffer(void *dest, const void *src,
}
static void add_padding(void *dest, const void *src, size_t total,
size_t line_size, size_t padding_size,
int pixel_size, int pp)
size_t line_size, size_t padding_size,
int pixel_size, int pp)
{
size_t i, j, k, ls, ps;
const char *pixel;
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment