}
if (state->blocks_avail == 0) {
- state->ref = 1;
- state->block_p = state->block_buf;
+ state->block_p = state->data_pp;
if (strm->avail_in >= state->block_len * strm->rsi) {
state->get_rsi(strm);
state->blocks_avail = strm->rsi - 1;
- if (strm->flags & AEC_DATA_PREPROCESS)
+ if (strm->flags & AEC_DATA_PREPROCESS) {
state->preprocess(strm);
-
+ state->ref = 1;
+ }
return m_check_zero_block(strm);
} else {
state->i = 0;
} while (++state->i < strm->rsi * strm->block_size);
state->blocks_avail = strm->rsi - 1;
- if (strm->flags & AEC_DATA_PREPROCESS)
+ if (strm->flags & AEC_DATA_PREPROCESS) {
state->preprocess(strm);
+ state->ref = 1;
+ }
return m_check_zero_block(strm);
}