From 707d02ddacfb02aca184ce87b018ce58fde38380 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Mon, 12 Jan 2026 14:14:46 -0400 Subject: [PATCH] MT#55283 move stream_fd into shm Change-Id: I047777f3bb7db579362a535ffd90aef3b180241d --- daemon/kernel.c | 7 +++++++ daemon/media_socket.c | 4 +++- include/kernel.h | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/daemon/kernel.c b/daemon/kernel.c index 5cb251a48..4816c1e04 100644 --- a/daemon/kernel.c +++ b/daemon/kernel.c @@ -194,6 +194,13 @@ bool kernel_setup_table(unsigned int id) { return true; } +void *kernel_shm_alloc(size_t s) { + return bufferpool_alloc(shm_bufferpool, s); +} +void *kernel_shm_alloc0(size_t s) { + return bufferpool_alloc0(shm_bufferpool, s); +} + void kernel_shutdown_table(void) { if (!kernel.is_open) return; diff --git a/daemon/media_socket.c b/daemon/media_socket.c index ab02eaf93..0d9ed4af4 100644 --- a/daemon/media_socket.c +++ b/daemon/media_socket.c @@ -3939,13 +3939,15 @@ static void stream_fd_free(stream_fd *f) { mutex_destroy(&f->lock); obj_put(f->call); + + bufferpool_unref(f); } stream_fd *stream_fd_new(struct socket_port_link *spl, call_t *call, struct local_intf *lif) { stream_fd *sfd; struct poller_item pi; - sfd = obj_alloc0(stream_fd, stream_fd_free); + sfd = obj_alloc_full(stream_fd, NULL, kernel_shm_alloc0, stream_fd_free); mutex_init(&sfd->lock); sfd->unique_id = t_queue_get_length(&call->stream_fds); sfd->call = obj_get(call); diff --git a/include/kernel.h b/include/kernel.h index a9b4d69c5..1522ec45e 100644 --- a/include/kernel.h +++ b/include/kernel.h @@ -32,6 +32,9 @@ bool kernel_setup_table(unsigned int); bool kernel_init_table(void); void kernel_shutdown_table(void); +void *kernel_shm_alloc(size_t s); +void *kernel_shm_alloc0(size_t s); + bool kernel_add_stream(struct rtpengine_command_add_target *); void kernel_add_destination(struct rtpengine_command_destination *);