impl-node: improve graph xrun detection

Simply check for the state of the activation.
This commit is contained in:
Wim Taymans 2023-05-19 13:28:17 +02:00
parent 606bbefaa4
commit f085a1fa49

View file

@ -1738,16 +1738,14 @@ static int node_ready(void *data, int status)
uint32_t owner[2], reposition_owner; uint32_t owner[2], reposition_owner;
uint64_t min_timeout = UINT64_MAX; uint64_t min_timeout = UINT64_MAX;
if (SPA_UNLIKELY(state->pending > 0)) { if (SPA_UNLIKELY(a->status != PW_NODE_ACTIVATION_FINISHED)) {
pw_context_driver_emit_incomplete(node->context, node); pw_context_driver_emit_incomplete(node->context, node);
if (ratelimit_test(&node->rt.rate_limit, a->signal_time, SPA_LOG_LEVEL_DEBUG)) { pw_log_debug("(%s-%u) graph not finished: state:%p quantum:%"PRIu64
pw_log_debug("(%s-%u) graph not finished: state:%p quantum:%"PRIu64 " pending %d/%d", node->name, node->info.id,
" pending %d/%d", node->name, node->info.id, state, a->position.clock.duration,
state, a->position.clock.duration, state->pending, state->required);
state->pending, state->required); if (ratelimit_test(&node->rt.rate_limit, a->signal_time, SPA_LOG_LEVEL_DEBUG))
dump_states(node); dump_states(node);
}
node_trigger(node);
} else { } else {
uint64_t signal_time = a->signal_time; uint64_t signal_time = a->signal_time;
/* old nodes set the TRIGGERED status on node_ready, patch this /* old nodes set the TRIGGERED status on node_ready, patch this