X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;ds=sidebyside;f=audiod.c;h=74aa3865037f15f9c2e092599d54849f839a1dbf;hb=3ac4dd80b465b07c5eb8b8b5200ab67ca948d8f1;hp=c7998cdb7d02259b4e4da84353a2fdade8ec5584;hpb=85bbc6ae5732ffb1269dea6dedbbe81544cebe96;p=paraslash.git diff --git a/audiod.c b/audiod.c index c7998cdb..74aa3865 100644 --- a/audiod.c +++ b/audiod.c @@ -522,16 +522,12 @@ static void open_writers(struct slot_info *s) assert(s->wns == NULL); s->wns = para_calloc(PARA_MAX(1U, a->num_writers) * sizeof(struct writer_node)); - if (a->num_writers == 0) - setup_writer_node(NULL, parent, s->wns); - else { - PARA_INFO_LOG("opening %s writers\n", audio_formats[s->format]); - for (i = 0; i < a->num_writers; i++) { - wn = s->wns + i; - wn->conf = a->writer_conf[i]; - wn->writer_num = a->writer_nums[i]; - register_writer_node(wn, parent); - } + PARA_INFO_LOG("opening %s writers\n", audio_formats[s->format]); + for (i = 0; i < a->num_writers; i++) { + wn = s->wns + i; + wn->conf = a->writer_conf[i]; + wn->writer_num = a->writer_nums[i]; + register_writer_node(wn, parent); } } @@ -800,6 +796,20 @@ static int parse_writer_args(void) a->num_writers++; } } + /* Use default writer for audio formats which are not yet set up. */ + FOR_EACH_AUDIO_FORMAT(i) { + struct writer *w = writers + DEFAULT_WRITER; + a = afi + i; + if (a->num_writers > 0) + continue; /* already set up */ + PARA_INFO_LOG("%s writer: %s (default)\n", audio_formats[i], + writer_names[DEFAULT_WRITER]); + a->writer_nums = para_malloc(sizeof(int)); + a->writer_nums[0] = DEFAULT_WRITER; + a->writer_conf = para_malloc(sizeof(void *)); + a->writer_conf[0] = w->parse_config_or_die(""); + a->num_writers = 1; + } ret = 1; out: return ret;