mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-07 13:30:09 -05:00
node: use activation to check for completed graph
The driver node is not scheduled on the server side and so we only know if it finished by checking the activation.
This commit is contained in:
parent
796d0133bf
commit
5aba40752d
2 changed files with 1 additions and 4 deletions
|
|
@ -795,7 +795,6 @@ static inline int process_node(void *data)
|
||||||
a->status = FINISHED;
|
a->status = FINISHED;
|
||||||
a->signal_time = a->finish_time;
|
a->signal_time = a->finish_time;
|
||||||
a->finish_time = SPA_TIMESPEC_TO_NSEC(&ts);
|
a->finish_time = SPA_TIMESPEC_TO_NSEC(&ts);
|
||||||
a->running = false;
|
|
||||||
pw_log_trace_fp("node %p: graph completed wait:%"PRIu64" run:%"PRIu64, this,
|
pw_log_trace_fp("node %p: graph completed wait:%"PRIu64" run:%"PRIu64, this,
|
||||||
a->awake_time - a->signal_time,
|
a->awake_time - a->signal_time,
|
||||||
a->finish_time - a->awake_time);
|
a->finish_time - a->awake_time);
|
||||||
|
|
@ -1128,7 +1127,7 @@ static int node_ready(void *data, int status)
|
||||||
node->driver, node->exported, driver, status);
|
node->driver, node->exported, driver, status);
|
||||||
|
|
||||||
if (node == driver) {
|
if (node == driver) {
|
||||||
if (node->rt.activation->running) {
|
if (node->rt.activation->state[0].pending != 0) {
|
||||||
pw_log_warn("node %p: graph not finished", node);
|
pw_log_warn("node %p: graph not finished", node);
|
||||||
dump_states(node);
|
dump_states(node);
|
||||||
node->rt.target.signal(node->rt.target.data);
|
node->rt.target.signal(node->rt.target.data);
|
||||||
|
|
@ -1137,7 +1136,6 @@ static int node_ready(void *data, int status)
|
||||||
pw_node_activation_state_reset(&t->activation->state[0]);
|
pw_node_activation_state_reset(&t->activation->state[0]);
|
||||||
t->activation->status = NOT_TRIGGERED;
|
t->activation->status = NOT_TRIGGERED;
|
||||||
}
|
}
|
||||||
node->rt.activation->running = true;
|
|
||||||
}
|
}
|
||||||
if (node->driver && !node->master)
|
if (node->driver && !node->master)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -356,7 +356,6 @@ struct pw_node_activation {
|
||||||
#define AWAKE 2
|
#define AWAKE 2
|
||||||
#define FINISHED 3
|
#define FINISHED 3
|
||||||
int status;
|
int status;
|
||||||
int running;
|
|
||||||
|
|
||||||
uint64_t signal_time;
|
uint64_t signal_time;
|
||||||
uint64_t awake_time;
|
uint64_t awake_time;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue