summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/examples/media-session/media-session.c4
-rw-r--r--src/examples/media-session/policy-node.c5
2 files changed, 5 insertions, 4 deletions
diff --git a/src/examples/media-session/media-session.c b/src/examples/media-session/media-session.c
index 71d70d75..fded24ee 100644
--- a/src/examples/media-session/media-session.c
+++ b/src/examples/media-session/media-session.c
@@ -1549,6 +1549,7 @@ static int link_nodes(struct impl *impl, struct endpoint_link *link,
{
struct pw_properties *props;
struct sm_port *outport, *inport;
+ int count = 0;
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_port = inport->obj.id;
pw_proxy_add_listener(p, &l->listener, &proxy_link_events, l);
+ count++;
if (link) {
l->endpoint_link = link;
@@ -1606,7 +1608,7 @@ static int link_nodes(struct impl *impl, struct endpoint_link *link,
}
pw_properties_free(props);
- return 0;
+ return count;
}
diff --git a/src/examples/media-session/policy-node.c b/src/examples/media-session/policy-node.c
index 9d6e2568..dcf96970 100644
--- a/src/examples/media-session/policy-node.c
+++ b/src/examples/media-session/policy-node.c
@@ -466,8 +466,6 @@ static int link_nodes(struct node *node, struct node *peer)
#endif
}
- node->peer = peer;
-
if (node->direction == PW_DIRECTION_INPUT) {
output = peer;
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_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);