policy-node: only set peer when we actually linked something

This commit is contained in:
Wim Taymans 2020-08-07 10:50:30 +02:00
parent cb3f1b51aa
commit a0777d7806
2 changed files with 5 additions and 4 deletions

View file

@ -1549,6 +1549,7 @@ static int link_nodes(struct impl *impl, struct endpoint_link *link,
{ {
struct pw_properties *props; struct pw_properties *props;
struct sm_port *outport, *inport; struct sm_port *outport, *inport;
int count = 0;
pw_log_debug(NAME" %p: linking %d -> %d", impl, outnode->obj.id, innode->obj.id); pw_log_debug(NAME" %p: linking %d -> %d", impl, outnode->obj.id, innode->obj.id);
@ -1596,6 +1597,7 @@ static int link_nodes(struct impl *impl, struct endpoint_link *link,
l->input_node = innode->obj.id; l->input_node = innode->obj.id;
l->input_port = inport->obj.id; l->input_port = inport->obj.id;
pw_proxy_add_listener(p, &l->listener, &proxy_link_events, l); pw_proxy_add_listener(p, &l->listener, &proxy_link_events, l);
count++;
if (link) { if (link) {
l->endpoint_link = link; l->endpoint_link = link;
@ -1606,7 +1608,7 @@ static int link_nodes(struct impl *impl, struct endpoint_link *link,
} }
pw_properties_free(props); pw_properties_free(props);
return 0; return count;
} }

View file

@ -466,8 +466,6 @@ static int link_nodes(struct node *node, struct node *peer)
#endif #endif
} }
node->peer = peer;
if (node->direction == PW_DIRECTION_INPUT) { if (node->direction == PW_DIRECTION_INPUT) {
output = peer; output = peer;
input = node; input = node;
@ -480,7 +478,8 @@ static int link_nodes(struct node *node, struct node *peer)
pw_properties_setf(props, PW_KEY_LINK_INPUT_NODE, "%d", input->id); pw_properties_setf(props, PW_KEY_LINK_INPUT_NODE, "%d", input->id);
pw_log_info("linking node %d to node %d", output->id, input->id); pw_log_info("linking node %d to node %d", output->id, input->id);
sm_media_session_create_links(impl->session, &props->dict); if (sm_media_session_create_links(impl->session, &props->dict) > 0)
node->peer = peer;
pw_properties_free(props); pw_properties_free(props);