]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - audiod.c
audiod: fix nasty thinko
[paraslash.git] / audiod.c
index db94369c1e5eb036ee9f2557ca07a2edc6b49161..c2abfd5ab50a57abfb7d042c698b7eaca9efd546 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -472,7 +472,7 @@ static void close_receiver(int slot_num)
        if (s->format < 0 || !s->receiver_node)
                return;
        a = &afi[s->format];
-       PARA_NOTICE_LOG("closing %s recevier in slot %d (eof = %d)\n",
+       PARA_NOTICE_LOG("closing %s receiver in slot %d (eof = %d)\n",
                audio_formats[s->format] , slot_num, s->receiver_node->eof);
        if (!s->receiver_node->eof)
                unregister_task(&s->receiver_node->task);
@@ -693,7 +693,7 @@ static void open_writer(int slot_num)
        for (i = 0; i < a->num_writers; i++) {
                s->wng->writer_nodes[i].conf = a->writer_conf[i];
                s->wng->writer_nodes[i].writer = a->writers[i];
-               sprintf(s->wng->writer_nodes[i].task.status, "writer_ node");
+               sprintf(s->wng->writer_nodes[i].task.status, "writer_node");
        }
        ret = wng_open(s->wng);
        s->wstime = *now;
@@ -988,41 +988,6 @@ static int add_filter(int format, char *cmdline)
        return filter_num;
 }
 
-static int setup_default_filters(void)
-{
-       int i, ret = 1;
-
-       FOR_EACH_AUDIO_FORMAT(i) {
-               struct audio_format_info *a = &afi[i];
-               char *tmp;
-               int j;
-               if (a->num_filters)
-                       continue;
-               /* add "dec" to audio format name */
-               tmp = make_message("%sdec", audio_formats[i]);
-               for (j = 0; filters[j].name; j++)
-                       if (!strcmp(tmp, filters[j].name))
-                               break;
-               free(tmp);
-               ret = -E_UNSUPPORTED_FILTER;
-               if (!filters[j].name)
-                       goto out;
-               tmp = para_strdup(filters[j].name);
-               ret = add_filter(i, tmp);
-               free(tmp);
-               if (ret < 0)
-                       goto out;
-               PARA_INFO_LOG("%s -> default filter: %s\n", audio_formats[i],
-                       filters[j].name);
-               ret = add_filter(i, "wav");
-               if (ret < 0)
-                       goto out;
-               PARA_INFO_LOG("%s -> default filter: wav\n", audio_formats[i]);
-       }
-out:
-       return ret;
-}
-
 static int init_writers(void)
 {
        int i, ret, nw;
@@ -1031,7 +996,7 @@ static int init_writers(void)
 
        init_supported_writers();
        nw = PARA_MAX(1, conf.writer_given);
-       PARA_INFO_LOG("allocating space for %d writers\n", nw);
+       PARA_INFO_LOG("maximal number of writers: %d\n", nw);
        FOR_EACH_AUDIO_FORMAT(i) {
                a = &afi[i];
                a->writer_conf = para_malloc(nw * sizeof(void *));
@@ -1051,7 +1016,7 @@ static int init_writers(void)
                        ret = writer_num;
                        goto out;
                }
-               a->writers[nw] = &writers[ret];
+               a->writers[nw] = &writers[writer_num];
                a->writer_conf[nw] = wconf;
                PARA_INFO_LOG("%s writer #%d: %s\n", audio_formats[ret],
                        nw, writer_names[writer_num]);
@@ -1110,19 +1075,51 @@ out:
        return ret;
 }
 
+static int init_default_filters(void)
+{
+       int i, ret = 1;
+
+       FOR_EACH_AUDIO_FORMAT(i) {
+               struct audio_format_info *a = &afi[i];
+               char *tmp;
+               int j;
+
+               if (a->num_filters)
+                       continue; /* no default -- nothing to to */
+               /* add "dec" to audio format name */
+               tmp = make_message("%sdec", audio_formats[i]);
+               for (j = 0; filters[j].name; j++)
+                       if (!strcmp(tmp, filters[j].name))
+                               break;
+               free(tmp);
+               ret = -E_UNSUPPORTED_FILTER;
+               if (!filters[j].name)
+                       goto out;
+               tmp = para_strdup(filters[j].name);
+               ret = add_filter(i, tmp);
+               free(tmp);
+               if (ret < 0)
+                       goto out;
+               PARA_INFO_LOG("%s -> default filter: %s\n", audio_formats[i],
+                       filters[j].name);
+       }
+out:
+       return ret;
+}
+
 static int init_filters(void)
 {
        int i, ret, nf;
 
        filter_init(filters);
-       nf = PARA_MAX(2,  conf.filter_given) + 1;
-       PARA_INFO_LOG("allocating space for %d filters\n", nf);
+       nf = PARA_MAX(1,  conf.filter_given);
+       PARA_INFO_LOG("maximal number of filters: %d\n", nf);
        FOR_EACH_AUDIO_FORMAT(i) {
                afi[i].filter_conf = para_malloc(nf * sizeof(void *));
                afi[i].filters = para_malloc(nf * sizeof(struct filter *));
        }
        if (!conf.no_default_filters_given)
-               return setup_default_filters();
+               return init_default_filters();
        for (i = 0; i < conf.filter_given; i++) {
                char *arg = conf.filter_arg[i];
                char *filter_name = strchr(arg, ':');
@@ -1138,7 +1135,7 @@ static int init_filters(void)
                if (ret < 0)
                        goto out;
        }
-       ret = 1;
+       ret = init_default_filters(); /* use default values for the rest */
 out:
        return ret;
 }
@@ -1569,7 +1566,7 @@ static void status_post_select(struct sched *s, struct task *t)
        if (ret <= 0) {
                close_stat_pipe();
                /* avoid busy loop if server is down */
-               while (sleep(1) > 0)
+               while (sleep(1) > 0) /* FIXME */
                        ; /* try again*/
        } else {
                st->buf[ret + st->loaded] = '\0';