Commit Graph
41 Commits
Author SHA1 Message Date
Mike Brady 3aa34cd712 fix lots of errors calling debug() with incorrect argument patterns. 2025-12-30 14:59:27 +00:00
Mike Brady 60143518c2 This squashed commit comprises a long series of improvements, bug fixes, optimizations, and new feature additions:
- 48,000 frames per second operation,
 - 48k lossless stereo, 5.1 and 7.1 surround sound
 - Multichannel and multi rate operation on ALSA, PipeWire, PulseAudio, FreeBSD, stdout and unix pipe output backends.

Automatic, flexible and controllable output format (rate, sample format and channel count) selection.

Full FFmpeg integration to support transcoding, resampling, and new audio formats.

Better operation on lower powered devices down to e.g. Raspberry Pi B.

Reduced Docker image sizes with a slimmed-down FFmpeg library.

Enhanced timestamp handling for better synchronization.

Improved the sync error calculation.

A new "vernier" resampling and interpolation method for low-power CPUs.

Bug fixes and minor enhancements.

Note -- there are many breaking changes from previous versions of Shairport Sync!
2025-02-23 13:31:17 +00:00
Mike Brady 03d291f464 Second attempt. Modify the generation of the 12-digit classic AirPlay service name prefix so that it depends on the service name as well as the hardware address. 2022-11-17 10:31:51 +00:00
Mike Brady dfcc4e377a Revert the change to the 12-digit calculation 2022-11-16 16:45:37 +00:00
Mike Brady fc117e7302 Modify the generation of the 12-digit classic AirPlay service name prefix so that it depends on the service name as well as the hardware address. 2022-11-16 14:25:53 +00:00
Mike Brady f5e21ade64 clang 2021-09-01 16:53:14 +01:00
Mike Brady 2ab97d980e add a simple mdns_update 2021-07-19 17:10:51 +01:00
Mike Brady a109b587ec Flush seems to be working properly and reliably. Some audio glitches removed too by dropping the first two AAC blocks of any passage. Crude. Flush diagnostic linked list stuff left in place. 2021-05-30 11:17:06 +01:00
Mike Brady e1034e1131 Advertise the _raop._tcp service as well as the _airplay._tcp service. Use a real MAC as the basis for the device ID. 2021-05-24 12:07:05 +01:00
Mike Brady 3a02b79a62 Update the mdns stuff to work with a string, update audio_alsa rtp.c, rtsp.c and shairport.c to build and work in AirPlay 1 but with AirPlay 2 code in place. Some of it is #defined out. 2021-04-30 09:29:30 +01:00
Brian Olsen f21b5faf52 Fix the build on macOS 2019-05-02 17:12:35 +02:00
Mike Brady 3162977c71 make mdns-external-avahi a conditional compilation 2019-02-05 09:45:16 +00:00
Mike Brady d54025486a Include the mdns_external interface even if avahi is not included. 2019-02-04 16:58:55 +00:00
Mike Brady 72079adaf4 Initial shot at tidying up the avahi monitoring for DACP Id port information to make it survive abnormal temrination of play sessions. 2018-12-08 21:55:49 +00:00
Mike Brady c9b3d2a2f4 Many changes to compilation and linking flags. Stop using HAVE_* flags except where necessary, use CONFIG_* for optional stuff, use HAS_* for immediate definitions, use USE_* for AM definitions. Probably introduced bgs, sigh. 2018-09-09 20:41:31 +01:00
Mike Brady 8a5a29e2c2 Move to using pthread_cancel in place of pthread_kill -- due to a problem in CYGWIN, but the move makes the code simpler and more rugged. Tidy up the code a bit and remove a clobbering warning. 2018-05-17 10:29:59 +01:00
Mike Brady 7d0eb37958 Move to using pthread_cancel in place of pthread_kill -- due to a problem in CYGWIN, but the move makes the code simpler and more rugged. 2018-05-17 10:16:44 +01:00
Mike Brady 75041c52cd quieten message when dacp scanner does down 2018-04-16 19:19:32 +01:00
Mike Brady 9e944e4050 Allow for an actual NULL DACP-ID string 2018-04-11 09:55:12 +01:00
Mike Brady 08a7d4ffb5 Use snprintf in place of sprintf. 2018-04-08 15:36:05 +01:00
Mike Brady 32c7a535a1 Make scanning for DACP port part of the dacp handler. Only emit 'clip' and 'svip' for a play connection, suppress 'pfls' until 'pffr' has been emitted 2018-03-31 17:34:59 +01:00
Mike Brady af50e91232 Intermediate 2017-12-02 16:21:46 +00:00
Mike Brady d343a851c0 Some spring cleaning using clang-format 2017-10-05 17:48:24 +01:00
Mike Brady 139c18bf3e Add avahi code to look for the rmeote control information for the client and get the port number from it. 2017-10-05 17:39:32 +01:00
Mike Brady 064bd293c5 Tidy up with a clang-format 2016-09-11 10:35:53 +01:00
Mike Brady 8896bd1026 rename apname to service_name 2016-05-21 13:05:31 +01:00
Mke Brady 87a0475c16 Reformat using clang-format. 2015-06-01 23:16:50 +01:00
Mike Brady d2024aa718 Fix harmless memory leak 2015-02-26 00:17:59 +00:00
Mike Brady f64f598275 Completely remove entries for mDNS backends that are not included. 2014-09-07 12:33:54 +01:00
Mike Brady 8207b8823d Add support for removing tinysvcmdns 2014-08-24 16:17:14 +01:00
Paul LietarandJames Laird ce77feecef Add a new mDNS backend which uses mDNSResponder
This backend uses mDNSResponder, like the external-dns-sd one. However,
this one uses the dns-sd library instead of relying on an external
program.
2013-10-22 10:33:41 +11:00
Paul LietarandJames Laird 592119bc4d Add a new mDNS backend based on tinysvcmdns
This backend allows shairport to run without having a heavy daemon such
as avahi or mDNSResponder running in the background.
ipv6 support is more or less experimental right now.
2013-10-22 10:33:41 +11:00
Paul LietarandJames Laird 958fceb60a Add a command-line option to force the mDNS backend
Add this option to the system-v init script.
2013-10-22 10:33:41 +11:00
Paul LietarandJames Laird 3896909080 Reorganize mDNS advertisement
mDNS is now handled more or less in the same way audio is.
Multiple mDNS backends are available, shairport tries them all until one
works.

This makes it, IMHO, cleaner, and easier to add other mDNS backends in
the future, such as using tinysvcmdns or dns-sd library.
Also it will also allow to define mDNS backends as plugins, in a similar
way it is done in PR #230.
2013-10-22 10:33:41 +11:00
James Laird f6eddb84fd add native avahi-client support
requires extra packages on some systems, eg. libavahi-client-dev on
Debian/Ubuntu.
2013-06-04 01:31:46 +10:00
James Laird 8259ae60e8 die/warn functions now have implicit newline at the end 2013-06-04 00:30:17 +10:00
James Laird c5b1f979e4 mdns: die iff the MDNS advertising process dies
and not if any other child does!
2013-06-04 00:26:55 +10:00
James Laird 98da1d2f66 whitespace fixes 2013-05-14 09:14:27 +10:00
James Laird e736802ee1 mdns: NULL-terminate argv lists 2013-04-01 22:57:46 +11:00
James Laird cf8401dbc8 Add copyright notices. 2013-04-01 21:57:11 +11:00
James Laird 04b142dbe3 rewrite: add mDNS registration 2013-04-01 20:08:05 +11:00