From: Andre Noll Date: Sun, 31 Mar 2013 13:37:13 +0000 (+0000) Subject: spxdec: Switch to the alternative post select method. X-Git-Tag: v0.4.13~39^2~29 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=03e915eacaec02c700dd17254310cb61d0c80a59 spxdec: Switch to the alternative post select method. --- diff --git a/spxdec_filter.c b/spxdec_filter.c index 6bd41146..3bf547e0 100644 --- a/spxdec_filter.c +++ b/spxdec_filter.c @@ -238,7 +238,7 @@ static int compute_skip_samples(ogg_page *og, struct private_spxdec_data *psd) return ret; } -static void speexdec_post_select(__a_unused struct sched *s, struct task *t) +static int speexdec_post_select(__a_unused struct sched *s, struct task *t) { struct filter_node *fn = container_of(t, struct filter_node, task); struct private_spxdec_data *psd = fn->private_data; @@ -249,7 +249,6 @@ static void speexdec_post_select(__a_unused struct sched *s, struct task *t) size_t nbytes; next_buffer: - t->error = 0; ret = ns = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL); btr_merge(btrn, fn->min_iqs); if (!psd->shi.state) { @@ -290,10 +289,9 @@ next_buffer: goto next_buffer; ret = ns; fail: - if (ret < 0) { - t->error = ret; + if (ret < 0) btr_remove_node(&fn->btrn); - } + return ret; } /** @@ -306,6 +304,7 @@ void spxdec_filter_init(struct filter *f) f->open = spxdec_open; f->close = speexdec_close; f->pre_select = generic_filter_pre_select; - f->post_select = speexdec_post_select; + f->new_post_select = speexdec_post_select; + f->post_select = NULL; f->execute = speexdec_execute; }