diff --git a/src/modules/module-scheduler-v1.c b/src/modules/module-scheduler-v1.c index 9eb8f3467..0203cdada 100644 --- a/src/modules/module-scheduler-v1.c +++ b/src/modules/module-scheduler-v1.c @@ -599,9 +599,7 @@ again: /* first look at all nodes and decide which one should be runnable */ spa_list_for_each(n, &context->node_list, link) { - /* we don't check suspendable nodes, they need to be made - * runnable from other nodes */ - if (n->exported || !n->active || n->can_suspend) + if (n->exported || !n->active) continue; check_runnable(context, n); } diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index c7591afd2..b9913d508 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -1261,14 +1261,13 @@ static void check_properties(struct pw_impl_node *node) SPA_FLAG_UPDATE(node->rt.target.activation->flags, PW_NODE_ACTIVATION_FLAG_ASYNC, async); } - if ((str = pw_properties_get(node->properties, PW_KEY_MEDIA_CLASS)) != NULL && - (strstr(str, "/Sink") != NULL || strstr(str, "/Source") != NULL)) { - node->can_suspend = true; - } else { - node->can_suspend = false; + if ((str = pw_properties_get(node->properties, PW_KEY_NODE_PASSIVE)) == NULL) { + if ((str = pw_properties_get(node->properties, PW_KEY_MEDIA_CLASS)) != NULL && + (strstr(str, "/Sink") != NULL || strstr(str, "/Source") != NULL)) + str = "follow"; + else + str = "false"; } - if ((str = pw_properties_get(node->properties, PW_KEY_NODE_PASSIVE)) == NULL) - str = "false"; if (spa_streq(str, "out")) { node->passive_away[SPA_DIRECTION_OUTPUT] = true; diff --git a/src/pipewire/private.h b/src/pipewire/private.h index 58801bc27..51b71edd3 100644 --- a/src/pipewire/private.h +++ b/src/pipewire/private.h @@ -778,7 +778,6 @@ struct pw_impl_node { unsigned int forced_quantum:1; unsigned int trigger:1; /**< has the TRIGGER property and needs an extra * trigger to start processing. */ - unsigned int can_suspend:1; unsigned int checked; /**< for sorting */ unsigned int sync:1; /**< the sync-groups are active */ unsigned int async:1; /**< async processing, one cycle latency */