state->flush_output(strm);
state->flush_start = state->rsi_buffer;
state->rsip = state->rsi_buffer;
- if (strm->flags & AEC_PAD_RSI)
- state->bitp -= state->bitp % 8;
}
}
{
struct internal_state *state = strm->state;
- if (state->pp && state->rsip == state->rsi_buffer)
+ if (state->pp && state->rsip == state->rsi_buffer) {
state->ref = 1;
+ if (strm->flags & AEC_PAD_RSI)
+ state->bitp -= state->bitp % 8;
+ }
else
state->ref = 0;
int n;
struct internal_state *state = strm->state;
+ if (state->blocks_avail == 0
+ && strm->flags & AEC_PAD_RSI
+ && state->block_nonzero == 0
+ )
+ emit(state, 0, state->bits % 8);
+
if (state->direct_out) {
n = state->cds - strm->next_out;
strm->next_out += n;