stream: decrement busy counter when releasing dequeued buffers

For buffers on the 'dequeued' list, the busy counter was already
incremented in impl_node_process_input(). So it must be decremented again
when these buffers are removed.
This commit is contained in:
Michael Olbrich 2021-09-08 11:31:06 +02:00 committed by Wim Taymans
parent 314ff82ff0
commit d2ce51d504

View file

@ -709,7 +709,15 @@ static void clear_buffers(struct pw_stream *stream)
}
}
impl->n_buffers = 0;
clear_queue(impl, &impl->dequeued);
if (impl->direction == SPA_DIRECTION_INPUT) {
struct buffer *b;
while ((b = pop_queue(impl, &impl->dequeued))) {
if (b->busy)
ATOMIC_DEC(b->busy->count);
}
} else
clear_queue(impl, &impl->dequeued);
clear_queue(impl, &impl->queued);
}