From a9640a826d01b18757563b82dd2cede8633a4fe2 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 3 Sep 2019 13:45:13 +0200 Subject: [PATCH] jack: call thread_init --- src/pipewire-jack.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/pipewire-jack.c b/src/pipewire-jack.c index f56f55a1a..780a5d8ce 100644 --- a/src/pipewire-jack.c +++ b/src/pipewire-jack.c @@ -291,6 +291,7 @@ struct client { unsigned int started:1; unsigned int active:1; unsigned int destroyed:1; + unsigned int first:1; jack_position_t jack_position; jack_transport_state_t jack_state; @@ -834,6 +835,12 @@ static inline uint32_t cycle_wait(struct client *c) if (wait_sync(c) < 0) return 0; + if (c->first) { + if (c->thread_init_callback) + c->thread_init_callback(c->thread_init_arg); + c->first = false; + } + buffer_size = pos->clock.duration; if (buffer_size != c->buffer_size) { pw_log_info(NAME" %p: buffersize %d", c, buffer_size); @@ -944,6 +951,10 @@ on_rtsocket_condition(void *data, int fd, uint32_t mask) unhandle_socket(c); return; } + if (c->thread_callback) { + c->thread_callback(c->thread_arg); + return; + } if (mask & SPA_IO_IN) { uint32_t buffer_size; @@ -1102,6 +1113,7 @@ static int client_node_command(void *object, const struct spa_command *command) c->socket_source, SPA_IO_IN | SPA_IO_ERR | SPA_IO_HUP); c->started = true; + c->first = true; } break; default: