Commit Graph
100 Commits
Author SHA1 Message Date
Mike Brady 11052b7896 Lot of changes here.
1. check_classic_mac_basic.yml — update to latest macOS-latest
2. docker-on-push-tag-or-pr — dependant updates
3. FFTConvolver — fix a compilation warning when the DEBUG flag is turned off
4. Reorganise some source files — e.g. move most of the metadata stuff into a subdirectory
5. Remove unused special-purpose AirPlay 2 RC event handler.
6. Reorganise source files and source code relating to the standard event handler.
7. Check configuration settings a little more carefully to offer more meaningful diagnostics.
8. Add password to AirPlay 2 and reorganise initialisation to set AirPlay 2 flags accordingly.  Also, remove redundant airplay_pin.
9. Remove redundant debug facility definitions from common.h
10. Make it possible to omit all the dacp stuff from a build.
11. Make it possible to omit metadata multicast from a build.
12. Add AP2-native metadata by setting bit 50 of features to true.
13. Improve stability when pre-empting an existing play session.
14. Fix a few compiler warnings in the pair_ap library.
15. Ensure that the audio format is known before starting synchronisation.
16. Improve handle_configure to set/clear a new config setting. Doesn’t seem to do anything…
17. Experimentally turn off bit 46 of AirPlay 2 features — seems to stop failing pair-verify attempts.
2026-04-26 10:23:18 +01:00
Mike BradyandGitHub e2bb272d93 Merge pull request #2160 from mikebrady/dependabot/github_actions/development/docker/setup-buildx-action-4.0.0
Bump docker/setup-buildx-action from 3.12.0 to 4.0.0 [skip ci]
2026-03-10 16:15:53 +00:00
Mike BradyandGitHub fda7b1bc4d Merge pull request #2159 from mikebrady/dependabot/github_actions/development/docker/build-push-action-7.0.0
Bump docker/build-push-action from 6.19.2 to 7.0.0 [skip ci]
2026-03-10 16:15:17 +00:00
Mike BradyandGitHub 06b45b7a92 Update release notes for version 5.0.1 [skip ci]
Added note about AirPlay 2 compatibility with classic password.
2026-03-10 16:14:52 +00:00
Mike Brady a14517d752 When built for AirPlay 2, add pw=true to the Bonjour raop properties if the classic AirPlay password is set. 2026-03-10 16:12:20 +00:00
Mike BradyandGitHub af6b3e1d2c Update release notes for version 5.0.1-11 [skip ci]
Updated version number and added changes related to debug messages and AirPlay password check.
2026-03-07 12:57:23 +00:00
Mike Brady 07546c353f Change a 0 to a NULL when checking for the presence of an AirPlay 1 password. Makes no difference but looks right, type-wise. 2026-03-07 12:53:25 +00:00
Mike Brady 9dd303ef5d Quieten some more currently-irrelevant debug messages. 2026-03-07 12:25:28 +00:00
Mike BradyandGitHub d44391b52e Update release notes for version 5.0.1 [skip ci]
Added details about bug fixes and changes in version 5.0.1.
2026-03-02 19:12:04 +00:00
Mike Brady b09fd40059 Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Online documentation updates.
2026-03-02 19:04:52 +00:00
Mike Brady 14c54b3a15 Defer rather than delete blocks of audio that are too far into the future and check for a valid clock. Silence a few irrelevant debug messages. 2026-03-02 19:03:58 +00:00
Mike Brady 57c3ec9ee4 Reset anchor information when pausing. Also silence some irrelevant debug messages. 2026-03-02 19:02:21 +00:00
Mike Brady ac2e5018d7 Make reset_ptp_anchor_info(conn) visible externally. 2026-03-02 19:01:07 +00:00
Mike Brady fb7de841b7 Silence some currently-irrelevant debug messages. 2026-03-02 19:00:31 +00:00
Mike BradyandGitHub 89e811757a Revise D-Bus client and modify debug message settings [skip ci]
Update D-Bus test client reference and adjust debug message levels.
2026-03-01 13:50:10 +00:00
Mike Brady 22f283fe8c Update the D-Bus test client to refer to shairport_sync_get_loudness_enabled rather than shairport_sync_get_loudness. 2026-03-01 13:44:21 +00:00
Mike Brady daa985e4e4 Turn off many currently-irrelevant debug messages by setting their level to 4, meaning they will never be displayed. 2026-03-01 13:43:11 +00:00
Mike Brady 8aa70695a2 5.0.1+ real beginning 2026-02-27 15:26:53 +00:00
Mike Brady 3e22a80371 Beginning 5.0.1-post 2026-02-27 15:17:22 +00:00
Mike BradyandGitHub a68da652d8 Merge pull request #2154 from mikebrady/dependabot/github_actions/development/actions/stale-10.2.0
Bump actions/stale from 10.1.1 to 10.2.0
2026-02-23 04:19:29 +01:00
Mike BradyandGitHub 788eebf029 Update D-Bus.md [skip ci] 2026-02-19 09:48:01 +00:00
Mike BradyandGitHub ea7dbbf3c0 Update D-Bus.md [skip ci] 2026-02-19 09:42:58 +00:00
Mike BradyandGitHub 4436558119 Update D-Bus.md [skip ci] 2026-02-19 09:41:44 +00:00
Mike BradyandGitHub 11152c6ded Update D-Bus.md [skip ci] 2026-02-19 09:32:11 +00:00
Mike BradyandGitHub 95a637417c Update D-Bus.md [skip ci] 2026-02-19 09:17:59 +00:00
Mike BradyandGitHub 531459eb75 Create D-Bus.md [skip ci] 2026-02-19 09:13:40 +00:00
Mike BradyandGitHub 0435f7407b Update sample dbus commands [skip ci] 2026-02-19 08:34:49 +00:00
Mike BradyandGitHub c1e3c36732 Update release notes for MQTT client changes [skip ci]
Added information about the deprecation of 'object_id' and its replacement with 'default_entity_id' in the MQTT client configuration for Home Assistant. Noted that 'object_id' will be removed in a future release.
2026-02-17 09:40:42 +00:00
Mike BradyandGitHub 5893eabfbc Merge pull request #2148 from reitermarkus/patch-1
Fix Home Assistant deprecation warning.
2026-02-17 09:29:30 +00:00
Mike Brady 0c1b083c65 Remove requirement for the mosquitto service to be running when built with the --with-mqtt-client flag. 2026-02-17 09:13:26 +00:00
Mike Brady 3888999dc4 Remove requirement for the mosquitto service to be running when built with the --with-mqtt-client flag. 2026-02-17 09:01:28 +00:00
Mike BradyandGitHub f0875e90cd Merge pull request #2147 from mikebrady/dependabot/github_actions/development/docker/build-push-action-6.19.2 [skip ci]
Bump docker/build-push-action from 6.18.0 to 6.19.2
2026-02-15 14:13:45 +00:00
Mike BradyandGitHub a4cce72b7f Add release notes for version 5.0-post-dev-6 [skip ci]
Added release notes for version 5.0-post-dev-6, including a fix for missing `const` type qualifier and related warnings.
2026-02-15 08:16:41 +00:00
Mike Brady d32d5cb9d5 Fix warning of dropping 'const' signifier. 2026-02-15 08:13:44 +00:00
Mike BradyandGitHub d8fc3cd6f3 Merge pull request #2146 from heitbaum/patch-1
fix handling of missing const type qualifier
2026-02-15 08:05:32 +00:00
Mike BradyandGitHub 6edef9b250 Update release notes for version 5.0-post-dev-1 [skip ci]
Updated release notes to reflect version 5.0-post-dev-1-g963380a8 and added details about MQTT enhancement.
2026-02-14 18:38:22 +00:00
Mike Brady b349268194 Small typo fixes [skip ci] 2026-02-14 18:35:07 +00:00
Mike BradyandGitHub 963380a832 Refactor Docker workflow for tag handling 2026-02-14 12:40:23 +00:00
Mike Brady d6275eafef Bring some changes in from V5.0 release. Start using 'post-dev' to avoid ambiguity. 2026-02-14 12:23:46 +00:00
Mike BradyandGitHub 0a3173f95b Delete REPORTING ISSUES.md [skip ci] 2026-02-14 11:47:52 +00:00
Mike BradyandGitHub ee4728bf52 Delete MAKING PULL REQUESTS.md [skip ci] 2026-02-14 11:47:23 +00:00
Mike BradyandGitHub 8f46b853bb Update workflow name for clarity 2026-02-14 10:53:16 +00:00
Mike BradyandGitHub bcd81c1db5 Add workflow to set variables for Docker build [skip ci] 2026-02-14 10:48:38 +00:00
Mike BradyandGitHub e48a84133a Enhance Docker workflow for tag handling [skip ci]
Updated Docker workflow to include latest and classic tags for branches and tags.
2026-02-14 10:47:24 +00:00
Mike Brady be62f9a05a PR template [skip ci] 2026-02-14 10:28:22 +00:00
Mike BradyandGitHub 8325213c86 Create pull request template for contributions [skip ci]
Added a pull request template to guide contributors in submitting changes.
2026-02-14 10:19:05 +00:00
Mike BradyandGitHub 906fa773da Fix link formatting in README.md [skip ci] 2026-02-13 16:03:47 +00:00
Mike BradyandGitHub 771f8955a5 Add update note for release changes [skip ci]
Added a note about checking release notes for breaking changes when updating.
2026-02-13 16:03:22 +00:00
Mike BradyandGitHub cb28256662 Fix link to Version 5 Configuration File Changes guide [skip ci]
Updated the link for the Version 5 Configuration File Changes guide to point to the correct document.
2026-02-13 15:58:13 +00:00
Mike BradyandGitHub 107ed31a9a Update BUILD.md with configuration changes guide [skip ci]
Added a guide link for Version 5 configuration file changes.
2026-02-13 15:57:35 +00:00
Mike BradyandGitHub e2c247cd33 Document configuration changes for Version 5.0 [skip ci]
This document outlines the significant changes to the `shairport-sync.conf` configuration file for users upgrading to Version 5.0, including new features, settings, and recommendations for optimal use.
2026-02-13 15:55:25 +00:00
Mike BradyandGitHub f84f057a4c Fix link to Version 5 Configuration File Changes [skip ci]
Updated the link for the Version 5 Configuration File Changes guide.
2026-02-13 15:52:04 +00:00
Mike BradyandGitHub 956a6869fd Update README with AirPlay 2 and metadata details [skip ci]
Added information about AirPlay 2 capabilities and metadata support.
2026-02-13 15:50:53 +00:00
Mike BradyandGitHub 82079e34b8 Release version 5.0 with major enhancements [skip ci]
This major release introduces multi-channel audio support, high-resolution playback, and various performance improvements. It also includes important breaking changes, new features, enhancements, bug fixes, and updates to documentation.
2026-02-13 15:48:55 +00:00
Mike Brady 15a0c6b1e3 RC0 [skip ci] 2026-02-13 15:46:37 +00:00
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
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
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
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
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
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
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
Mike Brady ee56f778fd Remove redundant (?) calls to 'prepare_decoding_chain()'. 2025-12-11 16:44:16 +00:00
Mike Brady 7848e88b81 Set the type to '96' for Classic compatibility mode. Quieten some debug messages. 2025-12-11 15:34:12 +00:00
Mike Brady bc384466e0 Set the AirPlay type to ap_1 and the timing type to ts_ntp when you get an ANNOUNCE to signify a Classic AirPlay session has been started. 2025-12-11 11:03:18 +00:00