module-loopback: use trigger to start processing

Move process to playback_process and use trigger from the capture
side to start processing. This ensures the requested size is updated.
This commit is contained in:
Wim Taymans 2022-09-19 12:34:00 +02:00
parent 8a39b22e25
commit d48627d0e7

View file

@ -177,6 +177,12 @@ static void capture_destroy(void *d)
}
static void capture_process(void *d)
{
struct impl *impl = d;
pw_stream_trigger_process(impl->playback);
}
static void playback_process(void *d)
{
struct impl *impl = d;
struct pw_buffer *in, *out;
@ -225,8 +231,6 @@ static void capture_process(void *d)
pw_stream_queue_buffer(impl->capture, in);
if (out != NULL)
pw_stream_queue_buffer(impl->playback, out);
pw_stream_trigger_process(impl->playback);
}
static void param_latency_changed(struct impl *impl, const struct spa_pod *param,
@ -305,6 +309,7 @@ static void playback_param_changed(void *data, uint32_t id, const struct spa_pod
static const struct pw_stream_events out_stream_events = {
PW_VERSION_STREAM_EVENTS,
.destroy = playback_destroy,
.process = playback_process,
.state_changed = stream_state_changed,
.param_changed = playback_param_changed,
};