X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=spxdec_filter.c;h=b7b6329543773f0d0c12c96e21b952700790211f;hp=e54b2657d02650bdd33e22b730ee7c0a71f051eb;hb=c012c61639694212f44842fe651fba032db546ce;hpb=1cefe6a503c74d609db4e99e689d46575a5e40fd diff --git a/spxdec_filter.c b/spxdec_filter.c index e54b2657..b7b63295 100644 --- a/spxdec_filter.c +++ b/spxdec_filter.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2002-2006 Jean-Marc Valin - * Copyright (C) 2010-2012 Andre Noll + * Copyright (C) 2010 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -75,7 +75,7 @@ struct private_spxdec_data { int lookahead; /** The state information about the current stream. */ ogg_stream_state os; - /** Whether \a os initialized. */ + /** Whether \a os is initialized. */ bool stream_init; }; @@ -238,9 +238,9 @@ 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, void *context) { - struct filter_node *fn = container_of(t, struct filter_node, task); + struct filter_node *fn = context; struct private_spxdec_data *psd = fn->private_data; struct btr_node *btrn = fn->btrn; int ret, ns; @@ -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; - btr_remove_node(btrn); - } + if (ret < 0) + btr_remove_node(&fn->btrn); + return ret; } /**