mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
impl-node: only update the trigger node state once
Don't increment the required activation count every time we change the node prorties with a TRIGGER property. Only increment/decrement when the value actually changed.
This commit is contained in:
parent
08642adddc
commit
8fca3808d8
2 changed files with 11 additions and 3 deletions
|
|
@ -895,7 +895,7 @@ static void check_properties(struct pw_impl_node *node)
|
||||||
const char *str, *recalc_reason = NULL;
|
const char *str, *recalc_reason = NULL;
|
||||||
struct spa_fraction frac;
|
struct spa_fraction frac;
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
bool driver;
|
bool driver, trigger;
|
||||||
|
|
||||||
if ((str = pw_properties_get(node->properties, PW_KEY_PRIORITY_DRIVER))) {
|
if ((str = pw_properties_get(node->properties, PW_KEY_PRIORITY_DRIVER))) {
|
||||||
node->priority_driver = pw_properties_parse_int(str);
|
node->priority_driver = pw_properties_parse_int(str);
|
||||||
|
|
@ -928,8 +928,14 @@ static void check_properties(struct pw_impl_node *node)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* not scheduled automatically so we add an additional required trigger */
|
/* not scheduled automatically so we add an additional required trigger */
|
||||||
if (pw_properties_get_bool(node->properties, PW_KEY_NODE_TRIGGER, false))
|
trigger = pw_properties_get_bool(node->properties, PW_KEY_NODE_TRIGGER, false);
|
||||||
node->rt.activation->state[0].required++;
|
if (trigger != node->trigger) {
|
||||||
|
node->trigger = trigger;
|
||||||
|
if (trigger)
|
||||||
|
node->rt.activation->state[0].required++;
|
||||||
|
else
|
||||||
|
node->rt.activation->state[0].required--;
|
||||||
|
}
|
||||||
|
|
||||||
/* group defines what nodes are scheduled together */
|
/* group defines what nodes are scheduled together */
|
||||||
str = pw_properties_get(node->properties, PW_KEY_NODE_GROUP);
|
str = pw_properties_get(node->properties, PW_KEY_NODE_GROUP);
|
||||||
|
|
|
||||||
|
|
@ -703,6 +703,8 @@ struct pw_impl_node {
|
||||||
unsigned int suspend_on_idle:1;
|
unsigned int suspend_on_idle:1;
|
||||||
unsigned int reconfigure:1;
|
unsigned int reconfigure:1;
|
||||||
unsigned int forced_rate:1;
|
unsigned int forced_rate:1;
|
||||||
|
unsigned int trigger:1; /**< has the TRIGGER property and needs an extra
|
||||||
|
* trigger to start processing. */
|
||||||
|
|
||||||
uint32_t port_user_data_size; /**< extra size for port user data */
|
uint32_t port_user_data_size; /**< extra size for port user data */
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue