mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-05 13:30:02 -05:00
jack: always move the timebase owner to the driver
Whenever a timebase owner is moved to a new driver, try to install it as a timebase owner on the driver. Before this patch, the timebase owner would only be installed on the first driver is was assigned to, which was most likely a dummy driver. See #1589
This commit is contained in:
parent
fda6e7b4af
commit
939c6e7aa4
1 changed files with 1 additions and 5 deletions
|
|
@ -381,7 +381,6 @@ struct client {
|
||||||
unsigned int has_transport:1;
|
unsigned int has_transport:1;
|
||||||
unsigned int allow_mlock:1;
|
unsigned int allow_mlock:1;
|
||||||
unsigned int warn_mlock:1;
|
unsigned int warn_mlock:1;
|
||||||
unsigned int timeowner_pending:1;
|
|
||||||
unsigned int timeowner_conditional:1;
|
unsigned int timeowner_conditional:1;
|
||||||
unsigned int merge_monitor:1;
|
unsigned int merge_monitor:1;
|
||||||
unsigned int short_name:1;
|
unsigned int short_name:1;
|
||||||
|
|
@ -1451,7 +1450,7 @@ static int install_timeowner(struct client *c)
|
||||||
struct pw_node_activation *a;
|
struct pw_node_activation *a;
|
||||||
uint32_t owner;
|
uint32_t owner;
|
||||||
|
|
||||||
if (!c->timeowner_pending)
|
if (!c->timebase_callback)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if ((a = c->driver_activation) == NULL)
|
if ((a = c->driver_activation) == NULL)
|
||||||
|
|
@ -1475,7 +1474,6 @@ static int install_timeowner(struct client *c)
|
||||||
}
|
}
|
||||||
|
|
||||||
pw_log_debug(NAME" %p: timebase installed for id:%u", c, c->node_id);
|
pw_log_debug(NAME" %p: timebase installed for id:%u", c, c->node_id);
|
||||||
c->timeowner_pending = false;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -5294,7 +5292,6 @@ int jack_release_timebase (jack_client_t *client)
|
||||||
c->timebase_callback = NULL;
|
c->timebase_callback = NULL;
|
||||||
c->timebase_arg = NULL;
|
c->timebase_arg = NULL;
|
||||||
c->activation->pending_new_pos = false;
|
c->activation->pending_new_pos = false;
|
||||||
c->timeowner_pending = false;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -5357,7 +5354,6 @@ int jack_set_timebase_callback (jack_client_t *client,
|
||||||
|
|
||||||
c->timebase_callback = timebase_callback;
|
c->timebase_callback = timebase_callback;
|
||||||
c->timebase_arg = arg;
|
c->timebase_arg = arg;
|
||||||
c->timeowner_pending = true;
|
|
||||||
c->timeowner_conditional = conditional;
|
c->timeowner_conditional = conditional;
|
||||||
install_timeowner(c);
|
install_timeowner(c);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue