Commit Graph
100 Commits
Author SHA1 Message Date
Mike Brady c454867a04 Merge branch 'development' 2026-06-22 11:54:59 +01:00
Mike Brady 8846e27cf0 Update copyright notice in the man source file. 2026-06-22 11:43:17 +01:00
Mike BradyandGitHub 77efa15d16 Merge pull request #2220 from mikebrady/dependabot/github_actions/development/actions/checkout-7.0.0 [skip ci]
Bump actions/checkout from 6.0.3 to 7.0.0
2026-06-22 11:34:06 +01:00
Mike BradyandGitHub 486f0d7eb2 Update release notes with security bug fixes [skip ci]
Documented fixes for two security issues in pair_ap/pair-tlv.c and rtsp.c, including bounds checks and validation improvements. Acknowledged contributions from TristanInSec for reporting and fixing the issues.
2026-06-18 09:36:44 +01:00
Mike BradyandGitHub 3780b504a4 Merge pull request #2218 from TristanInSec/fix-tlv-dmap-oob-reads-v2
Fix Out-Of-Bounds reads and infinite loop in TLV and DMAP parsers.
2026-06-18 09:27:43 +01:00
Mike BradyandGitHub b4751a09ef Correct grammar in bug fix note for Classic operation [skip ci] 2026-06-14 15:28:12 +01:00
Mike BradyandGitHub 2ae38f797f Update release notes with new bug fix details [skip ci]
Added a new bug fix related to immediate flush and PTP clock anchor reset.
2026-06-14 15:27:29 +01:00
Mike Brady 0e6ca7b7b2 When an immediate flush is requested, reset the PTP clock anchor information immediately to disable clocking until play is resumed. 2026-06-14 15:21:11 +01:00
Mike BradyandGitHub 1e583f0a1e Merge pull request #2212 from mikebrady/dependabot/github_actions/development/actions/checkout-6.0.3 [skip ci]
Bump actions/checkout from 6.0.2 to 6.0.3
2026-06-13 13:18:52 +01:00
Mike BradyandGitHub b90af5ddeb Merge pull request #2209 from mikebrady/dependabot/github_actions/development/docker/setup-qemu-action-4.1.0 [skip ci]
Bump docker/setup-qemu-action from 4.0.0 to 4.1.0
2026-06-13 13:17:50 +01:00
Mike BradyandGitHub e7965bf3fa Merge pull request #2207 from mikebrady/dependabot/github_actions/development/docker/setup-buildx-action-4.1.0 [skip ci]
Bump docker/setup-buildx-action from 4.0.0 to 4.1.0
2026-06-13 13:17:17 +01:00
Mike BradyandGitHub 082f0f1db6 Merge pull request #2206 from mikebrady/dependabot/github_actions/development/actions/stale-10.3.0 [skip ci]
Bump actions/stale from 10.2.0 to 10.3.0
2026-06-13 09:57:16 +01:00
Mike BradyandGitHub 246d29d323 Merge pull request #2205 from mikebrady/dependabot/github_actions/development/docker/build-push-action-7.2.0 [skip ci]
Bump docker/build-push-action from 7.1.0 to 7.2.0
2026-06-13 09:56:52 +01:00
Mike BradyandGitHub 25ab1efb54 Merge pull request #2204 from mikebrady/dependabot/github_actions/development/docker/login-action-4.2.0
Bump docker/login-action from 4.1.0 to 4.2.0 [skip ci]
2026-06-13 09:55:51 +01:00
Mike BradyandGitHub 39da3d3cf2 Update AirPlay 2 service options in release notes [skip ci]
Enhanced AirPlay 2 build options and improved input format change delivery.
2026-06-03 14:55:28 +01:00
Mike BradyandGitHub 7b63cd1a14 Small wording changes [skip ci] 2026-06-03 14:52:34 +01:00
Mike BradyandGitHub b010314590 Small wording update [skip ci]
Clarified the description of the AirPlay 2 build enhancements, including command-line options and service types.
2026-06-03 14:47:42 +01:00
Mike BradyandGitHub 2c964e2f55 Update release notes for version 5.1-dev-17 [skip ci]
Added details about locale fixes in test clients for handling non-ASCII characters.
2026-06-03 14:46:49 +01:00
Mike Brady 9b16ff929e set locales in the test clients so that they can deal with non-ASCII characters, e.g. accented characters, properly.[skip ci] 2026-06-03 14:42:36 +01:00
Mike BradyandGitHub 1cbbeec584 Update release notes for version 5.1-dev-15 [skip ci]
Added bug fixes for race condition and compilation issue.
2026-05-30 23:24:13 +01:00
Mike Brady 2d89d2bff2 Fix a compilation bug in Classic build. 2026-05-30 23:21:55 +01:00
Mike Brady 191f06e7f7 Fix temporary patch. 2026-05-30 23:01:35 +01:00
Mike Brady 3e46eec634 In TEARDOWN, if it has a plist with a streams item in it, jist clost the player thread. If the plist exists but is empty, close the connection. 2026-05-30 22:58:36 +01:00
Mike Brady d6093b74b7 Enhance a debug message. 2026-05-30 22:55:03 +01:00
Mike Brady d9d3be5db5 Record unavailable even socket as -1. 2026-05-30 22:42:55 +01:00
Mike Brady e6c39aaefa Check for valid time information more completely. 2026-05-30 22:41:57 +01:00
Mike Brady 6003f8f978 Handle input_rate of 0 more correctly. 2026-05-30 22:40:52 +01:00
Mike Brady 090b609fe8 Undo a change that exposes a race condition. The race condition needs to be fixed first! 2026-05-30 16:59:23 +01:00
Mike BradyandGitHub b3c9e76023 Enhance AirPlay 2 service options in release notes [skip ci]
Updated the AirPlay 2 service options and clarified systemd service dependencies in the release notes.
2026-05-29 17:20:34 +01:00
Mike Brady e472cee76c After a teardown, ask the RTSP thread to terminate... and thus close everything down. 2026-05-29 17:13:17 +01:00
Mike BradyandGitHub f2ee95a3b7 Update user service script to check for non-root use and for PipeWire or PulseAudio services/ [skip ci] 2026-05-25 17:35:16 +01:00
Mike Brady e081e4a511 Fix compilation error when using older FFmpeg libraries. [skip ci] 2026-05-18 20:32:11 +01:00
Mike Brady 70245ad343 Another small update to the man page. [skip ci] 2026-05-18 14:35:30 +01:00
Mike Brady b7d23f622d Slight update of man page. [skip ci] 2026-05-18 14:29:35 +01:00
Mike BradyandGitHub cb7c1a0894 Update release notes for version 5.1-dev [skip ci]
Added enhancements for AirPlay 2 service options, Docker changes, and stability improvements.
2026-05-18 11:02:37 +01:00
Mike Brady efd93c5a54 5.1-dev 2026-05-18 10:29:08 +01:00
Mike Brady 157fe94d7d Merge branch 'development' of github.com:mikebrady/shairport-sync into development
include an online commit.
2026-05-18 10:26:18 +01:00
Mike Brady f30dd7aee6 Enhancements
Enable the AirPlay 2 build to operate an optional classic-AirPlay-only service or to gracefully degrade to classic AirPlay, as follows:
  1. Add a new command-line option '-—service-type=<type>' and an equivalent configuration entry 'service_type = "<type>"' in the 'general' section of the configuration file,
     where <type> can be "auto", "classic" or "airplay2":
      1. "auto" (default) means that the service will be AirPlay 2 if NQPTP is running. If NQPTP is not running, classic AirPlay service will be provided instead, and in that case,
      "(Classic)" will be appended to the default AirPlay service name visible to AirPlay clients like Apple Music, for example "RaspberryPi3B (Classic)".
      2. "classic" means the service will be classic AirPlay (aka AirPlay 1).
      3. "airplay2" means the service will be the modern AirPlay 2. In this case, as distinct from "auto", if NQPTP is not running, Shairport Sync will log an error and terminate.
  2. In the systemd service file, NQPTP is now a "Want" rather than a "Require". If it's present, then it will be launched before Shairport Sync. If it's absent, Shairport Sync will launch anyway.
  3. Improve the delivery of input format changes and emit 'sdsc' metadata when changes occur.
  4. Emit new format information in the log if statistics is enabled.

Docker Changes
  1. Support for linux/arm/v6 has been dropped, as Docker is no longer supported.
  2. NQPTP is not started in the AirPlay 2 Docker image if '--service-type=classic' or '--service-type=airplay1' is in the command line options at the end of the docker run command.
     The purpose is to ensure that ports 319 and 320 are left alone when the AirPlay 2 image is set to provide Classic service only.
     Note that setting the configuration file 'service_type' to 'classic' will not prevent NQPTP from starting up -- you must use the command line option.
  3. A new "dev" target has been added. It is a large image containing the custom-built FFmpeg library, NQPTP, Avahi and D-Bus along with the Shairport Sync source and
     all necessary development tools. When started, Avahi, D-Bus and NQPTP are all installed and running. The bash shell has also been added and is entered.

Stability Improvements
  Reorganise session preemption to fully terminate the existing session before starting a new one.
  Don't delay closing the event port to wait for it to be closed at the client end.
  Add a safe_socket_close() function to ensure sockets are fully closed. Use -1 to designate closed rather than 0, to prevent attempts to reclose sockets, causing mayhem.
  Re-order FFmpeg decommissioning during teardown.
2026-05-18 09:57:12 +01:00
Mike BradyandGitHub 0965077c0e Update PulseAudio and PipeWire documentation [skip ci]
Removed redundant information about user services and automatic startup of Shairport Sync. Added a link to the relevant section for starting Shairport Sync as a user service.
2026-05-13 15:12:28 +01:00
Mike BradyandGitHub 0bd9271ea9 Update MQTT and remote control features in README [skip ci] 2026-05-10 09:02:07 +01:00
Mike BradyandGitHub f0d40ee2a8 Clarify MPRIS and D-Bus interface descriptions [skip ci]
Updated descriptions for MPRIS and D-Bus interfaces to clarify functionality.
2026-05-10 08:53:12 +01:00
Mike BradyandGitHub 48559c45df Clarify D-Bus interface usage in Shairport Sync [skip ci]
Reorganize content for clarity regarding the D-Bus interface.
2026-05-10 08:25:44 +01:00
Mike BradyandGitHub 4a4c887bdc Update D-Bus documentation for remote control features [skip ci]
Clarified that Remote Control and Advanced Remote Control only work on Classic Airplay.
2026-05-10 08:25:16 +01:00
Mike BradyandGitHub 2ee523231f Revise bug fix details for Classic AirPlay Remote Control [skip ci]
Updated the bug fix section for Classic AirPlay Remote Control to clarify the issue and its resolution. Added additional details about the functionality of the AdvancedRemoteControl suite.
2026-05-10 08:18:26 +01:00
Mike BradyandGitHub 5175c19a0f Fix typo in RELEASENOTES-DEVELOPMENT.md [skip ci] 2026-05-09 18:15:56 +01:00
Mike BradyandGitHub 003e365aee Update release notes for version 5.0.5-dev-15 [skip ci]
Added release notes for version 5.0.5-dev-15, detailing bug fixes for Classic AirPlay Remote Control and enhancements for password settings.
2026-05-09 18:13:03 +01:00
Mike Brady 3cbc4b1899 Fix the incorrect signalling of the DACP port to the DACP monitor, send 'dapo' port info as text and send a token of "0" when the port becomes inaccessible. 2026-05-09 17:44:37 +01:00
Mike Brady d30493cbc4 Quieten a debug message. 2026-05-09 17:32:30 +01:00
Mike BradyandGitHub fd71a15dc8 Update release notes for version 5.0.5-dev-12 [skip ci]
Added details about password functionality for AirPlay and updated command line settings information.
2026-05-08 07:58:11 +01:00
Mike Brady 9d10249735 Update help information about password and stuffing modes. Quieten some debug messages. 2026-05-08 07:51:51 +01:00
Mike BradyandGitHub 2028639a03 Update release notes for version 5.0.5-dev-10 [skip ci]
Added enhancements for audio channel support and upmixing details.
2026-05-07 14:39:21 +01:00
Mike Brady 4b020a6b22 Clarify the mixdown comments. 2026-05-07 14:18:55 +01:00
Mike Brady a50eed043e Attempt to allow up to 31 channels of output, up from a limit of 8. Modify the mixdown setting so that "auto" only mixes downwards, e.g. 7.1 to 5.1, and never upwards, e.g. stereo to 5.1. Upmixing is not functional anyway, as the upmixing matrices are all such that the input channels are copied to their equivalent output channels and other output channels remain silent. 2026-05-07 14:06:00 +01:00
Mike BradyandGitHub 281fb34d57 Update release notes for version 5.0.5-dev-7 [skip ci]
Updated Docker images to use Alpine 3.23.4 and FFmpeg 8.1. Fixed benign compiler warnings from the updated compiler in Ubuntu 26.04.
2026-05-07 08:51:55 +01:00
Mike Brady 3a1bfd718a Update Docker images to use Alpine 3.23.4 and FFmpeg 8.1 2026-05-06 15:39:55 +01:00
Mike Brady 0e4bb2a8ff Quieten a compiler warning on Ubuntu 26.04. 2026-05-05 12:02:51 +01:00
Mike Brady eb82fa32b7 Fix an error if built without metadata support 2026-05-01 16:09:58 +01:00
Mike Brady 4f2a64fa39 Suppress am unused_result warning. 2026-05-01 16:09:02 +01:00
Mike BradyandGitHub befe1d4a1a Fix comment for systemd-dev installation command [skip ci] 2026-05-01 15:52:01 +01:00
Mike BradyandGitHub 052fd10acc Update release notes for version 5.0.5-dev-2 [skip ci]
Updated version number to 5.0.5-dev-2-g2400aae4 and clarified it as effectively 5.0.4-dev-9-g68b6d4df.
2026-04-27 13:23:40 +01:00
Mike Brady 2400aae44b Merge branch 'development' of github.com:mikebrady/shairport-sync into development
documentation update
2026-04-27 13:19:32 +01:00
Mike Brady 41a5cee654 5.0.5-dev 2026-04-27 13:18:57 +01:00
Mike BradyandGitHub 280e30ce78 Update release notes for version 5.0.4-dev-9 [skip ci]
Added bug fix for PulseAudio backend initialization issue.
2026-04-27 13:18:00 +01:00
Mike Brady 68b6d4dfb7 Fix missing configuration mapping parameter in PulseAudio backend initialisation. 2026-04-27 12:46:13 +01:00
Mike Brady eed1b9f0b9 Fix missing configuration mapping parameter in PulseAudio backend initialisation. 2026-04-27 12:43:51 +01:00
Mike BradyandGitHub 323fa1eee8 Update systemd-dev installation instructions in BUILD.md [skip ci]
Clarified instructions for installing systemd-dev and added a dry-run command for safety.
2026-04-27 09:48:44 +01:00
Mike BradyandGitHub 1431a1c529 Update BUILD.md with warning about systemd-dev [skip ci]
Added caution regarding installing systemd-dev on backported systems.
2026-04-27 09:44:03 +01:00
Mike BradyandGitHub 930e523757 Update instructions for systemd-dev installation [skip ci]
Added caution regarding installing systemd-dev on backported systems.
2026-04-27 09:42:49 +01:00
Mike BradyandGitHub c3443a13be Update version and add AirPlay 2 features [skip ci]
Updated version number and added new features related to AirPlay.
2026-04-26 11:22:27 +01:00
Mike Brady 936b838714 Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Online docmentation updates.
2026-04-26 11:00:35 +01:00
Mike Brady ec199d69ba Don't require plist library for Classic AirPlay rtsp message utilities. 2026-04-26 11:00:17 +01:00
Mike BradyandGitHub 9ab4fee926 Update release notes for version 5.0.4-dev-2 [skip ci]
Added new features, bug fixes, and other changes for version 5.0.4-dev-2.
2026-04-26 10:54:47 +01:00
Mike Brady 83de0207ac Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Small changes fixed.
2026-04-26 10:30:53 +01:00
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 Brady eba76c21af 5.0.4-dev 2026-04-25 11:33:40 +01:00
Mike BradyandGitHub 61f1730402 Update release notes for version 5.0.3 [skip ci] 2026-04-25 11:23:41 +01:00
Mike Brady 6ef48e59e6 5.0.3 2026-04-25 11:22:18 +01:00
Mike BradyandGitHub 06e824be0c Merge pull request #2192 from mikebrady/revert-2188-mqtt-inform-publish-errors
Revert "mqtt: promote publish-error log paths to inform() for debuggability"

This needs to be done to the `development` branch.
2026-04-20 10:10:36 +01:00
Mike BradyandGitHub 32458c08aa Revert "mqtt: promote publish-error log paths to inform() for debuggability" 2026-04-20 10:09:44 +01:00
Mike BradyandGitHub 4ecd42eda3 Merge pull request #2188 from harreh3iesh/mqtt-inform-publish-errors
MQTT: promote publish-error log paths to inform() for debuggability
2026-04-20 10:09:29 +01:00
Mike BradyandGitHub 2537e7ff85 Update release notes for version 5.0.3-dev-4 [skip ci]
Fixed an issue with getifaddrs() to prevent an uncancellable error.
2026-04-13 16:37:42 +01:00
Mike Brady 07ca1891da Make code using getifaddrs uncancellable to prevent a "Unexpected error 9 on netlink descriptor" error. 2026-04-13 16:31:32 +01:00
Mike BradyandGitHub 93a7aeff81 Merge pull request #2187 from mikebrady/dependabot/github_actions/development/docker/build-push-action-7.1.0 [skip ci]
Bump docker/build-push-action from 7.0.0 to 7.1.0
2026-04-12 12:18:25 +01:00
Mike BradyandGitHub b585f8c089 Update release notes for version 5.0.3-dev [skip ci]
Added version 5.0.3-dev release notes with small changes and build update.
2026-04-08 14:27:49 +01:00
Mike Brady 2474037b0c 5.0.3-dev and add some diagnostics around a pesky fault condition. 2026-04-08 13:56:23 +01:00
Mike Brady c62c34a67e Remove some debug messages. 2026-04-08 13:42:46 +01:00
Mike Brady d84c733380 Make the soxr delay checker thread behave better when being cancelled. 2026-04-08 13:07:56 +01:00
Mike Brady 0291d3656e Add warnings if string or boolean parameters were present but not strings. 2026-04-08 13:04:38 +01:00
Mike Brady a45bf3db01 Quieten a buffer empty debug message [skip ci] 2026-04-07 16:47:40 +01:00
Mike Brady ad8389be5d Fix a warning message. 2026-04-07 16:46:38 +01:00
Mike Brady 873a35c591 fix a couple of error messages 2026-04-07 16:13:36 +01:00
Mike Brady abede0a4f7 Improve behaviour when there is a large timing uncertainty/granularity and a largeish audio buffer. e.g. on a VM. 2026-04-07 16:12:40 +01:00
Mike BradyandGitHub b3b3a43cd2 Update release notes for version 5.0.1-38 [skip ci]
Removed Apple ALAC Decoder from AirPlay 2 build due to security issues.
2026-04-06 16:48:26 +01:00
Mike Brady f784e463e4 Don't allow the Apple ALAC decoder to be included in an AirPlay 2 build. [skip ci] 2026-04-06 16:36:57 +01:00
Mike BradyandGitHub 2edda96ac6 Update release notes for version 5.0.1-36-g6729802d [skip ci]
Updated release notes to reflect changes in version 5.0.1-36-g6729802d, including updates to the Shairport Sync systemd service file and a bugfix related to the UUID library requirement.
2026-04-06 13:18:27 +01:00
Mike BradyandGitHub 6729802d6f Merge pull request #2174 from mikelei8291/fix-systemd [skip ci]
Fix `systemd` unit options -- require NQPTP to be present and running before starting the AirPlay 2 build of Shairport Sync.

Many thanks!
2026-04-06 13:11:40 +01:00
Mike BradyandGitHub 9b8c56dcea Update RELEASENOTES-DEVELOPMENT.md for version 5.0.1 [skip ci]
Updated release notes for version 5.0.1, including bug fixes, documentation updates, and changes related to AirPlay 2.
2026-04-06 12:49:36 +01:00
Mike BradyandGitHub 20a87fefec Merge pull request #2183 from mikebrady/dependabot/github_actions/development/docker/login-action-4.1.0
Bump docker/login-action from 4.0.0 to 4.1.0
2026-04-06 12:41:35 +01:00
Mike Brady 0b0ffcc04b Remove an requirement for libuuid for FFmpeg and update some carelessly reused AirPlay 2 error messages to refer to FFmpeg. [skip ci] 2026-04-06 12:39:50 +01:00
Mike Brady 11d7fe6b8c minor debug message update. [skip ci] 2026-03-30 13:14:43 +01:00