diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c index 768a1e22d..dba3900a4 100644 --- a/spa/plugins/alsa/alsa-pcm.c +++ b/spa/plugins/alsa/alsa-pcm.c @@ -3549,6 +3549,10 @@ static int do_state_sync(struct spa_loop *loop, bool async, uint32_t seq, spa_list_append(&state->driver->rt.followers, &rt->driver_link); rt->driver = state->driver; spa_log_debug(state->log, "state:%p -> driver:%p", state, state->driver); + + if(state->linked && state->matching) { + try_unlink(state); + } } if (state->following) { remove_sources(state);