Commit Graph
129 Commits
Author SHA1 Message Date
Mike Brady b405c0b896 Version 5.0 Major Release.
New Features:
Multi-Channel and High-Resolution Audio Support
48,000 frames per second ("48k") operation.
48k lossless stereo support.
5.1 and 7.1 surround sound support.
Multi-channel and multi-rate operation on ALSA, PipeWire, PulseAudio, FreeBSD, stdout and Unix pipe output backends.
Automatic Audio Format Selection
Flexible and controllable output format selection.
Automatic rate, sample format, and channel count selection.
Full FFmpeg Integration
Support for transcoding.
Advanced resampling capabilities.
New audio format support.
Enhanced Resampling
New vernier resampling and interpolation method optimized for low-power CPUs.
Better performance on resource-constrained devices.

Convolution and Loudness Enhancements:
Convolution system is now multithreaded and works on stereo and multichannel audio at 48k and 44.1k.
Multiple impulse response (IR) files can now be provided via convolution_ir_files setting.
New convolution_thread_pool_size setting for multithreaded processing (defaults to 1).
Loudness processing now works with stereo and multichannel audio at 48k and 44.1k.
Updated to the most recent HiFi-LoFi FFT convolver.

MQTT Enhancements:
Added new publish_retain boolean option. When enabled, published MQTT messages have the retain flag set, so the MQTT broker stores the last message per topic and new subscribers receive the most recent value immediately. Thanks to lululombard for PR #2142.

D-Bus Enhancements:
Added new dbus_default_message_bus command-line argument (can be system or session) to set the default message bus for both D-Bus native service and MPRIS service.

Performance Improvements:
Enhanced compatibility with AirPlay 2 AutoMix and Smart Tracklists resulting in less unexplained track skipping.
Better operation on low-power devices down to Raspberry Pi B.
Improved efficiency on embedded systems.
Enhanced timestamp handling for better synchronization.
Improved sync error calculation.
Rebuilt buffered audio processor for cleaner handling of immediate and deferred flush requests.

Docker Enhancements:
Reduced Docker image sizes with slimmed-down FFmpeg library.
Removed dhclient from Docker images for smaller footprint.

Bug Fixes:
Fixed MQTT warning on service startup: "Could not establish a mqtt connection". The startup script now correctly states that the mosquitto service is required. Thanks to Hugo Villeneuve for PR #2137.
Fixed compatibility with mbedtls library version 3.4+ (present on recent Linux versions). Thanks to Christian Beier for finding and fixing the bug.
Fixed PulseAudio backend so that PA_ERR_NODATA returns "No latency data yet". Thanks to Vladimir Shakov for the report and fix.
Ensured old flush requests are deleted when a new play session starts. Thanks to saujanyashah for the report.
Fixed format warnings on 64-bit and 32-bit systems
Removed compilation warnings on 32-bit builds
Improved argument checking for debug(), inform(), warn() and die() functions
Fixed "daemon" typos throughout codebase. Thanks to Chris Boot for PR #1981.
Added warning if a convolution impulse response file cannot be read due to bad path or permissions

Build System Improvements:
Unified service file with variable substitution for Avahi support, making it easier to add future service dependencies. Thanks to Hugo Villeneuve.
Network interface selection now only considers interfaces that are up, running and not loopback interfaces. Thanks to Carl Johnson for the suggestion.
Configuration File Changes and Deprecations

New settings: convolution_ir_files (replaces convolution_ir_file), convolution_enabled (replaces convolution), convolution_max_length_in_seconds (replaces convolution_max_length), loudness_enabled (replaces loudness).
New convolution_thread_pool_size setting (defaults to 1).
Deprecated settings: convolution_ir_file, convolution, convolution_max_length, loudness.
Corresponding D-Bus methods and properties have been updated.

Deprecation Notice:
The Jack Audio and soundio backends are deprecated and will be removed in a future release. Consider using the updated PipeWire backend instead.

Documentation Updates
Updated BUILD.md with latest build instructions.
Updated AIRPLAY2.md with feature information.
Enhanced convolution and loudness documentation.

