From 94336cb2c9693454537cda3df5be8f7fd4d25d09 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 19 Sep 2022 12:51:14 +0200 Subject: [PATCH] module: use resample.prefill for coupled streams So that we always process one complete input buffer as an output buffer without keeping leftovers in the resampler. --- src/modules/module-filter-chain.c | 3 +++ src/modules/module-loopback.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/modules/module-filter-chain.c b/src/modules/module-filter-chain.c index a11077d9e..238627559 100644 --- a/src/modules/module-filter-chain.c +++ b/src/modules/module-filter-chain.c @@ -2200,6 +2200,8 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args) pw_properties_setf(props, PW_KEY_NODE_LINK_GROUP, "filter-chain-%u-%u", pid, id); if (pw_properties_get(props, PW_KEY_NODE_VIRTUAL) == NULL) pw_properties_set(props, PW_KEY_NODE_VIRTUAL, "true"); + if (pw_properties_get(props, "resample.prefill") == NULL) + pw_properties_set(props, "resample.prefill", "true"); if (pw_properties_get(props, PW_KEY_NODE_DESCRIPTION) == NULL) pw_properties_setf(props, PW_KEY_NODE_DESCRIPTION, "filter-chain-%u-%u", pid, id); @@ -2217,6 +2219,7 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args) copy_props(impl, props, PW_KEY_NODE_LATENCY); copy_props(impl, props, PW_KEY_NODE_VIRTUAL); copy_props(impl, props, PW_KEY_MEDIA_NAME); + copy_props(impl, props, "resample.prefill"); parse_audio_info(impl->capture_props, &impl->capture_info); parse_audio_info(impl->playback_props, &impl->playback_info); diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c index a3f170957..86d9d8139 100644 --- a/src/modules/module-loopback.c +++ b/src/modules/module-loopback.c @@ -523,6 +523,8 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args) pw_properties_setf(props, PW_KEY_NODE_LINK_GROUP, "loopback-%u-%u", pid, id); if (pw_properties_get(props, PW_KEY_NODE_VIRTUAL) == NULL) pw_properties_set(props, PW_KEY_NODE_VIRTUAL, "true"); + if (pw_properties_get(props, "resample.prefill") == NULL) + pw_properties_set(props, "resample.prefill", "true"); if ((str = pw_properties_get(props, "capture.props")) != NULL) pw_properties_update_string(impl->capture_props, str, strlen(str)); @@ -538,6 +540,7 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args) copy_props(impl, props, PW_KEY_NODE_LATENCY); copy_props(impl, props, PW_KEY_NODE_VIRTUAL); copy_props(impl, props, PW_KEY_MEDIA_NAME); + copy_props(impl, props, "resample.prefill"); if ((str = pw_properties_get(props, PW_KEY_NODE_NAME)) == NULL) { pw_properties_setf(props, PW_KEY_NODE_NAME,