- Jun 30, 2024
-
-
When spa-plugins is enabled, the gio-2.0 global dependency is overwritten. When bluez support is enabled, OR when gsettings is enabled, the gio-2.0 dependency is then detected as found. This means that pipewire-module-protocol-pulse can end up enabling gsettings support even if it has been forcibly turned off. Rename the meson variables to ensure they are looked up separately.
-
- Jun 27, 2024
-
-
-
Wim Taymans authored
-
- Jun 18, 2024
-
-
Wim Taymans authored
-
Wim Taymans authored
Better make the conversions explicit so that we don't get any surprises. Fixes #4065
-
- Jun 11, 2024
-
-
Most dependencies use meson "feature" options for optional functionality. This allows people to disable them, if they don't want them, through the power of tristate decision-making. This particular dependency does something a bit more complicated than can be described by simply passing feature options to the required kwarg. It: - tries to look for two different names of the dependency - selects different version ranges, depending on the dependency name - has a hole in the middle of the versions Unfortunately, `required: false` for the first dependency isn't equivalent to a tristate decision-making process. We have to manually code the logic ourselves. The problem is that when we look up the first name, we cannot pass the feature option in because if the option is force enabled, then the dependency lookup fails and configuration never tries to find the older version instead. But also, we can't just say it *isn't* required, because if the option is force *disabled* but it is installed on the system, we still find it and build against it. One solution would be using meson 0.60's support for multiple dependency names: ``` dependency('webrtc-audio-processing-1', 'webrtc-audio-processing', version : ['>= 0.2'], required: get_option('echo-cancel-webrtc'), ) ``` Unfortunately, this too doesn't work since we could end up detecting 1.1 (the hole in the middle) which is invalid. Instead, we do a bit of checking for tristate values before deciding to invoke `dependency()`. This lets us guarantee that disabled dependencies are well and truly disabled. Bug: https://bugs.gentoo.org/933218 Fixes: #3678
-
- May 24, 2024
-
-
Wim Taymans authored
-
- May 16, 2024
-
-
Wim Taymans authored
-
- Apr 23, 2024
-
-
Barnabás Pőcze authored
-
Fix workaround for old doxygen versions, and put a version requirement for Doxygen.
-
- Mar 05, 2024
-
-
Robert Mader authored
Gstreamer 1.24 added and largely switched to a new, modifier aware DMABuf API. Unfortunately that breaks the existing DMABuf support in the PW Gst element. Add support for the new API.
-
- Feb 15, 2024
-
-
Wim Taymans authored
Make a rtprio-server and rtprio-client option. Leave the server priority by default to 88 but lower client priority to 83. JACK does something similar by setting clients to rtprio-server - 5. Make module-rt use the client priority by default and bump the server priority explicitly in the config file. Leave the pulse-server to the default rtprio-client, there is no reason to lower this any further because it is really just a regular client. Bump the ffado packetizer thread to rtprio-server + 5 because that is also what JACK does. 88 is still much higher than the value of 60 that JACK uses in Fedora but now this is at least configurable.
-
- Jan 12, 2024
-
-
-
SNAP containers have two main "audio" security rules: * audio-playback: the applications inside the container can send audio samples into a sink * audio-record: the applications inside the container can get audio samples from a source Also, old SNAP containers had the "pulseaudio" rule, which just exposed the pulseaudio socket directly, without limits. This is similar to the current Flatpak audio permissions. In the pulseaudio days, a specific pulseaudio module was used that checked the permissions given to the application and allowed or forbade access to the pulseaudio operations. With the change to pipewire, this functionality must be implemented in pipewire-pulse to guarantee the sandbox security. This patch adds support for sandboxing permissions in the pulseaudio module, and implements support for the SNAP audio security model, thus forbiding a SNAP application to record audio unless it has permissions to do so. The current code for pipewire-pulseaudio checks the permissions of the snap and adds three properties to each new client: * pipewire.snap.id: contains the Snap ID of the client. * pipewire.snap.audio.playback: its value is 'true' if the client has permission to play audio, or 'false' if not. * pipewire.snap.audio.record: its value is 'true' if the client has permission to record audio, or 'false' if not. These properties must be processed by wireplumber to add or remove access permissions to the corresponding nodes. That code is available in a separate patch: https://gitlab.freedesktop.org/pipewire/wireplumber/-/merge_requests/567
-
- Dec 16, 2023
-
-
- Dec 04, 2023
-
-
Wim Taymans authored
master will now be 1.1.x and result in 1.1.9x prereleases that lead up to the next stable 1.2.0 version.
-
- Nov 26, 2023
-
-
Wim Taymans authored
-
- Nov 24, 2023
-
-
P V authored
-
- Nov 22, 2023
-
-
P V authored
Use (fixed-up) Doxygen manpage output for all program & module manpages. This also allows formatting the manual pages properly in the HTML docs. The Markdown pages work properly only with Doxygen >= 1.9.7, older versions put them to wrong place in the HTML docs.
-
- Nov 21, 2023
-
-
Skip only pandoc-requiring parts if it is not available.
-
- Nov 20, 2023
-
-
Add (minimal) reference documentation for each pipewire-pulse module. Add some preprocessing to substitute @pulse_module_options@ in docs from PW_KEY_MODULE_USAGE so the module options don't need to be repeated. Produce Doxygen docs + generate manpages pipewire-pulse-modules.7, pipewire-pulse-module-*.7
-
- Nov 19, 2023
-
-
Use pandoc + some processing to convert Doxygen html output to man pages. Requires pandoc & python for building. Generates manpages: libpipewire-modules.7, libpipewire-module-*.7
-
- Nov 16, 2023
-
-
Wim Taymans authored
-
- Nov 09, 2023
-
-
Backport from Pulseaudio. Reimplement get_data_path. We'll look for the override files similarly as we do for other config files (XDG_CONFIG_HOME then /etc then install location), instead of looking at the Pulseaudio locations ~/.local/share/pulseaudio etc. Upstream commits: From: SimonP <simonp.git@gmail.com> alsa-mixer: Respect XDG base directory spec when loading profile sets Try $XDG_DATA_HOME, then $XDG_DATA_DIRS, and finally fall back to old behaviour. From: SimonP <simonp.git@gmail.com> alsa-mixer: Respect XDG base directory spec when loading path configs Try $XDG_DATA_HOME, then $XDG_DATA_DIRS, and finally fall back to old behaviour (prefix-defined directory). core-util: Ignore non-absolute XDG base dirs These are invalid per the spec.
-
- Nov 02, 2023
-
-
Wim Taymans authored
-
- Oct 19, 2023
-
-
Wim Taymans authored
-
Wim Taymans authored
It got accidentally removed
-
Wim Taymans authored
See #2284
-
- Oct 13, 2023
-
-
Wim Taymans authored
-
- Oct 11, 2023
-
-
P V authored
Add module argument 'sockets' for creating multiple sockets clients can connect to. Also allow setting socket file permissions.
-
- Oct 06, 2023
-
-
Wim Taymans authored
Add malloc-info and malloc-trim message handlers.
-
Wim Taymans authored
-
- Oct 04, 2023
-
-
Wim Taymans authored
To prepare for a major version update to 1 later.
-
Wim Taymans authored
-
- Sep 14, 2023
-
-
Wim Taymans authored
Version 1 does not seem to be packaged in many distros and so they would need to revert the patch or disable AEC. Enabling both allows for things to move forwards gracefully.
-
Wim Taymans authored
-
- Sep 06, 2023
-
-
Upstream updated drops beamforming, adds a new gain controller and includes a bunch of updates to the AEC engine (internally AEC3).
-
- Aug 31, 2023
-
-
The ${LIB} token is a glibc extension, so it is incorrect to use it on all Linux. Doing so will break e.g. with musl libc.
-
- Aug 29, 2023
-
-
Wim Taymans authored
-
- Aug 22, 2023
-
-
Wim Taymans authored
-