6570 Commits
Author SHA1 Message Date
Mike Brady f38eb46506 Mark Docker images as release candidates. 2026-02-13 15:43:19 +00:00
Mike Brady 59bf5915f6 Set initial debug level to 0; fix a bug reading convolution files with dbus support enabled. [skip ci] 2026-02-13 15:36:20 +00:00
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
Mike BradyandGitHub ea4bf0c860 Update NQPTP link and Shairport Sync instructions [skip ci]
Updated NQPTP installation link to point to the development branch and added a checkout command for the Shairport Sync development branch.
2026-02-12 17:21:11 +00:00
Mike BradyandGitHub 63a8e0f495 Revise CAR INSTALL.md for clarity and accuracy
Updated instructions for setting up Shairport Sync in a car audio system, including changes to device names, network configurations, and service management.
2026-02-12 17:15:11 +00:00
Mike BradyandGitHub 6be612dc6c Update release notes for version 5.0-dev-168
Added a new `publish_retain` option for MQTT configuration and updated release notes with Dependabot updates and bug fixes.
2026-02-09 09:35:40 +00:00
Mike BradyandGitHub 846e0e3dfe Merge pull request #2142 from lululombard/mqtt-retain-dev
Add MQTT retain flag support.
2026-02-09 09:23:16 +00:00
lululombard bd9008e4f7 Add MQTT retain flag support 2026-02-08 12:43:53 +01:00
Mike BradyandGitHub df7bfcacfb Merge pull request #2139 from mikebrady/dependabot/github_actions/development/docker/login-action-3.7.0
Bump docker/login-action from 3.6.0 to 3.7.0
2026-02-02 09:31:13 +00:00
dependabot[bot]andGitHub 1623333e94 Bump docker/login-action from 3.6.0 to 3.7.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.6.0...v3.7.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-01 10:06:35 +00:00
Mike BradyandGitHub 531b8a00d8 Update RELEASENOTES-DEVELOPMENT.md 2026-01-26 17:07:18 +00:00
Mike BradyandGitHub ef8d82d96f Update release notes for convolution and loudness enhancements 2026-01-26 17:04:59 +00:00
Mike BradyandGitHub 15078a0a41 Update release notes for version 5.0-dev-161
Fix MQTT warning and update Dependabot tools.
2026-01-26 17:00:47 +00:00
Mike BradyandGitHub 5b3659c26e Merge pull request #2137 from hvilleneuve29/development_yocto
Fix MQTT warning and simplify building the systemd startup script
2026-01-26 16:48:13 +00:00
Hugo VilleneuveandHugo Villeneuve b60b424495 MQTT: fix warning when starting service
This fixes the following warning:

    shairport-sync[293]: [MQTT]: Could not establish a mqtt connection

Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
2026-01-26 10:24:22 -05:00
Hugo VilleneuveandHugo Villeneuve 6a94eeb926 Use common service file for avahi
Use variable substitution to simplify service file for optional avahi.

