head 1.4; access; symbols pkgsrc-2026Q1:1.4.0.18 pkgsrc-2026Q1-base:1.4 pkgsrc-2025Q4:1.4.0.16 pkgsrc-2025Q4-base:1.4 pkgsrc-2025Q3:1.4.0.14 pkgsrc-2025Q3-base:1.4 pkgsrc-2025Q2:1.4.0.12 pkgsrc-2025Q2-base:1.4 pkgsrc-2025Q1:1.4.0.10 pkgsrc-2025Q1-base:1.4 pkgsrc-2024Q4:1.4.0.8 pkgsrc-2024Q4-base:1.4 pkgsrc-2024Q3:1.4.0.6 pkgsrc-2024Q3-base:1.4 pkgsrc-2024Q2:1.4.0.4 pkgsrc-2024Q2-base:1.4 pkgsrc-2024Q1:1.4.0.2 pkgsrc-2024Q1-base:1.4 pkgsrc-2023Q4:1.3.0.12 pkgsrc-2023Q4-base:1.3 pkgsrc-2023Q3:1.3.0.10 pkgsrc-2023Q3-base:1.3 pkgsrc-2023Q2:1.3.0.8 pkgsrc-2023Q2-base:1.3 pkgsrc-2023Q1:1.3.0.6 pkgsrc-2023Q1-base:1.3 pkgsrc-2022Q4:1.3.0.4 pkgsrc-2022Q4-base:1.3 pkgsrc-2022Q3:1.3.0.2 pkgsrc-2022Q3-base:1.3 pkgsrc-2022Q2:1.2.0.8 pkgsrc-2022Q2-base:1.2 pkgsrc-2022Q1:1.2.0.6 pkgsrc-2022Q1-base:1.2 pkgsrc-2021Q4:1.2.0.4 pkgsrc-2021Q4-base:1.2 pkgsrc-2021Q3:1.2.0.2 pkgsrc-2021Q3-base:1.2; locks; strict; comment @# @; 1.4 date 2024.01.30.13.54.32; author ryoon; state Exp; branches; next 1.3; commitid Vzkz2h7fdhVvItWE; 1.3 date 2022.07.02.16.44.39; author ryoon; state Exp; branches; next 1.2; commitid IAtdySnjpnrLclKD; 1.2 date 2021.09.16.13.02.34; author schmonz; state Exp; branches; next 1.1; commitid 8TVsA27IvOWygb9D; 1.1 date 2021.07.30.12.21.06; author ryoon; state Exp; branches; next ; commitid IRPiktXGVITWz03D; desc @@ 1.4 log @pulseaudio: Update to 17.0 Changelog: PulseAudio 17.0 release notes 1. Notes for end users 1. Updates to ALSA UCM-based setups 2. Battery level indication to Bluetooth devices 3. Support for the Bluetooth FastStream codec 4. webrtc-audio-processing dependency updated 5. Trigger role groups added to module-role-cork 6. XDG base directory spec for profile-set loading 2. Notes for application developers 1. PA_RATE_MAX increased 3. Notes for packagers 1. webrtc-audio-processing dependency updated 4. git shortlog Notes for end users Updates to ALSA UCM-based setups An extensive set of changes landed which modify how ALSA UCM configuration is mapped to PulseAudio profiles and ports. Notably 1. We no longer generate combined ports for non-conflicting devices, and instead create one profile for each set of non-conflicting devices. Devices that are not explicitly marked as conflicting but share the same PlaybackPCM or CapturePCM are considered conflicting. 2. Instead of different inputs/outputs being exposed as ports on a source/ sink, they will be exposed as separate sources/sinks. On some setups where two inputs or outputs can run concurrently and independently, you will now see more than one input/output sink available when selecting the appropriate profile. Battery level indication to Bluetooth devices This shares the battery level of a PulseAudio host to a Bluetooth headset (for example, if you're running a PulseAudio-based device connected to a car, the car can report the battery level of your device). Support for the Bluetooth FastStream codec Devices that support the FastStream codec (which provides higher quality bidirectional audio) are now supported. webrtc-audio-processing dependency updated We updated to a more recent version of the webrtc-audio-processing library with improvements in echo cancellation and higher tolerance for drift. Unfortunately, this does mean that beamforming support, which was dropped upstream, is no longer present. Trigger role groups added to module-role-cork module-role-cork now allows groups of roles (separated by /) as triggers. XDG base directory spec for profile-set loading The XDG base directory specification is now used for ALSA profile set loading ($XDG_DATA_HOME, followed by $XDG_DATA_DIRS, and finally falling back to the previous behaviour). Notes for application developers PA_RATE_MAX increased The maximum supported sample rate is now 768kHz. Notes for packagers webrtc-audio-processing dependency updated We now depend on version 1.3 of the library, which is parallel-installable with other API versions. As part of this change, the default cpp_std for the project has been set to c++17. git shortlog Alistair Leslie-Hughes (7): Propagate return value from pa_pstream_attach_memfd_shmid Ensure fds are closed when exec functions are used. pactl: Stop a crash when setting the volume which is out of range pulsecore: Set errno before calling read rtp-send: Use getaddrinfo to improve support for ipv6. rtp-send: Use getaddrinfo to improve support for ipv6 on source address rtp-recv: Use getaddrinfo to improve support for ipv6. Alper Nebi Yasak (24): idxset: Add set contains() function idxset: Add set comparison operations idxset: Add reverse iteration functions alsa-ucm: Always create device conflicting/supported device idxsets alsa-ucm: Make modifiers track conflicting/supported devices as idxsets alsa-ucm: Add enable, disable, status helpers for devices alsa-ucm: Let profiles know their associated UCM verb alsa-ucm: Stop conflating profile name with UCM verb name alsa-ucm: Make mapping creation independent from indvidual profiles alsa-ucm: Split profile creation into verb and profile parts alsa-ucm: Rewrite conformant device group generation with idxsets alsa-ucm: Fix device conformance check alsa-ucm: Split out helpers for device set name, description, priority alsa-ucm: Make one input/output mapping per UCM device alsa-ucm: Remove combination port generation logic alsa-ucm: Make ports store only one device alsa-ucm: Make mapping UCM contexts have only one device alsa-ucm: Make mapping UCM contexts have only one modifier alsa-ucm: Disable old devices when switching profiles of same verb alsa-ucm: Create multiple profiles per verb for conflicting devices alsa-ucm: Add enable, disable, status helpers for modifiers alsa-ucm: Disable old modifiers when switching profiles of same verb alsa-ucm: Consider devices using the same PCM as incompatible alsa-ucm: Fix more instances of profile-verb conflation Arun Raghavan (13): ci: Update to freedesktop/ci-templates ci: Use built-in distribution image name mechanism echo-cancel-test: Drop references to internal message queue build-sys: Bump webrtc-audio-processing dependency build-sys: Bump .so version 16.99.1 build-sys: Bump cpp_std to c++17 build-sys: Add a webrtc-audio-processing wrap file ci: Force build of webrtc-aec ci: Add doxygen to build image ci: Drop -werror in build build-sys: Bump webrtc-audio-processing wrap to 1.2 build-sys: Bump webrtc-audio-processing wrap to 1.3 Update NEWS for 17.0 Asier Sarasua Garmendia (2): Added translation using Weblate (Basque) Translated using Weblate (Basque) Ataberk Özen (2): alsa-profiles: import Asus Xonar SE profile from pipewire alsa-profiles: rename mappings for Xonar SE Balázs Meskó (1): Translated using Weblate (Hungarian) Biswapriyo Nath (1): meson: Add DEF file to export APIs in Windows Dylan Van Assche (4): bluez5-util: move pa_bluetooth_discovery to header bluetooth: add AT+BIA support bluetooth: add UPower backend bluetooth: hook up UPower backend Eero Nurkkala (1): echo-cancel: add webrtc AEC3 support Ettore Atalan (1): Translated using Weblate (German) Fabrice Fontaine (1): meson.build: fix build without C++ Fran Diéguez (2): Translated using Weblate (Galician) Translated using Weblate (Galician) Georg Chini (7): combine-sink: Fix threading issue during underrun time-smoother-2: Fix stream time when stream starts paused stream-interaction: Extend trigger groups to module-role-cork stream-interaction: Fix regression when a trigger role is also a cork role tunnel-sink-new: Fix hang when used in combination with module-combine-sink switch-on-connect: Do not overwrite user configured default sink/source pactl, pacmd: Allow to unset the configured default sink or source Gioele Barabucci (1): daemon/meson.build: Install dbus policy in /usr, not /etc Gogo Gogsi (1): Translated using Weblate (Croatian) Hector Martin (1): alsa: ucm: Fix spurious mixer path removal on initial profile set Hugo Carvalho (1): Translated using Weblate (Portuguese) Hui Wang (1): backend-native: Handle multi AT commands in a buffer Igor V. Kovalenko (26): rtp: Accept CRLF delimiters in SDP as required by RFC 4566 rtp: Initialize SDP info struct field added for OPUS build-sys: meson: Make module-console-kit optional build-sys: meson: Move qpaeq to daemon build bluetooth: Free memblock after codec errors bluetooth: Do not use hardware volume control for A2DP backchannel bluetooth: Add faststream codec bluetooth: Use stereo sample spec for faststream backchannel bluetooth: Handle fragmented faststream frames bluetooth: Add 20dB boost for faststream source volume backend-native: Fix stack corruption reading RFCOMM AT+BIA= response module-combine-sink: Do not set up rate adjustment timer at load time module-combine-sink: Suspend while unloading to fix crash moving sinks backend-native: Fix parsing comma-delimited response alsa-util: Dump probed rates alsa-util: Add more standard sample rates. bluetooth: Amend writeout to send more initial frames resampler: Fix oversized memblock pushed from resampler bluetooth: Do not attempt decoding too short faststream packet data pstream: Pass frame size to keep split memblock parts aligned alsa-util: Perform format and rate detection before setting HW params alsa-util: Fix pa_alsa_get_supported_formats fallback. memblockq: Drop check for chunk index alignment, require aligned length shell-completion: Fix typo in --use-pid-file= suggestion memblockq: Adjust tail chunk offset into memblock after split Fix crash running in restricted environment. Jaechul Lee (1): sound-file-stream: Fix crash when playing a file which is not aligned Jan Kuparinen (1): Translated using Weblate (Finnish) Jan Palus (1): bluetooth/gst: Correct var type for GST_TYPE_BITMASK Jaroslav Kysela (5): alsa-mixer: allow to re-attach the mixer control element alsa-ucm: Set profiles by their struct instance, not their name alsa-ucm: remove extra space from the device.intended_roles property alsa-mixer: fix the re-attach code for the mixer control element alsa-mixer: extend pa_alsa_mixer_find with the subdevice check Jiri Grönroos (1): Translated using Weblate (Finnish) Joachim Philipp (1): Translated using Weblate (German) Jordi Mas (2): Translated using Weblate (Catalan) Translated using Weblate (Catalan) Marijn Suijten (5): backend-native: Fix indentation and whitespace style backend-native: Add backend pointer to transport_data Revert "bluez5-util: move pa_bluetooth_discovery to header" backend-native: Update all CIND indicators backend-native: Remove uninformative "Profile unavailable" debug message Mart Raudsepp (1): proplist-util: Don't assume gdkx is there as gtk could be built without it Nicolas Cavallari (2): build-sys: Fix atomic support detection build-sys: Add missing libatomic_ops dependencies Peter Meerwald-Stadler (5): module-combine-sink: Use fabs() instead of abs() for double module-combine-sink: Fix indentation module-tunnel: Fix typos volume: Fix typo raop-client: Fix typo Philip Goto (1): Translated using Weblate (Dutch) Rosen Penev (1): meson: fix meson warnings Rudi Heitbaum (2): shm: use MFD_NOEXEC_SEAL for shared memory shm: allow for older versions of Linux without MFD_NOEXEC_SEAL Sabri Ünal (1): Translated using Weblate (Turkish) Sean Greenslade (1): pactl: fix parsing of percentages with decimal points Seong-ho Cho (1): Translated using Weblate (Korean) Shunsuke Shimizu (1): build-sys: Fix macOS build SimonP (1): alsa-mixer: Respect XDG base directory spec when loading profile sets Takashi Sakamoto (1): alsa-mixer: avoid assertion at alsa-lib mixer API when element removal Tanu Kaskinen (2): i18n: Update .pot and .po files Update NEWS for 16.1 Temuri Doghonadze (10): Translated using Weblate (Georgian) Translated using Weblate (Georgian) Translated using Weblate (Georgian) Translated using Weblate (Georgian) Translated using Weblate (Georgian) Translated using Weblate (Georgian) Translated using Weblate (Georgian) Translated using Weblate (Georgian) Translated using Weblate (Georgian) Translated using Weblate (Georgian) Toni Estevez (5): Translated using Weblate (Catalan) Translated using Weblate (Spanish) Translated using Weblate (Spanish) Translated using Weblate (Spanish) Translated using Weblate (Spanish) Weijia Wang (1): echo-cancel: Fix macOS build Wim Taymans (1): sndfile: handle sndfiles with s24 format Yureka (1): Make gio-2.0 optional when gsettings is disabled acheronfail (1): pactl: SUBSCRIBE add a newline after every json message flyingOwl (1): time-smoother-2: Fix time calculation by comparing timestamps grimst (1): Translated using Weblate (French) hashitaku (2): shell-completion: add new subcommand get-* for bash shell-completion: add new subcommand get-* for zsh mooo (1): Translated using Weblate (Lithuanian) peijiankang (1): fix translation error of pulseaudio redfast00 (1): rtp: fix 'size mismatch' on BSD style operating systems wael (1): meson: use proper type for bools 김인수 (6): Translated using Weblate (Korean) Translated using Weblate (Korean) Translated using Weblate (Korean) Translated using Weblate (Korean) Translated using Weblate (Korean) Translated using Weblate (Korean) @ text @$NetBSD: patch-meson.build,v 1.3 2022/07/02 16:44:39 ryoon Exp $ * Non-MS Windows case uses libintl for dgettext. Fix build under NetBSD. --- meson.build.orig 2022-05-28 15:18:37.000000000 +0000 +++ meson.build @@@@ -368,7 +368,7 @@@@ if cc.has_header_symbol('sys/syscall.h', endif if cc.has_function('dgettext') - if host_machine.system() != 'windows' + if host_machine.system() == 'windows' libintl_dep = [] else libintl_dep = cc.find_library('intl') @ 1.3 log @pulseaudio: Update to 16.1 Changelog: 16.1: The 16.0 release had some regressions, so here comes a bugfix release to remedy those (along with some other fixes). These are the changes: * Fix parsing of percentage volumes with decimal points in pactl * Fix crash with the "pacmd play-file" command when reads from the disk aren't frame-aligned * Fix module-rtp-recv sometimes thinking it's receiving an Opus stream when it's not * Fix frequent crashing in module-combine-sink, regression in 16.0 * Fix crashing on 32-bit architectures when using the GStreamer codecs for LDAC and AptX 16.0: ## Notes for end users Opus support in the RTP modules The audio sent with module-rtp-send can now be compressed with the Opus codec. To use it, pass enable_opus=true as a module argument to module-rtp-send. This feature works only when PulseAudio is compiled with GStreamer enabled (both sending and receiving end). Stereo output support for EPOS/Sennheiser GSP 670 USB/wireless headset and SteelSeries GameDAC The EPOS/Sennheiser GSP 670 headset has separate mono and stereo output ALSA devices, but with the default configuration only mono worked with PulseAudio. Now both outputs work. The support includes both direct USB connection and the GSA 70 wireless dongle. The same fix was applied to SteelSeries GameDAC. Fix input issues for Texas Instruments PCM2902 based sound cards Texas Instruments PCM2902 is a generic audio chip that is used in multiple USB sound cards. We had custom configuration for Behringer UMC22, which turned out to affect multiple sound cards because they use the same USB ID. The PCM2902 sound cards vary in their capabilities, while our configuration was tailored only for the UMC22 card, which caused some trouble with recording on multiple PCM2902 sound cards. The reported issues have now been fixed. Native Instruments Komplete Audio 6 MK2 profiles The Native Instruments Komplete Audio 6 MK2 is similar to the Komplete Audio 6 and is now supported as well. Tunnel latency is now configurable The tunnel sink and source modules used to have a fixed 250 ms latency. The desired latency can now be configured with the latency_msec module argument. Tunnel modules can now reconnect to remote server A new reconnect_interval_ms argument was added to all four tunnel sink and source modules. When the argument is specified, the tunnel module will try automatic re-connection to the remote server if the connection fails. The argument specifies the time interval in ms after which a connection attempt is repeated. In particular, this allows to load tunnel sinks and sources from default.pa which will become available as soon as the remote server becomes available. Bluetooth device battery level reporting added If a bluetooth device supports battery level reporting, PulseAudio now is able to forward the information to other software. In case your desktop environment doesn't yet support showing the battery level in a nice GUI, the level is also available in the device's card object properties with the bluetooth.battery key. The property can be read with pactl list cards, for example. Tunnel and combine-sink latency fixes The tunnel and combine-sink latency reporting accuracy has been improved, which should help with audio synchronization issues. module-loopback improvements As part of a set of improvements to module-loopback's latency stability, a new argument, adjust_threshold_usec, was added to module-loopback to fine-tune the controller algorithm. The default value is 250 (microseconds), which should be sufficient in most cases. If it's not enough (caused by inaccurate latency reports from the sink or source), the loopback's sample rate will oscillate, while unnecessarily high values will increase variance in the loopback latency. Another change is the ability to set the adjust_time argument to smaller values than 1 second, for example 0.5 sets the adjustment interval to half a second. The default value was changed from 10 seconds to 1 second to make the latency control tighter. module-loopback used to log a bunch of status information every time it adjusted the playback rate. Now that the default adjustment interval is down from 10 seconds to 1 second, the logging became a bit too much, and the logging was disabled by default. It can now be enabled by setting the log_interval module argument. The value is given in seconds, it doesn't have to be an integer. The logging still happens at the time the rate adjustment is done, so if log_interval is less than adjust_time, then the logging will happen once per adjustment cycle. Increased flexibility for module-jackdbus-detect module-jackdbus-detect is used for loading a JACK sink and source when JACK starts up. The module now has new sink_enabled and source_enabled arguments that accept boolean values. The new arguments can be used to disable either the sink or the source if loading both is not desired. module-jackdbus-detect can now also be loaded more than once, allowing multiple JACK sinks or sources with different configurations to be created. pactl can show information in JSON format pactl has a new option --format, which accepts values text and json. text shows the pactl output in the traditional way, json shows it in the JSON format for easier interfacing with other software. Channel remixing can be disabled for module-combine-sink module-combine-sink now accepts a boolean remix argument, which can be used to disable normal remixing. This is useful when combining multiple sound cards for surround output: if there are 3 stereo sound cards, you might want to set the channel map of one card to front-left,front-right, another to rear-left,rear-right and the third to front-center,lfe. If a combine sink is then created with a 5.1 surround channel map using these sound cards as slaves, audio is copied to all these sound cards, but by default the audio is downmixed to stereo for each card, which doesn't result in proper s is done, the channels that don't fit the slave channel map are just dropped, which means that each sound card gets audio only for the intended channels. ## Notes for application developers Stream latency reports now include resampler delay Sink input and s, respectively. While this is minor semantic change, it should allow for more accurate A/V sync for applications. Bluetooth device battery level reporting added If a bluetooth device supports battery level reporting, the level is now reported to BlueZ. Aroperties with the bluetooth.battery key. There are no notifications when the property value changes, however (bug reported: #1314). ## Notes for packagers Module installation location changed, remember to upgrade paprefs to the latest version! Modules are now installed to $libdir/pulseaudio/modules, previously they were installed to $libdir/pulse-$version/modules. paprefs has some logic that is sensitive to the module installation path, so if you ship paprefs in your distribution, make sure to upgrade paprefs to version 1.2. Earlier paprefs versions won't work properly with PulseAudio 16.0. Opus support in the RTP modules requires enabling GStreamer The new Opus compression is available only when PulseAudio is built with the gstreamer Meson option enabled (previously it was disabled by default, now it's automatically enabled if the necessary dependencies are found). Bluetooth battery level reporting via BlueZ requires enabling experimentals features in BlueZ The Battery API is still marked as an experimental feature in BlueZ, and if you wish to have PulseAudio use it, bluetoothd has to be started with the --experimental command line argument. New time smoother implementation There's a new algorithm for keeping latency stable during adaptive resampling in module-loopback and elsewhere. Part of that is a new "time smoother" implementation. It will deliver more accurate and stable latency estimations compared to the current algorithm. This is mainly important where a fixed relationship between different streams is required (A/V sync, module-loopback, module-combine-sink, module-echo cancel, ...). Since this is a fair bit of complex new code in the core audio processing parts, the old implementation is kept around for a while to have a backup in case bugs show up. The new time smoother can be disabled with the enable-smoother-2=false Meson option. Possibility to build the daemon without the client parts It's now possible to build the daemon without building the client parts at the same time, by using the -Dclient=false Meson option. The daemon will still need the client libraries during the build, the libraries installed in the system will be used. Apparently this kind of scheme is useful for Gentoo. @ text @d1 1 a1 1 $NetBSD$ a4 1 * Omit unsupported linker arguments on macOS. a16 9 @@@@ -424,7 +424,7 @@@@ cdata.set('MESON_BUILD', 1) # so we request the nodelete flag to be enabled. # On other systems, we don't really know how to do that, but it's welcome if somebody can tell. # Windows doesn't support this flag. -if host_machine.system() != 'windows' +if host_machine.system() != 'windows' and host_machine.system() != 'darwin' nodelete_link_args = ['-Wl,-z,nodelete'] else nodelete_link_args = [] @ 1.2 log @Fix some (not all) of the macOS build failures. NFCI elsewhere. @ text @d1 1 a1 1 $NetBSD: patch-meson.build,v 1.1 2021/07/30 12:21:06 ryoon Exp $ a4 1 * Apply proposed upstream commit 390e5f02 to fix non-x86 clang builds. d7 1 a7 1 --- meson.build.orig 2021-07-27 20:02:27.000000000 +0000 d9 1 a9 29 @@@@ -216,7 +216,6 @@@@ endif check_headers = [ 'arpa/inet.h', 'byteswap.h', - 'cpuid.h', 'dlfcn.h', 'execinfo.h', 'grp.h', @@@@ -276,6 +275,19 @@@@ if cc.has_header_symbol('pthread.h', 'PT cdata.set('HAVE_PTHREAD_PRIO_INHERIT', 1) endif +# Headers which are usable + +check_usable_headers = [ + 'cpuid.h', +] + +foreach h : check_usable_headers + if cc.check_header(h) + define = 'HAVE_' + h.underscorify().to_upper() + cdata.set(define, 1) + endif +endforeach + # Functions check_functions = [ @@@@ -348,7 +360,7 @@@@ if cc.has_header_symbol('sys/syscall.h', d18 1 a18 1 @@@@ -404,7 +416,7 @@@@ cdata.set('MESON_BUILD', 1) @ 1.1 log @pulseaudio: Update to 15.0 * Convert to use meson to build. Changelog: 1. Notes for end users 1. Support for LDAC and AptX bluetooth codecs, plus "SBC XQ" (SBC with higher-quality parameters) 2. Support for HFP bluetooth profiles 3. Support for Bluetooth A2DP AVRCP Absolute Volume 4. ALSA path configuration files can now be placed in user home directory 5. module-virtual-surround-sink rewritten 6. More options for module-jackdbus-detect 7. Improved hardware support 1. SteelSeries Arctis 9 2. HP Thunderbolt Dock 120W G2 3. Behringer U-Phoria UMC22 4. OnePlus Type-C Bullets 5. Sennheiser GSX 1000/1200 PRO 8. New udev variable: PULSE_MODARGS 9. max_latency_msec argument added to module-null-source 10. module-filter-apply can take filter parameters from device properties 11. module-match can now be loaded multiple times 12. Improvements to FreeBSD support 13. Windows support added to Meson 14. Additional commands for pactl 15. Card profiles can be set to sticky 2. Notes for application developers 1. New API for sending messages from clients to PulseAudio objects 2. New mechanism for applications to disable shared memory on their connection to PulseAudio 3. Notes for packagers 1. Autotools build system have been dropped 2. The startup script can now read additional configuration from the /etc/ pulse/default.pa.d/ directory 3. Option to build client library and utilities only 4. Avoid loading X11 modules on Wayland (GNOME-only for now) 5. OSS support is now configurable in Meson 6. Valgrind support is now configurable in Meson @ text @d1 1 a1 1 $NetBSD$ d5 2 d8 1 a8 1 --- meson.build.orig 2021-07-27 20:02:27.711868000 +0000 d10 29 a38 1 @@@@ -348,7 +349,7 @@@@ if cc.has_header_symbol('sys/syscall.h', d47 9 @