* We can not consume directly what was copied by the read callback
* because we might need to feed unconsumend bytes to the decoder again
* after the read callback ran out of data and returned ABORT. So we
- * track how many bytes are unconsumed so far.
+ * track how many bytes have been fed to libflac but are unconsumed so far.
*/
size_t unconsumed;
};
write_int16_host_endian(outbuffer + 4 * k + 2, right);
}
}
- btr_add_output(outbuffer, n * 4, btrn);
+ btr_add_output(outbuffer, n * channels * 2, btrn);
flac_consume(fn);
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
}
struct private_flacdec_data *pfd = fn->private_data;
struct btr_node *btrn = fn->btrn;
int ret;
+ FLAC__StreamDecoderState state;
if (output_queue_full(btrn))
return 0;
goto out;
}
pfd->have_more = false;
- FLAC__StreamDecoderState state;
FLAC__stream_decoder_process_single(pfd->decoder);
state = FLAC__stream_decoder_get_state(pfd->decoder);
ret = -E_FLACDEC_EOF;
f->open = flacdec_open;
f->close = flacdec_close;
f->pre_select = flacdec_pre_select;
- f->new_post_select = flacdec_post_select;
+ f->post_select = flacdec_post_select;
f->execute = flacdec_execute;
}