This will also help to simplify adding future service dependencies.

Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
2026-01-26 10:24:22 -05:00
Mike BradyandGitHub 23e8504579 Merge pull request #2135 from mikebrady/dependabot/github_actions/development/actions/checkout-6.0.2
Bump actions/checkout from 6.0.1 to 6.0.2
2026-01-25 14:35:38 +00:00
dependabot[bot]andGitHub 1e5b0a74b3 Bump actions/checkout from 6.0.1 to 6.0.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-25 10:02:37 +00:00
Mike BradyandGitHub f69927b37a Update RELEASENOTES-DEVELOPMENT.md for 5.0-dev-155
Add bug fix and updates to release notes for version 5.0-dev-155.
2026-01-05 21:25:29 +00:00
Mike Brady 45063d101f Add Carl Johnson's suggestion for omitting dummy internet interfaces. 2026-01-05 21:19:11 +00:00
Mike BradyandGitHub 3746c82f90 Update version numbers in release notes 2025-12-31 19:54:49 +00:00
Mike Brady 525e49cd76 Fix one format warning 2025-12-31 19:52:44 +00:00
Mike BradyandGitHub 10bf5a1045 Update version and improve argument checking
Updated version information and tightened argument checks for logging functions on 64 bit and 32 bit systems
2025-12-31 19:07:32 +00:00
Mike Brady 16b6534ad3 further changes to remove compilation warnings on 32-bit builds 2025-12-31 19:02:16 +00:00
Mike Brady d7f8816630 Merge branch 'development' of github.com:mikebrady/shairport-sync into development
ONline documentation update...
2025-12-30 18:52:15 +00:00
Mike Brady 3d148f026a Move to -Wformat=2 checking in Linux 2025-12-30 18:52:01 +00:00
Mike BradyandGitHub 2c4c7a91dd Update RELEASENOTES-DEVELOPMENT.md 2025-12-30 18:25:25 +00:00
Mike BradyandGitHub 80c467c1ae Update release notes for version 5.0-dev-146
Tighten argument checks for debug-related functions to prevent errors or misdirections.
2025-12-30 17:32:25 +00:00
Mike Brady 691d71f356 More fixes due to tightening the checks on debug/die/inform/warn varadic arguments. 2025-12-30 16:56:30 +00:00
Mike Brady ceb1f804b6 Tighten warnings for format issues. 2025-12-30 15:09:04 +00:00
Mike Brady 3aa34cd712 fix lots of errors calling debug() with incorrect argument patterns. 2025-12-30 14:59:27 +00:00
Mike BradyandGitHub b5f1157c1c Update release notes for version 5.0-dev-142
Updated release notes for version 5.0-dev-142-gfcacc4e5, detailing various bug fixes and improvements related to AutoMix and AirPlay functionality and skipping tracks.
2025-12-22 18:11:40 +00:00
Mike Brady fcacc4e51f Update a couple of comments. 2025-12-22 17:55:26 +00:00
Mike Brady 775cdedfe9 Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Documentation update
2025-12-22 10:46:36 +00:00
Mike BradyandGitHub d6220cab9a Update RELEASENOTES-DEVELOPMENT.md 2025-12-22 10:39:49 +00:00
Mike Brady 9339c2154f Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Merge an error-return fix in audio_pa.c and a dependabot update.
2025-12-22 10:32:05 +00:00
Mike BradyandGitHub ec0016fb89 Merge pull request #2120 from mikebrady/dependabot/github_actions/development/docker/setup-buildx-action-3.12.0
Bump docker/setup-buildx-action from 3.11.1 to 3.12.0
2025-12-22 10:31:56 +00:00
Mike BradyandGitHub 754b4bc750 Merge pull request #2119 from bogdad/pa-no-lanency-yet-fix
audio_pa.c: pa_delay, return "No latency data yet" on PA_ERR_NODATA
2025-12-22 10:31:19 +00:00
Mike Brady 5d3829199b Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Update to use mbedtls V 3.
2025-12-22 10:29:57 +00:00
dependabot[bot]andGitHub 69d86e3a80 Bump docker/setup-buildx-action from 3.11.1 to 3.12.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.11.1 to 3.12.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.11.1...v3.12.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-21 10:04:23 +00:00
Vladimir c97efa1248 audio_pa.c: pa_delay, return "No latency data yet" on PA_ERR_NODATA 2025-12-20 21:21:13 +01:00
Mike BradyandGitHub 5f2c7161fd Correct capitalization in release notes 2025-12-20 16:40:30 +00:00
Mike BradyandGitHub 21c1135050 Update release notes for version 5.0-dev-100
Added release notes for version 5.0-dev-100, including a bug fix related to mbedtls library compatibility.
2025-12-20 16:40:06 +00:00
Mike BradyandGitHub a123888255 Merge pull request #2118 from bk138/development
mbedtls: use high-level PK API for signing w/ mbedTLS >= 3
2025-12-20 16:24:11 +00:00
Christian Beier 0ed6b5de08 mbedtls: use high-level PK API for signing w/ mbedTLS >= 3
They state in https://github.com/Mbed-TLS/mbedtls/blob/master/docs/3.0-migration-guide.md#remove-the-mode-parameter-from-rsa-functions
that the lower level API will not work as expected.

Closes #2115
2025-12-20 17:21:25 +01:00
Mike Brady 3d4c0e1d6d Turn a rejection of an 8-byte ALAC packet into a debug message only. Maybe the 8-byte packet is okay. 2025-12-16 10:21:37 +00:00
Mike Brady 1caaa38071 Quieten a few debug messages and simplify one of two. 2025-12-16 09:33:31 +00:00
Mike Brady 60278863ce Add some checks on cancelled deferred flushes and over-running immediate flushes. Quieten some other messages. 2025-12-15 12:50:10 +00:00
Mike Brady fb5b434f55 Quieten some debug messages. 2025-12-14 15:27:12 +00:00
Mike Brady 07b60e7112 1. Add the ability to work back through queued buffers to find the first buffer that’s older than the given one. This is to enable the replacement of deciphered buffers with buffers that arrive later but are timed earlier.
Added functions that relate to this are: get_revised_seqno() to wind back through the queued buffers and clear_buffers_from() to free buffers that are already occupied.
2. Clean up get_audio_buffer_size_and_occupancy() and replace it with get_audio_buffer_occupancy().
3. Add a new general setting: audio_decoded_buffer_desired_length_in_seconds for managing the size of the player buffer queue when the source is buffered audio. Default is 0.75 seconds so that we can step back up to that time if older buffers appear.
2025-12-14 10:17:38 +00:00