path: root/
AgeCommit message (Collapse)AuthorFilesLines
2021-06-21build-sys: meson: Require bluez dependency if bluez5 feature is enabledIgor V. Kovalenko1-4/+6
Build breaks if bluez5 and bluez5-native-headset are both enabled but bluez headers are not available. Fix this by changing `bluez5` to Meson feature requiring `bluez` dependency. Part-of: <>
2021-06-21build-sys: meson: require GIO dependency for RTP-GStreamerIgor V. Kovalenko1-2/+4
Part-of: <>
2021-06-03build-sys: meson: restore big endian detectionIgor V. Kovalenko1-0/+4
Autotools used AC_C_BIGENDIAN to set WORDS_BIGENDIAN, add Meson implementation. Part-of: <>
2021-05-19build-sys: meson: make doxygen optionalIgor V. Kovalenko1-1/+3
Part-of: <>
2021-05-18build-sys: meson: only require libltdl if daemon is builtIgor V. Kovalenko1-2/+5
Part-of: <>
2021-05-17build-sys: Fix a couple of meson warningsv14.99.1Arun Raghavan1-0/+1
Part-of: <>
2021-05-17build-sys: Bump libpulse soversionArun Raghavan1-1/+1
Lots of changes, particularly related to the messaging API. Part-of: <>
2021-04-19build-sys: meson: allow building client libraries onlyIgor V. Kovalenko1-0/+2
Part-of: <>
2021-04-05bluetooth: add support for mSBC codecJames Bottomley1-0/+1
Adding processing support for the mSBC codec is somewhat problematic, because, although it is a SBC codec, the a2dp handling can't simply be reused because the codec is used on an eSCO link with transparent data, meaning the transmission unit has to be 48 bytes (fragmenting the codec packets) and reassembly and boundary detection is required to be done by the implementation. Therefore we have to implement separate render and push routines for msbc that do this fragmentation. Fragmentation is done by emulating circular buffers. The receive (push) buffer is easy, since the mSBC packet size is 60, simply have a buffer of this size in the sbc_info area where the fragments are reassembled. Once we have a full 60 bytes, decode and restart from zero. The send (render) buffer is more problematic, since the transmit must be done from contiguous memory. This means that the buffer must be the lowest common multiple of the transmission unit and the packet size. This value is 240 since 240/48 == 5 and 240/60 == 4. So the buffer pointers are reset at 240 which is a whole number of both rendered packets and eSCO transmission units. Signed-off-by: James Bottomley <> Part-of: <>
2021-03-15build-sys: meson: fix meson dist versionIgor V. Kovalenko1-0/+2
Part-of: <>
2021-02-12build-sys: meson: support elogind alternative for module-systemd-loginIgor V. Kovalenko1-0/+6
Part-of: <>
2021-02-12build-sys: meson: add tcp-wrappersIgor V. Kovalenko1-1/+6
Part-of: <>
2021-02-12build-sys: drop gconf supportIgor V. Kovalenko1-1/+0
Part-of: <>
2021-01-19bluetooth: Add aptX support via GStreamerSanchayan Maity1-0/+1
Part-of: <>
2021-01-19bluetooth: Add LDAC support via GStreamerSanchayan Maity1-0/+1
Part-of: <>
2021-01-19bluetooth: Add a generic GStreamer codec moduleSanchayan Maity1-0/+8
This adds a generic gstreamer codec module based on which other bluetooth codecs viz. aptX, aptX-HD, LDAC and AAC can be supported. The GStreamer codec plugins used here themselves depend on the native codec implementation. aptX/aptX-HD -> libopenaptx LDAC -> libldac AAC -> Fraunhofer FDK AAC Part-of: <>
2021-01-18build-sys: meson: only warn about lack of udev on LinuxGreg V1-1/+1
Part-of: <>
2021-01-18module-devd-detect: new module for soundcard hotplug on FreeBSDGreg V1-0/+2
Used in addition to module-detect, since devd only provides hotplug events. Part-of: <>
2021-01-18build-sys: meson: support memfd without SYS_memfd_create (FreeBSD 13)Greg V1-1/+2
Part-of: <>
2021-01-18build-sys: meson: add execinfo dependency for FreeBSDGreg V1-0/+3
For 'backtrace' and related symbols Part-of: <>
2021-01-18build-sys: meson: check for shm_open even if it's in libc (FreeBSD), not librtGreg V1-1/+1
Part-of: <>
2021-01-18build-sys: meson: when libc iconv is used, tell libiconv header to pretend ↵Greg V1-0/+2
to be libc's iconv The libiconv header on FreeBSD would be preferred by include path, but we don't want to link to libiconv, so tell its header to act like the system header. Part-of: <>
2021-01-18build-sys: meson: set HAVE_DLADDR even if it's in libc (FreeBSD), not libdlGreg V1-1/+1
Part-of: <>
2021-01-13win32: Fix privlibdir for running on WindowsPatrick Gaskin1-0/+5
Part-of: <>
2021-01-07database: clean up remaining references to CANONICAL_HOSTIgor V. Kovalenko1-1/+0
Part-of: <>
2021-01-04x11: gracefully handle X11 connection errorIgor V. Kovalenko1-0/+4
Perform X11 connection recovery via XSetIOErrorExitHandler mechanism. Implementation is largely inspired by this change to GNOME/mutter Part-of: <>
2020-12-16win32: Fix meson build system for Windows.Edward Lee1-5/+42
Part-of: <>
2020-12-14build-sys: meson: change oss-output boolean to Meson featureIgor V. Kovalenko1-4/+3
Part-of: <>
2020-12-09build-sys: Add an option for enabling/disabling ValgrindTanu Kaskinen1-1/+5
In OpenEmbedded the PulseAudio recipe currently disables Valgrind support by passing "ac_cv_header_valgrind_memcheck_h=no" to the configure script (this was added to make it deterministic whether Valgrdind support gets enabled or not). I'm converting the PulseAudio recipe to use Meson, and I needed an option to disable Valgrind.
2020-12-03protocol-native: add message sending capabilityGeorg Chini1-1/+1
This patch adds the PA_COMMAND_SEND_OBJECT_MESSAGE command to protocol-native so that clients can use the messaging feature introduced in the previous patch. Sending messages can in effect replace the extension system for modules. The approach is more flexible than the extension interface because a generic string format is used to exchange information. Furthermore the messaging system can be used for any object, not only for modules, and is easier to implement than extensions. Part-of: <>
2020-11-30build-sys: meson: use target_machine.cpu_family() for CANONICAL_HOSTIgor V. Kovalenko1-1/+1
target_machine provides information about the machine on which the compiled binary's output will run. cpu_family() returns CPU family name (such as x86_64, not more specific amd64) Part-of: <>
2020-11-28build-sys: meson: add oss-output option for OSS output supportIgor V. Kovalenko1-3/+3
Restore an option to disable OSS output available with autotools.
2020-11-23Add folder supportSanchayan Maity1-0/+1
The .include meta command already supports specifying a directory and when including a directory, all files with the extension '.pa' in that directory will be parsed in alphabetical order. This feature can be used to add support for directory, so that packages for other applications or users can just drop in a file for configuration without changing the which is shipped. We use the PA_DEFAULT_CONFIG_DIR for this, however, since meson quotes this build variable, introduce an unquoted version for this purpose and use it with .include. Fixes: Signed-off-by: Sanchayan Maity <>
2020-11-23glib-mainloop: Drop deprecated g_get_current_time() usageArun Raghavan1-1/+1
This uses the year 2038-safe g_get_real_time() as recommended instead. Bumps GLib dependency to 2.28 as a result.
2020-11-23build-sys: Bump libpulse soversionv14.0Arun Raghavan1-1/+1
This is because we reverted the previous API breaking change to the meaning of the pa_mainloop_prepare() timeout argument.
2020-10-23rtp: gstreamer: Don't count on buffer DTS for capture timeArun Raghavan1-1/+1
With GStreamer 1.18, the old behaviour of storing the capture time in DTS is gone (which is reasonable, since the semantics really don't match). So instead, we get a capture timestamp when the buffer is being pushed from udpsrc. This should eventually move into udpsrc, and the timestamp should come from the cmsg instead of the clock. We still fallback to the DTS if the meta isn't available, as the meta might be dropped in older versions of rtpL16pay due to a bug.
2020-09-20build-sys: Bump soversionsArun Raghavan1-2/+2
libpulse gets a full API bump due to the addition of availability groups, and libpulse-mainloop-glib gets a minor bump for implementation change.
2020-08-10meson: Add doxygen targetTanu Kaskinen1-0/+2
The documentation can be generated with "ninja -C build doxygen". The output will go to "doxygen/html" under the build directory.
2020-08-09build: Make alsadatadir configurableJan Alexander Steffens (heftig)1-1/+6
Pipewire has started shipping copies of PulseAudio's ALSA card profiles. It would be useful if both projects could share the same profiles and this patch is a step toward that.
2020-07-11build-sys: meson: bump protocol versionTanu Kaskinen1-1/+1
This was forgotten in commit 861836c5f72de32ec0debcf8fc3a76c4e2c014e6.
2020-06-17build-sys: meson: Fix detection of SYS_memfd_createJan Alexander Steffens (heftig)1-1/+1
It's a define resolving to a number, not a function.
2020-06-01stream-restore: Forget pre-14.0 stream routingTanu Kaskinen1-0/+6
Prior to commits f899d5f4669dcd536cc142cee99fe359dd8af3d6 and f62a49b8cf109c011a9818d2358beb6834e6ec25, GNOME's sound settings overwrote the routing for all entries in the stream-restore database when selecting a device. Now we prevent that from happening (see the aforementioned commits), but the old overwritten settings can still be in the database after updating to PulseAudio 14.0, and they can cause problems, as documented here: We can't distinguish between devices set by GNOME's sound settings and devices set by the user, so this patch discards all old device settings, even though that is going to cause PulseAudio to forget routing settings for many users. This is less bad than keeping the incorrect routing settings in the database, because it's difficult for users to figure out how to fix the situation when e.g. speaker test tones go to the internal speakers no matter what device is selected as the default, whereas old manual configuration can be restored restored by doing the manual configuration again. Also, it's probably more common to have at some point changed the default device in GNOME's sound settings than it is to have any manual per-stream routing settings. This is disabled by default, because this causes data loss, but distributions that use GNOME are recommended to enable this with the --enable-stream-restore-clear-old-devices (Autotools) or -Dstream-restore-clear-old-devices=true (Meson) build option. Fixes:
2020-02-14build: Bump soversion for libpulsev13.99.1Arun Raghavan1-1/+1
No interface changes, but minor implementation change via a fix for when contexts are freed.
2019-11-08rtp: Add a GStreamer-based RTP implementationArun Raghavan1-0/+10
This adds a GStreamer-based RTP implementation to replace our own. The original implementation is retained for cases where it is not possible to include GStreamer as a dependency. The idea with this is to be able to start supporting more advanced RTP features such as RTCP, non-PCM audio, and potentially synchronised playback. Signed-off-by: Arun Raghavan <>
2019-09-25meson: link libintl if it's not provided by libcRasmus Thomsen1-0/+6
This fixes the build on musl with external gettext
2019-09-02build-sys: Fix documentation of version infoArun Raghavan1-3/+3
The comment has been incorrect for a while now. Thanks to Jan Steffens for pointing this out.
2019-09-01build-sys: Bump version info for libpulsev12.99.3Arun Raghavan1-1/+1
Minor implementation change since last release (we now load X11 properties only for SSH connections).
2019-08-22build-sys: meson: Process subdirectories before generating configurationArun Raghavan1-11/+11
Subdirectories add to the top-level cdata (specifically, the SIMD detection happens in the pulsecore, so we were missing HAVE_MMX/SSE2/NEON defines without this fix.
2019-08-22build-sys: meson: Fixes for some ARM compiler checksArun Raghavan1-8/+11
2019-08-15build-sys: meson: Add a bunch of missing checksArun Raghavan1-0/+10