From 5e89e9421cc08f637182f5834cdacaa4c2ab156c Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 24 Apr 2018 17:09:34 +0200 Subject: [PATCH] link: only assume ports registered when registering the link --- src/pipewire/link.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/pipewire/link.c b/src/pipewire/link.c index 643a681e5..71bf135fa 100644 --- a/src/pipewire/link.c +++ b/src/pipewire/link.c @@ -1255,10 +1255,6 @@ struct pw_link *pw_link_new(struct pw_core *core, spa_list_append(&output->links, &this->output_link); spa_list_append(&input->links, &this->input_link); - this->info.output_node_id = output_node->global->id; - this->info.output_port_id = output->global->id; - this->info.input_node_id = input_node->global->id; - this->info.input_port_id = input->global->id; this->info.format = NULL; this->info.props = this->properties ? &this->properties->dict : NULL; @@ -1322,6 +1318,14 @@ int pw_link_register(struct pw_link *link, if (properties == NULL) return -ENOMEM; + input_node = link->input->node; + output_node = link->output->node; + + link->info.output_node_id = output_node->global->id; + link->info.output_port_id = link->output->global->id; + link->info.input_node_id = input_node->global->id; + link->info.input_port_id = link->input->global->id; + pw_properties_setf(properties, "link.output", "%d", link->info.output_port_id); pw_properties_setf(properties, "link.input", "%d", link->info.input_port_id); @@ -1337,11 +1341,8 @@ int pw_link_register(struct pw_link *link, pw_global_add_listener(link->global, &link->global_listener, &global_events, link); - pw_global_register(link->global, owner, parent); link->info.id = link->global->id; - - input_node = link->input->node; - output_node = link->output->node; + pw_global_register(link->global, owner, parent); pw_log_debug("link %p: in %d %d, out %d %d, %d %d %d %d", link, input_node->n_used_input_links,