base64: Use para_isspace() everywhere.
[paraslash.git] / oggdec_filter.c
index 3222b4aaaaabc046ac3983359ae58d868861c46a..4b801356075ba8b7f1ebb4280708aac94194912a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005 Andre Noll <maan@tuebingen.mpg.de>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -178,12 +178,20 @@ out:
        return ret;
 }
 
+/** Suspend decoding if output queue size is larger than that. */
 #define OGGDEC_MAX_OUTPUT_SIZE (96 * 1024)
+
+/**
+  * Allocate chunks of this size and produce at most one chunk of output per
+  * ->post_select() invocation. If the buffer could only be filled partially
+  * due to insufficient input being available, it is shrunk to the real output
+  * size and the resized buffer is fed into the output queue.
+  */
 #define OGGDEC_OUTPUT_CHUNK_SIZE (32 * 1024)
 
-static void ogg_pre_select(struct sched *s, struct task *t)
+static void ogg_pre_select(struct sched *s, void *context)
 {
-       struct filter_node *fn = container_of(t, struct filter_node, task);
+       struct filter_node *fn = context;
        struct private_oggdec_data *pod = fn->private_data;
        struct btr_node *btrn = fn->btrn;
        int ret;
@@ -198,9 +206,9 @@ static void ogg_pre_select(struct sched *s, struct task *t)
        sched_min_delay(s);
 }
 
-static int ogg_post_select(__a_unused struct sched *s, struct task *t)
+static int ogg_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_oggdec_data *pod = fn->private_data;
        struct btr_node *btrn = fn->btrn;
        int ret, have;