mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
impl-node: async driver nodes need to activate targets
When a driver is async it still needs to activate the targets or else no targets will ever be triggered. Fixes #4046
This commit is contained in:
parent
0d9a959ab6
commit
c85e7cadf1
1 changed files with 2 additions and 2 deletions
|
|
@ -74,7 +74,7 @@ static inline void activate_target(struct pw_impl_node *node, struct pw_node_tar
|
||||||
{
|
{
|
||||||
struct pw_node_activation_state *state = &t->activation->state[0];
|
struct pw_node_activation_state *state = &t->activation->state[0];
|
||||||
if (!t->active) {
|
if (!t->active) {
|
||||||
if (!node->async) {
|
if (!node->async || node->driving) {
|
||||||
SPA_ATOMIC_INC(state->required);
|
SPA_ATOMIC_INC(state->required);
|
||||||
SPA_ATOMIC_INC(state->pending);
|
SPA_ATOMIC_INC(state->pending);
|
||||||
}
|
}
|
||||||
|
|
@ -88,7 +88,7 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t
|
||||||
{
|
{
|
||||||
if (t->active) {
|
if (t->active) {
|
||||||
struct pw_node_activation_state *state = &t->activation->state[0];
|
struct pw_node_activation_state *state = &t->activation->state[0];
|
||||||
if (!node->async) {
|
if (!node->async || node->driving) {
|
||||||
/* the driver copies the required to the pending state
|
/* the driver copies the required to the pending state
|
||||||
* so first try to resume the node and then decrement the
|
* so first try to resume the node and then decrement the
|
||||||
* required state. This way we either resume with the old value
|
* required state. This way we either resume with the old value
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue