if (s->format < 0)
return;
+ assert(s->wns);
a = afi + s->format;
if (a->num_writers == 0)
writer_cleanup(s->wns);
fn->conf = a->filter_conf[i];
fn->task.pre_select = f->pre_select;
fn->task.post_select = f->post_select;
- fn->btrn = btr_new_node(f->name, parent, f->execute, fn);
+
+ fn->btrn = btr_new_node(&(struct btr_node_description)
+ EMBRACE(.name = f->name, .parent = parent,
+ .handler = f->execute, .context = fn));
+
f->open(fn);
register_task(&fn->task);
parent = fn->btrn;
rn = s->receiver_node;
rn->receiver = r;
rn->conf = a->receiver_conf;
- rn->btrn = btr_new_node(r->name, NULL, NULL, rn);
+ rn->btrn = btr_new_node(&(struct btr_node_description)
+ EMBRACE(.name = r->name, .context = rn));
ret = r->open(rn);
if (ret < 0) {
btr_free_node(rn->btrn);