Merge branch 'master' into next
authorAndre Noll <maan@systemlinux.org>
Sun, 2 Aug 2009 13:31:16 +0000 (15:31 +0200)
committerAndre Noll <maan@systemlinux.org>
Sun, 2 Aug 2009 13:31:16 +0000 (15:31 +0200)
audiod.c
filter.c
filter.h
filter_common.c

index 27c153d791ee95983591e89176cf5917545e41df..0479e1e132c6b6e8d9fceb110f97bd98ed6d8381 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -386,8 +386,8 @@ static void open_filters(int slot_num)
        s->fc->inbufp = &s->receiver_node->buf;
        s->fc->in_loaded = &s->receiver_node->loaded;
        s->fc->input_error = &s->receiver_node->task.error;
-       s->fc->task.pre_select = filter_pre_select;
-       s->fc->task.post_select = NULL;
+       s->fc->task.pre_select = NULL;
+       s->fc->task.post_select = filter_post_select;
        s->fc->task.error = 0;
        s->fc->num_filters = nf;
 
index 796e445a8ed64149a0475567a8426d296a1d61d3..1ea7ac89f259b83fe5da9b0246e7b4215b61cf72 100644 (file)
--- a/filter.c
+++ b/filter.c
@@ -85,7 +85,7 @@ static int init_filter_chain(void)
        fc->input_error = &sit->task.error;
        fc->task.error = 0;
        fc->output_error = &sot->task.error;
-       fc->task.pre_select = filter_pre_select;
+       fc->task.post_select = filter_post_select;
        sprintf(fc->task.status, "filter chain");
 
        FOR_EACH_FILTER_NODE(fn, fc, i) {
index 23f47f4498049ddd39648033e4fbaa13a9ef3c53..15bfaf8cdb0c2533c463fe8272d21e5528b80dbd 100644 (file)
--- a/filter.h
+++ b/filter.h
@@ -196,7 +196,7 @@ struct filter {
 void close_filters(struct filter_chain *fc);
 void filter_init(void);
 int check_filter_arg(char *filter_arg, void **conf);
-void filter_pre_select(__a_unused struct sched *s, struct task *t);
+void filter_post_select(__a_unused struct sched *s, struct task *t);
 void print_filter_helps(int detailed);
 
 static inline void write_int16_host_endian(char *buf, int val)
index cfe08dd1e7274bff947ddc50e70f3711fe60422e..7c71ff39243a7a63f7026c11726418377790c87e 100644 (file)
@@ -106,7 +106,7 @@ static void call_callbacks(struct filter_node *fn, char *inbuf, size_t inlen,
  *
  * \sa filter_node, filter#convert, filter_callback.
  */
-void filter_pre_select(__a_unused struct sched *s, struct task *t)
+void filter_post_select(__a_unused struct sched *s, struct task *t)
 {
        struct filter_chain *fc = container_of(t, struct filter_chain, task);
        struct filter_node *fn;
@@ -143,19 +143,6 @@ again:
        conv_total += conv;
        if (conv)
                goto again;
-       if (conv_total) {
-               /*
-                * Other pre_select functions might have already been called by
-                * now and decided to do nothing, e.g. because their output
-                * buffer was full or the input buffer was empty. We just
-                * converted something which caused these buffers to change but
-                * we can't make the other tasks reconsider their decision at
-                * this point.  So force a minimal timeout for the next select
-                * call to avoid unnecessary delays.
-                */
-               s->timeout.tv_sec = 0;
-               s->timeout.tv_usec = 1;
-       }
        if (*fc->input_error >= 0)
                return;
        if (*fc->out_loaded)