mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-03-31 07:11:14 -04:00
scheduler: make always_process nodes runnable
Don't just set the flag but call make_runnable for always_process node so that the peers also get activated.
This commit is contained in:
parent
9e82e49446
commit
973f48dde7
1 changed files with 5 additions and 2 deletions
|
|
@ -126,7 +126,7 @@ static void make_runnable(struct pw_context *context, struct pw_impl_node *node)
|
||||||
char *sync[MAX_SYNC+1] = { NULL };
|
char *sync[MAX_SYNC+1] = { NULL };
|
||||||
|
|
||||||
if (!node->runnable) {
|
if (!node->runnable) {
|
||||||
pw_log_warn("%s is runnable", node->name);
|
pw_log_debug("%s is runnable", node->name);
|
||||||
node->runnable = true;
|
node->runnable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -198,6 +198,9 @@ static void check_runnable(struct pw_context *context, struct pw_impl_node *node
|
||||||
struct pw_impl_link *l;
|
struct pw_impl_link *l;
|
||||||
struct pw_impl_node *n;
|
struct pw_impl_node *n;
|
||||||
|
|
||||||
|
if (node->always_process && !node->runnable)
|
||||||
|
make_runnable(context, node);
|
||||||
|
|
||||||
spa_list_for_each(p, &node->output_ports, link) {
|
spa_list_for_each(p, &node->output_ports, link) {
|
||||||
spa_list_for_each(l, &p->links, output_link) {
|
spa_list_for_each(l, &p->links, output_link) {
|
||||||
n = l->input->node;
|
n = l->input->node;
|
||||||
|
|
@ -567,7 +570,7 @@ again:
|
||||||
spa_list_for_each(n, &context->node_list, link) {
|
spa_list_for_each(n, &context->node_list, link) {
|
||||||
n->visited = false;
|
n->visited = false;
|
||||||
n->checked = 0;
|
n->checked = 0;
|
||||||
n->runnable = n->always_process && n->active;
|
n->runnable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
get_quantums(context, &def_quantum, &min_quantum, &max_quantum, &rate_quantum,
|
get_quantums(context, &def_quantum, &min_quantum, &max_quantum, &rate_quantum,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue