* Mon Mar 23 2020 Hillwood Yang <hillwood@opensuse.org>
- Update version to 3.3.6
* Resampling has been added for the Jack Audio backend. This can be
used to up-sample to 192kHz.
* Fix bugs. Please refer to
https://github.com/mikebrady/shairport-sync/blob/master/RELEASENOTES.md#version-336
* Sun Jan 19 2020 Hillwood Yang <hillwood@opensuse.org>
- Update version to 3.3.5
* Fix a crashing bug if output format S24 was chosen.
* Fix a bug whereby if Loudness was enabled through the D-Bus interface, the
output would be muted until the volume was changed.
* Enhancements to the D-Bus Interface
* Fixes a deferred crash that occurred in Ubuntu 14.04
* Fixes a potential crash when an incomplete fmtp parameter set is sent by the
requesting client. Thanks to Angus71 for the fault report and for the
repair.
* Fixed a potential crash
* A fix ensures the hardware mixer of an alsa device is detected and
initialised before responding to the first volume setting.
* Fixes were made to the MPRIS and native D-Bus interfaces.
* Fixes an error whereby the 'pvol'volume metadata was no longer sent if
Shairport Sync was configured to ignore volume control information coming
from the audio source.
* Instead of returning EXIT_FAILURE, return EXIT_WITH_SUCCESS on early exit
with either "version" (–version or -V) or "help" (–help or -h) arguments.
Thanks to Henrik Nilsson for the patch.
* Normalises the 'pvol' volume outputs so that when both the software and
hardware attenuators are in use to extend the overall attenuation range, the
maximum output level corresponds to the maximum output level of the hardware
mixer.
* Add the option of including the file and line number of each log entry's
source.
* Rewrite the logic for identifying missing packets of audio and for asking
for resends.
* Expose the advanced settings controlling the resend request logic.
* Exposes two advanced metadata settings related to handling cover art
* Tue Oct 22 2019 Tuukka Pasanen <tuukka.pasanen@ilmi.fi>
- Update version to 3.3.2
- Bug Fixes
* Fix a bug that sometimes caused a crash when a service name was
specified in the configuration file. The fix was to be more
systematic in allocating and deallocating memory for temporary strings.
Thanks to Chris Boot, Ari Sovijarvi, Bernhard Übelacker and
Jeroen Massar for the bug report. Fixes Debian Bug report #925577
and supercedes Pull Request #879.
* Correct some documentation typos – thanks again to Chris Boot.
- Enhancements
* Add some settings for controlling the disable_standby_mode.
* The first setting is the disable_standby_mode_silence_threshold,
which is the amount of audio in the output device's hardware buffer.
It should normally be close to the value given in the
audio_backend_buffer_desired_length_in_seconds setting.
If it drops to this value, silence is added to the buffer to prevent
the output device from becoming idle.
* The second new setting is the disable_standby_mode_silence_scan_interval
which is the time between checks of the output device's hardware buffer.
* Mon Jun 24 2019 Hillwood Yang <hillwood@opensuse.org>
- Update version to 3.3.1
* Fix a bug in the MQTT documentation and add sanity checking for the port
chosen -- thanks to David Crook.
* Fix a bug that caused manual format and rate settings to be ignored --
thanks to Jörg Krause.
* Add missing support for format settings S24_LE, S24_BE, S32_LE and S32_BE.
* Fix a bug that caused dither to be too loud.
* Fix error message for invalid
* Automatic Format and Speed Selection for alsa devices. Using the alsa back
end, when you specify the output device, Shairport Sync will now, by
default, select the best output format and speed. For instance, if your
output device is capable of 32-bit operation, it will be selected. In some
situations, this will give a noticeable improvement in sound quality – see
the discussion of audio improvements below. The greatest bit depth will
always be selected, and the lowest speed that is a multiple of 44,100.
* Audio Transient Reduction: A Disable Standby feature to eliminate certain
faint-but-annoying audible pops and clicks has been added for alsa devices.
The setting prevents an output device entering standby mode and thus
minimises standby/busy transitions, which can sometimes be heard. It is
pretty impressive, especially combined with fixes to the dithering code
described below. If you can enable 24- or 32-bit audio output to your output
device, you can get even better results. This feature is available in the
ALSA back end (standard in Linux) when it is driving output devices that can
provide precision delay information, i.e. most hardware output devices and
possibly some virtual devices.
* New active/inactive program hooks. Basically, these are "deglitched"
replacements for play start/play end program hooks. When a play session
starts, the system goes active. When the play session ends, the system
remains active for a period determined by the active_state_timeout setting,
10 seconds by default. If another play session starts before the period
elapses, the system stays active; otherwise the system goes inactive. The
hooks are performed when the system goes active or inactive.
* A new MQTT client interface, with support for metadata and for some remote
control commands.
* A new Jack Audio back end.
* PulseAudio: A new option for the pa backend to allow the specification of
the audio sink.
* CYGWIN: An updated and enhanced installation procedure to install Shairport
Sync as a Cygwin service.
* Opt-in default for certain added features: If support for soxr, metadata or
the Apple ALAC decoder is included during building (i.e. at the ./configure
stage), then the features are enabled by default at run time. The features
are (1) soxr interpolation – chosen automatically if the device is fast
enough, (2) the Apple ALAC decoder and (3) metadata, which is implied when
you include support for metadata, D-Bus, MPRIS or MQTT features.
* Shairport Sync can now receive AirPlay streams consisting of raw PCM – 16
bit stereo frames at 44,100 samples per second. Packets must be 352 frames
exactly.
* Improved support for big-endian CPUs by adding support for explicit -endian
formats, i.e. S16_LE, S16_BE, S24_LE, S24_BE, S32_LE, S32_BE.
* Add a list of alsa hardware devices found to the alsa backend help section
in the shairport-sync -h text. (Linux only – doesn't work on
FreeBSD/OpenBSD.)
* Replace the existing watchdog, which only offered partial coverage, with a
much more robust thread-based watchdog.
* Allow a reported remote processing time of zero.
* Fix a logical error that could cause an endless loop during a flush.
* Ensure a player thread is correctly initialised before allowing it to be
cancelled cleanly.
* Ensure the player thread always has a cancellation point so that it should
always be possible to ask it to terminate.
* If a play session is interrupted, wait for it to terminate for up to three
seconds.
* If a play session is interrupted, ensure the new session uses a different
set of UDP ports. This is to ensure that data from the interrupted session –
which might be still in transit – doesn't enter the new session.
* Make all ALSA command sequences un-cancellable. This is to ensure that ALSA
subsystem will not be left in a partially-initialised state if Shairport
Sync terminates abruptly.
* When a connection is terminated abruptly, ensure that all the UDP ports is
use are closed properly.
* Impose timeouts on both reading and writing to the supervisory RTSP
connection governing a session.
* When closing the RTSP connection due to an error, close it immediately,
without waiting for a full TCP handshake, because, if the other end has
erred, the handshake may never come.
* Fix a parameter initialisation error in a situation where there is no
hardware mixer.
* Fix an MQTT-related crash by ignoring unrecognised commands.
* Fix a compilation error and a warning when using the --with-convolution
configuration option.
* A compilation problem in OpenBSD has been fixed by changing the order of
some include files.
* Fix a problem when calling the program to be run when the volume control is
changed. Thanks to shaven for the report.
* Remove unrecognised options from FreeBSD and OpenBSD compilation
instructions.
* Ensure the compiler flag HAVE_LIBSOXR is defined if the --with-soxr
configuration flag is used and pkg-config is in use.
* Fix a bug in the dbus native interface which would silently switch soxr
interpolation to basic.
* Fix a mutex lock bug in the metadata hub. No known effects.
* Fix an arithmetic overflow in frame rate calculations that could occur after
2^32 frames – approximately 27 hours at 44,100 frames per second.
* A number of memory leaks have been identified and removed.
* An incorrect warning about using the deprecated general statistics options
has been fixed.