Skip to content

Releases: mikebrady/shairport-sync

Version 3.2d22 –– Development Version, Fix Airfoil latency bug

09 Jan 21:09
4499f63
Compare
Choose a tag to compare

Continuing the experiments with D-Bus and related DACP support.

Bug Fix

  • Fix timing error when using Airfoil as a source.

Version 3.1.7 – Stable Version. Bug fixes, better compatibility with iOS11/macOS 10.3.2

21 Dec 13:37
38f977f
Compare
Choose a tag to compare

Bug Fixes

  • In recent versions of iOS (11.2) and mac OS (10.13.2), when play is resumed after a pause, the volume level is not always restored, and, if software volume control is being used, Shairport Sync plays at full volume. This issue has been addressed by storing the last airplay volume setting when a play session ends and using it as a default when a new play session begins.
  • Better AirPlay synchronisation. Older versions of Shairport Sync added an 11,025 frame (0.25 seconds) offset to all the latencies negotiated with the sender. This seems now only to be correct for iTunes and ForkedDaapd sources, but incorrect for AirPlay sources. Accordingly, the offset is only added for iTunes and ForkedDaapd. The result is better sync with videos, e.g, YouTube, while iTunes and ForkedDaapd synchronisation is unaffected.
  • A bug in the hardware volume control affected output devices that have hardware mixers but that do not allow the volume to be set in dB. One example is the Softvol plugin in ALSA. Shairport Sync failed silently when presented with such a device when hardware volume control is enabled: the volume events have no effect. The bug has been fixed by adding two missing lines of code to the init() function in audio_alsa.c. Thanks to Jakub Nabaglo for finding and fixing the bug.
  • A number of bug fixes due to belboj. Many thanks for these!
  • Enhancements to the handling of quit requests by threads, thanks(again) to belboj!
  • (Fixed a silly bug in 3.1.5 prerelease.)

Other Stuff

  • Typo fix! Thanks to corbinsantin.
  • change version to 3.1.7 to synchronise the shairport-sync.spec file contents with the release.

Enhancement

  • The metdata output stream can include a dapo message carrying the DACP port number to be used when communicating with the DACP remote control. This might be useful because the port number is actually pretty hard to find and requires the use of asynchronous mdns operations. You must be using the Avahi mdns back end.

Version 3.2d20 –– Development Version, Fix silly segfault bug

13 Dec 23:56
845c468
Compare
Choose a tag to compare

Bug Fix

  • Fix silly seg-fault bug, activated when a DACP record was withdrawn.

Version 3.2d16 –– Development Version, Set correct Volume after Pause/Resume

09 Dec 20:50
c803a96
Compare
Choose a tag to compare

Bug Fix

  • In recent versions of iOS (11.2) and mac OS (10.13.2), when play is resumed after a pause, the volume level is not always restored, and, if software volume control is being used, Shairport Sync plays at full volume.

This issue has been addressed by storing the last software volume setting when a play session ends and using it as a default when a new play session begins.

Version 3.1.4 – Stable Version, Important Security Update

23 Nov 15:43
7d51c06
Compare
Choose a tag to compare

Security Update

  • The version of tinysvcmdns bundled in Shairport Sync has a buffer overflow bug: "An exploitable heap overflow vulnerability exists in the tinysvcmdns library version 2016-07-18. A specially crafted packet can make the library overwrite an arbitrary amount of data on the heap with attacker controlled values. An attacker needs send a dns packet to trigger this vulnerability." The vulnerability is addressed by additional checking on packet sizes. See also CVE-2017-12087 and Vulnerability in tinysvcmdns.
    Thanks and Chris Boot for fixing this bug.

Bug Fix

  • Somewhere in version 3.x, the softvol plugin got broken as the volume change is not applied anymore. Turned out that, for the softvol plugin, no volume() and parameters() are defined. Thanks to Jörg Krause for locating and fixing this bug.

Version 3.2d13 – Development Version, Important Security Update

23 Nov 15:51
30dd9ca
Compare
Choose a tag to compare

Security Update

  • The version of tinysvcmdns bundled in Shairport Sync has a buffer overflow bug: "An exploitable heap overflow vulnerability exists in the tinysvcmdns library version 2016-07-18. A specially crafted packet can make the library overwrite an arbitrary amount of data on the heap with attacker controlled values. An attacker needs send a dns packet to trigger this vulnerability." The vulnerability is addressed by additional checking on packet sizes. See also CVE-2017-12087 and Vulnerability in tinysvcmdns.
    Thanks and Chris Boot for fixing this bug.

