next_buffer:
t->error = 0;
- iqs = btr_get_input_queue_size(btrn);
- if (iqs < 2048) {
- if (!btr_no_parent(btrn)) /* wait for more data */
- return;
- }
- if (btr_bytes_pending(btrn) > AACDEC_MAX_PENDING)
- return;
- /* avoid "buffer too small" errors from the decoder */
- for (;;) {
- len = btr_next_buffer(btrn, (char **)&inbuf);
- if (len >= 2048)
- break;
- if (btr_merge(btrn) < 2) /* only one buffer left */
- break;
- }
- //PARA_CRIT_LOG("next buffer: %zu\n", len);
- if (len == 0) {
- if (btr_no_parent(btrn)) {
- ret = -E_AACDEC_EOF;
- goto err;
- }
+ ret = prepare_filter_node(btrn, 2048);
+ if (ret < 0)
+ goto err;
+ if (ret == 0)
return;
- }
+ len = btr_next_buffer(btrn, (char **)&inbuf);
+ iqs = btr_get_input_queue_size(btrn);
if (!padd->initialized) {
unsigned long rate = 0;
unsigned char channels = 0;