Maintenance:
Fixed FFmpeg deprecation warnings.
Bumped actions/checkout from 6.0.1 to 6.0.2.
Bumped docker/login-action from 3.6.0 to 3.7.0.
Bumped docker/build-push-action from 6.13.0 to 6.15.0.
Bumped docker/setup-qemu-action from 3.4.0 to 3.6.0.
Bumped docker/setup-buildx-action from 3.9.0 to 3.10.0.
2026-02-13 15:17:40 +00:00
Hugo Villeneuve 2dfeaa6825 Add configure option to enable/disable creation of user/group
Useful for Yocto, for example, where groupadd or getenv is not available.

Enabled by default, to keep same behavior as before.
2024-03-07 00:20:39 -05:00
Mike Brady cf10ff9d7a Build scripts/shairport-sync.service, scripts/shairport-sync.service-avahi and scripts/shairport-sync unconditionally for Linux to facilitate different installation methods. 2024-03-04 11:13:56 +00:00
Mike BradyandGitHub f37d1b8eb1 Merge pull request #1795 from klemensn/manual-section
Move shairport-sync manual from section 7 to 1
2024-01-29 16:32:36 +00:00
Zane van Iperen ec3b5ffca2 Makefile.am: allow manually installing config files
Adds a "install-config-files" Makefile target that installs the config
files and dbus policies to DESTDIR=, regardless of whether
--with{,out}-configfiles is specified.
2024-01-29 02:33:53 +10:00
Klemens NanniandKlemens Nanni 8ae635e78e Move shairport-sync manual from section 7 to 1
From mandoc man(1) [-s] section:
                   1         General commands (tools and utilities).
                   [...]
                   7         Miscellaneous information.

From GNU man(1) DESCRIPTION:
     1   Executable programs or shell commands
     [...]
     7   Miscellaneous (including macro packages and conventions), e.g.
         man(7), groff(7)

shairport-sync is an executable, shairport-sync(1) ought to be its
documentation, not merely miscellaneous information.

