static void wmadec_post_select(__a_unused struct sched *s, struct task *t)
{
struct filter_node *fn = container_of(t, struct filter_node, task);
- int ret, converted = 0;
+ int ret, converted;
struct private_wmadec_data *pwd = fn->private_data;
struct btr_node *btrn = fn->btrn;
size_t len;
char *in;
next_buffer:
+ converted = 0;
t->error = 0;
- ret = btr_node_status(btrn, fn->min_iqs);
+ ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL);
if (ret < 0)
goto err;
if (ret == 0)
for (;;) {
char *out;
int out_size = WMA_OUTPUT_BUFFER_SIZE;
- if (converted + WMA_FRAME_SKIP + pwd->ahi.block_align > len)
+ if (converted + fn->min_iqs > len)
break;
out = para_malloc(WMA_OUTPUT_BUFFER_SIZE);
ret = wma_decode_superframe(pwd, out,
goto next_buffer;
err:
assert(ret < 0);
- wmadec_close(fn);
t->error = ret;
- btr_del_node(btrn);
+ btr_remove_node(btrn);
}
static ssize_t wmadec_convert(char *inbuffer, size_t len,