diff --git a/pipewire/modules/module-autolink.c b/pipewire/modules/module-autolink.c index 2c6d8e742..fd9076fa7 100644 --- a/pipewire/modules/module-autolink.c +++ b/pipewire/modules/module-autolink.c @@ -249,6 +249,7 @@ on_global_added(struct pw_listener *listener, struct pw_core *core, struct pw_gl spa_list_insert(impl->node_list.prev, &ninfo->link); spa_list_init(&ninfo->port_unlinked.link); spa_list_init(&ninfo->link_state_changed.link); + spa_list_init(&ninfo->link_destroy.link); pw_signal_add(&node->port_added, &ninfo->port_added, on_port_added); pw_signal_add(&node->port_removed, &ninfo->port_removed, on_port_removed); diff --git a/pipewire/server/node.c b/pipewire/server/node.c index 2969b4b5d..96ca23949 100644 --- a/pipewire/server/node.c +++ b/pipewire/server/node.c @@ -200,11 +200,13 @@ static int suspend_node(struct pw_node *this) spa_list_for_each(p, &this->input_ports, link) { if ((res = pw_port_set_format(p, 0, NULL)) < 0) pw_log_warn("error unset format input: %d", res); + p->state = PW_PORT_STATE_CONFIGURE; } spa_list_for_each(p, &this->output_ports, link) { if ((res = pw_port_set_format(p, 0, NULL)) < 0) pw_log_warn("error unset format output: %d", res); + p->state = PW_PORT_STATE_CONFIGURE; } return res; }