OpenBSD adjusts this in its audio/shairport-sync port/package ever since.
2024-01-27 19:40:04 +01:00
Mike Brady b3db7e88cf Small bug fixes 2023-09-11 15:58:49 +01:00
Mike Brady a0e9c0ac34 add --broken to the git describe call 2023-05-21 13:42:34 +01:00
Mike Brady 36ed65fc84 Simplify some entries in MAkefile.am -- don't need them anymore. 2022-10-24 12:11:17 +01:00
Mike Brady 1fb0276bca Modify the Makefile.am entry for generating gitversion.h so that it works in a separate build directory and on FreeBSD as well as Linux. 2022-10-24 11:36:18 +01:00
Mike Brady 11495fd760 Correct a hacky and incorrect kludge so that the Makefile works on Linux and FreeBSD. 2022-10-11 21:10:53 +01:00
Mike Brady 86a52964f9 Don't automatically try to build the man file -- assume it's already there. Add a separate Makefile for the man directory. Only generate the man file (not the html file) by default. Specify the man file in this directory for installation during installation of shairport sync 2022-10-10 22:39:15 +01:00
Mike Brady 76388d1325 Automake seems to get confused about where common.c is, due perhaps to its dependence on gitversion.h. This seems to fix it. 2022-10-10 20:50:42 +01:00
Mike Brady 5adb76c37d Include lightweight tags (that GitHub uses to mark releases) when forming the version number and version string. Duh. 2022-10-10 10:51:33 +01:00
Mike Brady 0cc97d5099 Start using libgcrypt again, as there appears to be a memory leak in openssl when used in the pair_ap library. 2022-10-07 16:17:42 +01:00
Mike Brady 1296b8f2f8 Fix for building for System V. 2022-09-29 11:02:46 +01:00
Mike Brady 7f9e8116d7 Look for the shairport-sync.service file in the scripts folder in the _build_ folder, because it's generated by ./configure. Same with the SystemV init file. 2022-09-28 17:25:27 +01:00
Mike Brady 30aaabc47e Remove the need for the gcrypt library; use openssl instead, as it's mandatory elsewhere in Shairport Sync. 2022-09-26 17:42:13 +01:00
Isioma Nnodum 09f7656c3f Corrected path to scripts directory in INSTALL_SYSTEMD_TARGET 2022-09-10 12:16:54 -04:00
Mike Brady 14bda21b68 Add a reference to the source directory. 2022-09-10 13:49:33 +01:00
Mike Brady 1092a8c19b Fix compilation and installation under FreeBSD -- changes to allow building in a separate directory broke the FreeBSD build process. 2022-09-10 10:30:43 +01:00
Mike Brady 3419f09049 Merge branch 'autoconf-build-dir' of https://github.com/lrusak/shairport-sync into lrusak-autoconf-build-dir 2022-08-15 08:52:20 +01:00
Mike Brady c458114c4c Add distinct flags for Darwin -- turn off deprecation warnings. 2022-08-08 12:16:40 +01:00
Mike Brady 1f82109577 Use printf in place of echo for portability to Mac OS.
Update author
2022-08-08 09:56:25 +01:00
Lukas Rusak 931c7ed2ef Makefile.am: allow installing from separate build directory 2022-07-28 20:34:10 -07:00
Lukas Rusak 40e28ba2c7 Makefile.am: allow building from separate build directory 2022-07-28 20:34:10 -07:00
Mike Brady 23d0502ffa Revert changes at 5011dc09d5 -- not quite ready yet. 2022-07-11 11:12:39 +01:00
Lukas Rusak 17e26a03e6 Makefile.am: allow installing from separate build directory 2022-07-05 15:22:10 -07:00
Lukas Rusak 5fdfcac6f3 Makefile.am: allow building from separate build directory 2022-07-05 15:19:59 -07:00
Mike Brady 905d53a0f8 Look for "nologin" in the right place, duh. 2022-07-03 15:24:05 +01:00
Mike Brady bcc809edb8 Always update the startup script in FreeBSD 2022-05-23 10:29:47 +01:00
Mike Brady 38bbad6f63 Remove the requirement for Avahi in the systemd startup file unless Avahi is included in the build. 2022-04-05 07:22:34 +01:00
Mike Brady ce39f00a0b Don't overwrite service files if they already exist. 2021-11-25 17:42:48 +00:00
Mike BradyandGitHub 8c9f438bda Merge pull request #1177 from lrusak/pipewire
pipewire: add initial support
2021-07-22 16:35:10 +01:00
Mike Brady 1a21a1aaae Switch to libgcrypt for the pairing library for compatibility with Ubuntu on an M1. 2021-06-29 10:23:56 +01:00
Mike Brady 2203d6a335 Start using automatic git-based versioning 2021-05-14 22:49:17 +01:00
Mike Brady db6cadb05c Always update the systemd shairport-sync.service file. 2021-05-14 12:26:25 +01:00
ejurgensen 493e9604d3 Use pair_ap for pairing and rtsp encryption 2021-05-04 20:34:37 +02:00
Mike Brady 8110851d5f Remove tinyhttp files prior to adding it as a submodule 2021-04-27 19:26:08 +01:00
Lukas Rusak ec23236370 pipewire: add initial support 2021-04-01 10:12:42 -07:00
Mike Brady 0c3ec38c97 Add the -fno-common flag to the compiler 2020-02-18 14:07:59 +00:00
Mike Brady 4aea4cc5c6 Always use /etc/dbus-1/system.d for dbus policy documents in Linux, but continue to use the top-level directory path specified by the sysconfdir variable for *BSD 2019-05-12 15:40:40 +01:00
Mike Brady feaa931978 Update the FREEBSD installer to create a user/group with a uid/gid of (arbitrarity) 801 to avoid appearing on the login list. 2019-03-19 16:11:26 +00:00
Mike Brady cc0ff56ab7 Create the dbus/system.d directory if it doesn't already exist. 2019-03-18 19:37:09 +00:00
Mike Brady 623b9b4b9f Add a CYGWIN installer. 2019-02-21 16:10:30 +00:00
Mike Brady 3162977c71 make mdns-external-avahi a conditional compilation 2019-02-05 09:45:16 +00:00
Mike Brady a8639f6c40 Add an activity monitor -- can set an activity idle timeout. 2019-01-20 22:15:02 +00:00
Mike Brady 203f02604d Improve build instruction to avoid rebuilding stuff when there has been no change. 2018-11-01 12:56:32 +00:00
Mike Brady 35860f7bb4 Stop multiple calls to gdbus_codegen on parallel makes 2018-11-01 11:06:32 +00:00
Mike Brady 580d75a6ed Make the lib settings standard for all builds, not individual for Linux/FreeBSD/OpenBSD. Let's hope. 2018-10-30 19:58:34 +00:00