mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
context: when force-quantum, remove lock-quantum
If a node (or metadata) forces a quantum, remove any nodes that requested a lock-quantum so that we can change the quantum to the new forced one. This makes it possible to run jack clients with node.lock-quantum while still allowing them to change the quantum qith node.force-quantum.
This commit is contained in:
parent
0b637c3291
commit
9acae229ab
1 changed files with 5 additions and 2 deletions
|
|
@ -1068,7 +1068,7 @@ int pw_context_recalc_graph(struct pw_context *context, const char *reason)
|
|||
struct pw_impl_node *n, *s, *target, *fallback;
|
||||
uint32_t max_quantum, min_quantum, def_quantum, lim_quantum, rate_quantum;
|
||||
uint32_t *rates, n_rates, def_rate;
|
||||
bool freewheel = false, global_force_rate, force_rate, global_force_quantum;
|
||||
bool freewheel = false, global_force_rate, force_rate, force_quantum, global_force_quantum;
|
||||
|
||||
pw_log_info("%p: busy:%d reason:%s", context, impl->recalc, reason);
|
||||
|
||||
|
|
@ -1083,7 +1083,7 @@ again:
|
|||
get_quantums(context, &def_quantum, &min_quantum, &max_quantum, &lim_quantum, &rate_quantum);
|
||||
rates = get_rates(context, &def_rate, &n_rates, &global_force_rate);
|
||||
|
||||
global_force_quantum = rate_quantum == 0;
|
||||
force_quantum = global_force_quantum = rate_quantum == 0;
|
||||
force_rate = global_force_rate;
|
||||
|
||||
/* start from all drivers and group all nodes that are linked
|
||||
|
|
@ -1183,6 +1183,7 @@ again:
|
|||
def_quantum = min_quantum = max_quantum = s->force_quantum;
|
||||
rate_quantum = 0;
|
||||
quantum_stamp = s->stamp;
|
||||
force_quantum = true;
|
||||
}
|
||||
if (!global_force_rate && s->force_rate > 0 &&
|
||||
s->stamp > rate_stamp) {
|
||||
|
|
@ -1213,6 +1214,8 @@ again:
|
|||
running = !n->passive;
|
||||
}
|
||||
|
||||
if (force_quantum)
|
||||
lock_quantum = false;
|
||||
if (force_rate)
|
||||
lock_rate = false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue