From ac51fbfd1eb9aa6a08d14025b52d967ff4b87ba5 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 13 Oct 2023 13:07:48 +0200 Subject: [PATCH] buffer: remove some hardcoded buffer size limits Use the quantum_limit as the max buffer size instead of the hardcoded 8192 value. --- src/pipewire/buffers.c | 2 +- src/pipewire/filter.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/pipewire/buffers.c b/src/pipewire/buffers.c index 75896b691..0fcedfa50 100644 --- a/src/pipewire/buffers.c +++ b/src/pipewire/buffers.c @@ -300,7 +300,7 @@ int pw_buffers_negotiate(struct pw_context *context, uint32_t flags, blocks, minsize, stride, max_buffers, align, types); } else { pw_log_warn("%p: no buffers param", result); - minsize = 8192; + minsize = context->settings.clock_quantum_limit; max_buffers = 2; } diff --git a/src/pipewire/filter.c b/src/pipewire/filter.c index 3d06c7d35..0561b9c86 100644 --- a/src/pipewire/filter.c +++ b/src/pipewire/filter.c @@ -26,7 +26,6 @@ PW_LOG_TOPIC_EXTERN(log_filter); #define PW_LOG_TOPIC_DEFAULT log_filter -#define MAX_SAMPLES 8192 #define MAX_BUFFERS 64 #define MASK_BUFFERS (MAX_BUFFERS-1) @@ -110,6 +109,8 @@ struct filter { struct pw_loop *main_loop; struct pw_loop *data_loop; + uint32_t quantum_limit; + enum pw_filter_flags flags; struct spa_node impl_node; @@ -1236,6 +1237,7 @@ filter_new(struct pw_context *context, const char *name, } impl->main_loop = pw_context_get_main_loop(context); + impl->quantum_limit = context->settings.clock_quantum_limit; this = &impl->this; pw_log_debug("%p: new", impl); @@ -1779,9 +1781,9 @@ static void add_audio_dsp_port_params(struct filter *impl, struct port *port) SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(1, 1, MAX_BUFFERS), SPA_PARAM_BUFFERS_blocks, SPA_POD_Int(1), SPA_PARAM_BUFFERS_size, SPA_POD_CHOICE_STEP_Int( - MAX_SAMPLES * sizeof(float), + impl->quantum_limit * sizeof(float), sizeof(float), - MAX_SAMPLES * sizeof(float), + impl->quantum_limit * sizeof(float), sizeof(float)), SPA_PARAM_BUFFERS_stride, SPA_POD_Int(4))); }