* Copyright (c) 2002-2007 Jean-Marc Valin
* Copyright (c) 2008 CSIRO
* Copyright (c) 2007-2012 Xiph.Org Foundation
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
static int opusdec_post_select(__a_unused struct sched *s, struct task *t)
{
- struct filter_node *fn = container_of(t, struct filter_node, task);
+ struct filter_node *fn = task_context(t);
struct opusdec_context *ctx = fn->private_data;
struct btr_node *btrn = fn->btrn;
int ret;
static void opusdec_pre_select(struct sched *s, struct task *t)
{
- struct filter_node *fn = container_of(t, struct filter_node, task);
+ struct filter_node *fn = task_context(t);
struct opusdec_context *ctx = fn->private_data;
int ret = btr_node_status(fn->btrn, fn->min_iqs, BTR_NT_INTERNAL);
if (ret != 0)
return sched_min_delay(s);
- if (ctx->have_more)
+ if (!ctx->have_more)
return;
if (btr_get_output_queue_size(fn->btrn) <= OPUSDEC_MAX_OUTPUT_SIZE)
return sched_min_delay(s);