Continuing experiments with D-Bus and MPRIS support. As before, please note that the implementation is likely to change greatly or be removed at any time.

Version 3.2d10 – Continuing D-Bus Experimentation

22 Oct 09:25
Compare
Choose a tag to compare

Continuing the experiments with D-Bus support, Shairport Sync can now be compiled to have a D-Bus presence on the D-Bus system bus. It presents a small number of properties and can execute a method call which sends a command string to the audio source's DACP port. As before, please note that the implementation is likely to change greatly or be removed at any time.

Enhancement

  • The metdata output stream can include a dapo message carrying the DACP port number to be used when communicating with the DACP remote control. This port number is actually pretty hard to find and requires the use of asynchronous mdns operations. You must be using the Avahi mdns back end.

Bug Fix

  • A bug in the hardware volume control affects output devices that have hardware mixers but that do not allow the volume to be set in dB. One example is the Softvol plugin in ALSA. Shairport Sync fails silently when presented with such a device when hardware volume control is enabled: the volume events have no effect. The bug has been fixed by adding two missing lines of code to the init() function in audio_alsa.c. Thanks to Jakub Nabaglo for finding and fixing the bug.

Other Stuff

  • Changed the debug verbosity level of some debug messages.

Version 3.1.3 – Stable Version. A fix for automatic startup on older System V based systems.

25 Sep 16:57
Compare
Choose a tag to compare

Bug Fix

  • Fixed a bug that prevented Shairport Sync from starting automatically on older systems using the System V startup system (e.g. Ubuntu 14.04). The problem was that the directory to be used – /var/run/shairport-sync/ – was deleted on power down and needed to be recreated on startup. In it's absence, Shairport Sync would not start and would report a mysterious daemon error (2).

Recent systems are unaffected.

Version 3.2d8 – Development Version

25 Sep 17:15
Compare
Choose a tag to compare
Pre-release

New Feature

This introduces a very experimental D-Bus interface to Shairport Sync. At present, in a very ad-hoc trial arrangement, Shairport Sync provides a system bus D-Bus service enabling a program to get and set Volume, to enable and disable the Loundness Filter and to get and set the Loundness Filter threshold (remember, BTW, the Loudness filter only works with software-based volume control). Please note that the implementation is likely to change greatly or be removed at any time. Tested on Ubuntu 16.04 and on Raspbian Stretch.
Two extra configuration options are provided: --with-dbus and --with-dbus-test-client. (BTW, the test client is never installed, merely compiled.)

Bug Fix

  • Fixed a bug that prevented Shairport Sync from starting automatically on systems using the System V startup system (e.g. Ubuntu 14.04). The problem was that the directory to be used – /var/run/shairport-sync/ – was deleted on power down and needed to be recreated on startup. In it's absence, Shairport Sync would not start and would report a mysterious daemon error #2.

Version 3.1.2 – Improvements in YouTube / Mac OS / SoundCloud handling

09 Sep 14:44
Compare
Choose a tag to compare

This release is recommended for all users. The big news is that the handling and stability of playback from sources like YouTube and SoundCloud on the Mac is improved considerably. Another change is how Shairport Sync uses hardware mute on alsa devices.

Pesky Changes You Should Not Ignore

  • When you update from a previous version of Shairport Sync, your output device may have been left in a muted state. You should use a command line tool like alsamixer or amixer to unmute the output device before further use.

Change of Default

  • The default value for the alsa setting mute_using_playback_switch has been changed to "no" for compatability with other audio players on the same machine. The reason is that when this setting is set to "yes", the output device will be muted when Shairport Sync releases it. Unfortunately, other audio players using the output device expect it to be unmuted, causing problems. Thanks to Tim Curtis at Moode Audio and Peter Pablo for clarifying the issue.

Bug Fixes

  • Fixed bugs that made Shairport Sync drop out or become unavailable when playing YouTube videos, SoundCloud streams etc. from the Mac. Background: there has been a persistent problem with Shairport Sync becoming unavailable after playing, say, a YouTube clip in a browser on the Mac. Shairport Sync 3.1.2 incorporates a change to how certain AirPlay messages are handled. Introduced in nascent form in 3.1.1, further follow-on changes have improved the handling of player lock and have simplified and improved the handling of unexpected loss of connection. Shairport Sync also now works properly with SoundCloud clips played in a browser on the Mac.
  • Using infer, a number of silent issues have been detected, such as not checking some calls to malloc to ensure the response is not NULL. Most of these have been addressed by additional checks.