From d07e1b56418ef43b8fab735eb2d372b478ac489e Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 22 Mar 2023 15:21:55 +0100 Subject: [PATCH] audioconvert: disable upmix by default again But instead ship config override files to enable it again. The idea is that distros can make extra packages that can than be installed to enable the upmixing. Also ship a config file to enable more samplerates. Fixes #3081 --- spa/plugins/audioconvert/audioconvert.c | 8 ++++---- src/daemon/client-rt.conf.d/20-upmix.conf.in | 8 ++++++++ src/daemon/client-rt.conf.d/meson.build | 11 +++++++++++ src/daemon/client.conf.d/20-upmix.conf.in | 8 ++++++++ src/daemon/client.conf.d/meson.build | 11 +++++++++++ src/daemon/meson.build | 11 +++++++++++ src/daemon/pipewire-pulse.conf.d/20-upmix.conf.in | 8 ++++++++ src/daemon/pipewire-pulse.conf.d/meson.build | 11 +++++++++++ src/daemon/pipewire.conf.d/10-rates.conf.in | 4 ++++ src/daemon/pipewire.conf.d/20-upmix.conf.in | 8 ++++++++ src/daemon/pipewire.conf.d/meson.build | 12 ++++++++++++ 11 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 src/daemon/client-rt.conf.d/20-upmix.conf.in create mode 100644 src/daemon/client-rt.conf.d/meson.build create mode 100644 src/daemon/client.conf.d/20-upmix.conf.in create mode 100644 src/daemon/client.conf.d/meson.build create mode 100644 src/daemon/pipewire-pulse.conf.d/20-upmix.conf.in create mode 100644 src/daemon/pipewire-pulse.conf.d/meson.build create mode 100644 src/daemon/pipewire.conf.d/10-rates.conf.in create mode 100644 src/daemon/pipewire.conf.d/20-upmix.conf.in create mode 100644 src/daemon/pipewire.conf.d/meson.build diff --git a/spa/plugins/audioconvert/audioconvert.c b/spa/plugins/audioconvert/audioconvert.c index af8d44047..30f4734f5 100644 --- a/spa/plugins/audioconvert/audioconvert.c +++ b/spa/plugins/audioconvert/audioconvert.c @@ -2870,11 +2870,11 @@ impl_init(const struct spa_handle_factory *factory, props_reset(&this->props); this->mix.options = CHANNELMIX_OPTION_UPMIX | CHANNELMIX_OPTION_MIX_LFE; - this->mix.upmix = CHANNELMIX_UPMIX_PSD; + this->mix.upmix = CHANNELMIX_UPMIX_NONE; this->mix.log = this->log; - this->mix.lfe_cutoff = 150.0f; - this->mix.fc_cutoff = 12000.0f; - this->mix.rear_delay = 12.0f; + this->mix.lfe_cutoff = 0.0f; + this->mix.fc_cutoff = 0.0f; + this->mix.rear_delay = 0.0f; this->mix.widen = 0.0f; for (i = 0; info && i < info->n_items; i++) { diff --git a/src/daemon/client-rt.conf.d/20-upmix.conf.in b/src/daemon/client-rt.conf.d/20-upmix.conf.in new file mode 100644 index 000000000..064eba144 --- /dev/null +++ b/src/daemon/client-rt.conf.d/20-upmix.conf.in @@ -0,0 +1,8 @@ +# Enables upmixing +stream.properties = { + channelmix.upmix = true + channelmix.upmix-method = psd # none, simple + channelmix.lfe-cutoff = 150 + channelmix.fc-cutoff = 12000 + channelmix.rear-delay = 12.0 +} diff --git a/src/daemon/client-rt.conf.d/meson.build b/src/daemon/client-rt.conf.d/meson.build new file mode 100644 index 000000000..ac0dc3066 --- /dev/null +++ b/src/daemon/client-rt.conf.d/meson.build @@ -0,0 +1,11 @@ +conf_files = [ + '20-upmix.conf', +] + +foreach c : conf_files + configure_file(input : '@0@.in'.format(c), + output : c, + configuration : conf_config, + install_dir : pipewire_confdatadir / 'client-rt.conf.d') +endforeach + diff --git a/src/daemon/client.conf.d/20-upmix.conf.in b/src/daemon/client.conf.d/20-upmix.conf.in new file mode 100644 index 000000000..064eba144 --- /dev/null +++ b/src/daemon/client.conf.d/20-upmix.conf.in @@ -0,0 +1,8 @@ +# Enables upmixing +stream.properties = { + channelmix.upmix = true + channelmix.upmix-method = psd # none, simple + channelmix.lfe-cutoff = 150 + channelmix.fc-cutoff = 12000 + channelmix.rear-delay = 12.0 +} diff --git a/src/daemon/client.conf.d/meson.build b/src/daemon/client.conf.d/meson.build new file mode 100644 index 000000000..ad2340455 --- /dev/null +++ b/src/daemon/client.conf.d/meson.build @@ -0,0 +1,11 @@ +conf_files = [ + '20-upmix.conf', +] + +foreach c : conf_files + configure_file(input : '@0@.in'.format(c), + output : c, + configuration : conf_config, + install_dir : pipewire_confdatadir / 'client.conf.d') +endforeach + diff --git a/src/daemon/meson.build b/src/daemon/meson.build index c43402ce4..d2b213115 100644 --- a/src/daemon/meson.build +++ b/src/daemon/meson.build @@ -86,6 +86,17 @@ configure_file(input : 'pipewire.conf.in', output : 'pipewire-uninstalled.conf', configuration : conf_config_uninstalled) +conf_d_files = [ + 'pipewire.conf.d', + 'client.conf.d', + 'client-rt.conf.d', + 'pipewire-pulse.conf.d', +] + +foreach c : conf_d_files + subdir(c) +endforeach + pipewire_exec = executable('pipewire', pipewire_daemon_sources, install: true, diff --git a/src/daemon/pipewire-pulse.conf.d/20-upmix.conf.in b/src/daemon/pipewire-pulse.conf.d/20-upmix.conf.in new file mode 100644 index 000000000..064eba144 --- /dev/null +++ b/src/daemon/pipewire-pulse.conf.d/20-upmix.conf.in @@ -0,0 +1,8 @@ +# Enables upmixing +stream.properties = { + channelmix.upmix = true + channelmix.upmix-method = psd # none, simple + channelmix.lfe-cutoff = 150 + channelmix.fc-cutoff = 12000 + channelmix.rear-delay = 12.0 +} diff --git a/src/daemon/pipewire-pulse.conf.d/meson.build b/src/daemon/pipewire-pulse.conf.d/meson.build new file mode 100644 index 000000000..647409dbd --- /dev/null +++ b/src/daemon/pipewire-pulse.conf.d/meson.build @@ -0,0 +1,11 @@ +conf_files = [ + '20-upmix.conf', +] + +foreach c : conf_files + configure_file(input : '@0@.in'.format(c), + output : c, + configuration : conf_config, + install_dir : pipewire_confdatadir / 'pipewire-pulse.conf.d') +endforeach + diff --git a/src/daemon/pipewire.conf.d/10-rates.conf.in b/src/daemon/pipewire.conf.d/10-rates.conf.in new file mode 100644 index 000000000..5ede733f0 --- /dev/null +++ b/src/daemon/pipewire.conf.d/10-rates.conf.in @@ -0,0 +1,4 @@ +# Adds more common rates +context.properties = { + default.clock.allowed-rates = [ 44100 48000 88200 96000 ] +} diff --git a/src/daemon/pipewire.conf.d/20-upmix.conf.in b/src/daemon/pipewire.conf.d/20-upmix.conf.in new file mode 100644 index 000000000..064eba144 --- /dev/null +++ b/src/daemon/pipewire.conf.d/20-upmix.conf.in @@ -0,0 +1,8 @@ +# Enables upmixing +stream.properties = { + channelmix.upmix = true + channelmix.upmix-method = psd # none, simple + channelmix.lfe-cutoff = 150 + channelmix.fc-cutoff = 12000 + channelmix.rear-delay = 12.0 +} diff --git a/src/daemon/pipewire.conf.d/meson.build b/src/daemon/pipewire.conf.d/meson.build new file mode 100644 index 000000000..d939190df --- /dev/null +++ b/src/daemon/pipewire.conf.d/meson.build @@ -0,0 +1,12 @@ +conf_files = [ + '10-rates.conf', + '20-upmix.conf', +] + +foreach c : conf_files + configure_file(input : '@0@.in'.format(c), + output : c, + configuration : conf_config, + install_dir : pipewire_confdatadir / 'pipewire.conf.d') +endforeach +