From 7dcaf56321189db230e0697f88ce9d9e225ea3ec Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 31 Mar 2013 13:20:13 +0000 Subject: [PATCH 1/1] flacdec: Switch to the alternative post select method. --- flacdec_filter.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/flacdec_filter.c b/flacdec_filter.c index b0f499c3..363c73bb 100644 --- a/flacdec_filter.c +++ b/flacdec_filter.c @@ -216,7 +216,7 @@ static void flacdec_pre_select(struct sched *s, struct task *t) return sched_min_delay(s); } -static void flacdec_post_select(__a_unused struct sched *s, struct task *t) +static int flacdec_post_select(__a_unused struct sched *s, struct task *t) { struct filter_node *fn = container_of(t, struct filter_node, task); struct private_flacdec_data *pfd = fn->private_data; @@ -224,7 +224,7 @@ static void flacdec_post_select(__a_unused struct sched *s, struct task *t) int ret; if (output_queue_full(btrn)) - return; + return 0; ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL); if (ret < 0 && ret != -E_BTR_EOF) /* fatal error */ goto out; @@ -255,9 +255,9 @@ static void flacdec_post_select(__a_unused struct sched *s, struct task *t) fn->min_iqs = 0; ret = 1; out: - t->error = ret; if (ret < 0) btr_remove_node(&fn->btrn); + return ret; } static void flacdec_close(struct filter_node *fn) @@ -296,6 +296,7 @@ void flacdec_filter_init(struct filter *f) f->open = flacdec_open; f->close = flacdec_close; f->pre_select = flacdec_pre_select; - f->post_select = flacdec_post_select; + f->new_post_select = flacdec_post_select; + f->post_select = NULL; f->execute = flacdec_execute; } -- 2.39.2