From 3fb9524cf14e800ccae4642298550f168e8c7464 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 18 Sep 2025 14:22:00 +0200 Subject: [PATCH] pulse-server: clear timer when stream is created Make a function when the stream is created so that we can clear the create_tag and the timer. --- src/modules/module-protocol-pulse/pulse-server.c | 4 ++-- src/modules/module-protocol-pulse/stream.c | 9 +++++++++ src/modules/module-protocol-pulse/stream.h | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c index 8df063c7e..e85be431b 100644 --- a/src/modules/module-protocol-pulse/pulse-server.c +++ b/src/modules/module-protocol-pulse/pulse-server.c @@ -621,7 +621,7 @@ static int reply_create_playback_stream(struct stream *stream, struct pw_manager TAG_INVALID); } - stream->create_tag = SPA_ID_INVALID; + stream_created(stream); return client_queue_message(client, reply); } @@ -783,7 +783,7 @@ static int reply_create_record_stream(struct stream *stream, struct pw_manager_o TAG_INVALID); } - stream->create_tag = SPA_ID_INVALID; + stream_created(stream); return client_queue_message(client, reply); } diff --git a/src/modules/module-protocol-pulse/stream.c b/src/modules/module-protocol-pulse/stream.c index 1271311c9..9194d740a 100644 --- a/src/modules/module-protocol-pulse/stream.c +++ b/src/modules/module-protocol-pulse/stream.c @@ -119,6 +119,15 @@ error_errno: return NULL; } +void stream_created(struct stream *stream) +{ + struct client *client = stream->client; + pw_log_debug("client %p: stream %p channel:%d", client, stream, stream->channel); + + stream->create_tag = SPA_ID_INVALID; + pw_timer_queue_cancel(&stream->timer); +} + void stream_free(struct stream *stream) { struct client *client = stream->client; diff --git a/src/modules/module-protocol-pulse/stream.h b/src/modules/module-protocol-pulse/stream.h index 4a6b8f687..dc3e172e5 100644 --- a/src/modules/module-protocol-pulse/stream.h +++ b/src/modules/module-protocol-pulse/stream.h @@ -104,6 +104,7 @@ struct stream { struct stream *stream_new(struct client *client, enum stream_type type, uint32_t create_tag, const struct sample_spec *ss, const struct channel_map *map, const struct buffer_attr *attr); +void stream_created(struct stream *stream); void stream_free(struct stream *stream); void stream_flush(struct stream *stream); uint32_t stream_pop_missing(struct stream *stream);