Commit Graph
393 Commits
Author SHA1 Message Date
Mike Brady 27faeaf696 Squashed commit of the following:
Use a  gentler flush process for resyncing.
    Potentially fix a flaw in resyncing. The problem was that a flush is set up but not triggered.
    Open metadata and audio pipes with 666 permissions for easier integration with other audio sources to give them permission to write to the audio pipe later.
    Ensure metadata and cover art are enabled if metadata support is included at compilation.
    Reword some misleading error messages.
    Set convolution defaults even if no configuration file is found.
    Quieten a few debug messages.
2020-08-21 10:43:09 +01:00
Mike Brady 492d81d7bd Extra check for leading zeros in the DACP ID received in an RTSP packet 2020-07-10 09:51:56 +01:00
Mike Brady 2519f600dc 3.3.7rc0 2020-07-06 17:10:04 +01:00
Mike Brady 02224666da Squashed commit of the following:
Don't use strndup as old versions of OpenWrt don't seem to have it
    Update FREEBSD.md
    Fix comparison between old and new metadata strings by checking they have equal lengths as well.
    Remove a redundant definition to prevent use on an uninitialised copy, clean up some of the less-used backends
    Remove some unwanted and unused variable declarations from audio_dummy.c and audio_soundio.c
    Add the -fno-common flag to compilation.
    Treat the "mper" attribute as the 64-bit item that it is rather than a 32-bit item as hithereto. Output it as a hexadecimal number to correspond with the format of the track id obtained from AppleScript
    Make changes to that it compiles under gcc-10 with -fno-common
    Add a SIGCHLD handler to reap zombie processes generated after script invocations where wait_for_completion is set to "no".
    Update and rename CONTRIBUTING.md to REPORTING ISSUES.md
    Add a few more commands and clarify some text.
    Change from talking about a server to talking about a client. Technically, e.g. iTunes is a client of Shairport Sync.
    Store the UserAgent so as to recognise forked-daapd so as to always send a revision_number of 1 when asking for playerstatus of forked-daapd.
    Add or update some of the copyright notices
    Add the ability to set the volume directly to the D-Bus RemoteControl interface and to the MPRIS interface. Both use the recently-discovered ability to set the device_volume.
    Merge in Pieter De Gendt's work on resampling on the jack backend.
    Merge pull request #939 from pdgendt/feature/jack-soxr-resampling
    Add SetAirplayVolume to the D-Bus RemoteControl interface.
    Add SetVolume to the MPRIS interface.
    Hook up the Volume property in the MPRIS interface.
    Modify RemoteCommand in the D-Bus interface to return the HTTP status and response.
    Change the type of airplay_volume from int to double in the metadata hub.
    Add a few sample commands in the D-Bus document.
2020-02-20 21:32:35 +00:00
Mike Brady 78c9331c2c Update sample D-Bus commands
Rename D-Bus LoudnessFilterActive property to Loudness and friends
Update sample D-Bus commands
Add D-Bus convolution filter controls -- enable convolution filters to be turned on and off or changed; enable convolution gain to be checked and changed; fix loudness control.
Fix D-Bus loudness switch silencing output. Rename LoudnessFiulterActive to Loudness. Add Convolution, ConvolutionGain and ConvolutionImpulseResponseFile properties to the D-Bus interface.
Bug fix: correct frame size entry for S24 format
2019-11-13 22:04:22 +00:00
Mike Brady c8ea68b8c8 Fix small compilation error in 3.3.3. 2019-10-28 08:59:50 +00:00
Mike Brady 54d1323851 Fix a compilation error and tidy up some messages. 2019-10-28 08:53:04 +00:00
Mike Brady 07e2e02f48 Bug fixes and minor enhancements 2019-10-27 09:51:59 +00:00
Mike Brady 3c78283c9f Updates from 3.3.1:
1. 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 and Jeroen Massar for the bug report. Fixes Debian Bug report #925577.

        2. Allow the rtsp_listen_loop to exit if the RTSP port (usually port 5000) is not available. This allows the system to exit cleanly rather than abort.

        3. Expose some of the settings used in the disable_standby_mode.
           The first setting 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.

        4. The code for generating frames of silence, which may be dithered, has been simplified.

        5. Pretty-print source files using:
             find . \( -name \*.cpp -or -name \*.h -or -name \*.c \) -exec clang-format -i -style='{BasedOnStyle: llvm, IndentWidth: 2, ColumnLimit: 100}' '{}' \;

        6. Change comments for use_precision_timing.
2019-07-26 11:26:22 +01:00
Mike Brady 9c54bfa991 *Bug Fixes*
* Fix a bug in the MQTT documentation and add sanity checking for the port chosen.
* Fix a bug that caused manual format and rate setting to be ignored.
* 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 standby mode choice.
2019-06-05 15:05:54 +01:00
Mike Brady 13fcd259c3 Merge branch 'development' 3.3rc7+ to 'master' 2019-05-24 16:42:23 +01:00
Mike Brady 4aea4cc5c6 Always use /etc/dbus-1/system.d for dbus policy documents in Linux, but continue to use the top-level directory path specified by the sysconfdir variable for *BSD 2019-05-12 15:40:40 +01:00
Mike Brady d36c5534b7 Update configure.ac 2019-05-11 11:01:46 +01:00
Till Zimmermann 60b9347a00 Fixed Cover Bug, checking dependencies 2019-05-09 11:59:02 +02:00
Mike Brady 47e36f228c Fix a stupid error in 3.3rc5. 2019-05-07 12:26:27 +01:00
Mike Brady 154e315cd9 Automatic rate and speed selection for alsa output devices. Better support for big-endian CPUs. Change "while_active" setting for "auto" in "disable_standby_mode" 2019-05-07 10:35:32 +01:00
Mike Brady fc1418fcc2 RC4, and remove code that always adds the commit signature -- not ready for its close-up yet. 2019-04-28 20:48:03 +01:00
Mike Brady 6cbaa15bdd Turn on the configuration flag for building soxr support in when the pkg_config is not available. 2019-04-15 17:07:34 +01:00
Mike Brady 6d088ac4d9 reinstate the development branch README.md, stop including libdaemon automatically, improve some erro messages concerning -k / -d options. 2019-04-05 16:21:58 +01:00
Mike Brady df95e7fb25 Improve the calculation of the length of the initial buffer of silence, to make it reasonably long in order to be better able to fill deep DAC buffers without underflow. 2019-04-02 14:26:39 +01:00
Mike Brady ff9c61302d Revert to snd_pcm_delay if an alsa output device does not provide timed delay updates and turn off disable_standby_mode in that case. Handle L16/44100/Stereo PCM streams. 2019-03-27 11:47:21 +00:00
Mike Brady 5dc4712406 show audio_backend_buffer_interpolation_threshold_in_seconds in debug messages, add active state start and end messages to MQTT, update man pages 2019-03-16 12:09:18 +00:00
Mike Brady 0341dea47e This is Release Candidate 0. 2019-03-04 14:28:00 +00:00
Mike Brady 0ef617924f fix active mode lockup problem, set defaults for active mode and disable standby. 2019-02-28 22:13:21 +00:00
Mike Brady 4f1608fcbd Fix a bug in the activity_monitor and add automatic bit-depth selection. 2019-02-26 15:24:49 +00:00
Mike Brady 623b9b4b9f Add a CYGWIN installer. 2019-02-21 16:10:30 +00:00
Mike Brady 78685b8528 Big update to audio_jack.c and other stuff 2019-02-19 11:13:17 +00:00
Mike Brady 10edce3452 Update configure.ac
Add `-u` option and improve compatibility with older `alsa` libraries.
2019-02-17 14:42:42 +00:00
Mike Brady 804e62d495 Hook up the active mode to the disable standby facility, enabling a 'while active' setting for it. Expose them to D-Bus. 2019-02-09 18:23:52 +00:00
Mike Brady 916edea5a1 remove dependency on libdaemon -- leave it in by default, but allow the new configuration option --with-libdaemon. 2019-02-05 15:13:16 +00:00
Mike Brady e76cfa69fe remove dependency on libdaemon -- leave it in by default, but allow the new configuration option --with-libdaemon. 2019-02-05 15:12:51 +00:00
Mike Brady 3162977c71 make mdns-external-avahi a conditional compilation 2019-02-05 09:45:16 +00:00
Mike Brady cb9a3076b7 New volume code, new mute code, fix cancellation memnory leaks, defer alsa device initialisation until needed. 2019-02-01 21:14:24 +00:00
Mike Brady 7639bfadbf Fix a number of memory leaks and one #include error when using the OpenSSL library. 2019-01-27 13:52:21 +00:00
Mike Brady eda674850f Add an "active" mode that can time out after a period -- 10 seconds by default -- after play ends. 2019-01-21 21:44:22 +00:00
Mike Brady a40a48693f make OpenSSL routines un-cancellable, in case there might be possible memory leaks on cancellation 2019-01-18 16:33:32 +00:00
Mike Brady 6c912d6ce5 Revise the code for retaining and freeing rtsp message memory allocations. Be more careful about cleaning up a possible message allocation when the rtsp channel is closed. Watch for overreleasing a message. 2019-01-13 10:20:26 +00:00
Mike Brady 1c40176468 CLean up timings, clean up DACP interface network timings and error behaviours. 2019-01-10 16:11:56 +00:00
Mike Brady 43a2813b8c Extensive changes to alsa delay() and play() -- recover from XRUN _after_ sending frames; doesn't work otherwise. Update soxr buffer threshold code. Improve missing libsoxr message. Fix syntax of progress metadata. Stop dropping YouTube metadata -- the indication it was invalid is unsafe. 2019-01-04 17:30:56 +00:00
Mike Brady 4f9730e3b2 Give a nice message if the soxr library isn't installed. 2019-01-04 13:47:44 +00:00
Mike Brady b973619d66 Using new delay() and play() functions. 2019-01-02 22:42:48 +00:00
Mike Brady b4505593b2 If output is stalled, don't write any more frames to the output device. 2018-12-31 17:46:31 +00:00
Mike Brady fbb381133e Fix some memory leaks, improve silence filling backoff time calculation, alwasy add a NUL to an RTSP message. 2018-12-27 14:05:48 +00:00
Mike Brady 4db9c117a2 use dither if using software mixer (i.e. no hardware mixer and not ignoring the volume control) -- fix a mistake in accounting for the ignore_volume_control setting. 2018-12-17 11:31:28 +00:00
Mike Brady e6c3ddb9bf Fix dither, add dither to silences during lead-in, interpolatied frames and keeping out of standby, only if the output device doesn't use a mixer. Check configuration at initialisation. 2018-12-14 15:07:38 +00:00
Mike Brady b0fe51788e Experimentally, add the ability to prevent the DAC making popping noises by feeding it with silence instead of allowing it to stop. 2018-12-13 14:48:21 +00:00
Mike Brady 3535863689 Cleaned up unfixable errors code and examples, updated configuration settings. 2018-12-11 11:28:08 +00:00
Mike Brady 697d654b41 Make the idle timeout on the RTSP link the same as the overall timeout -- 30 seconds is a bit short. Add checks to the alsa interface timing -- 15 ms to write a packet of frames, 1 ms to ask for the delay. 2018-12-08 14:13:04 +00:00
Mike Brady a2e7cb34fb The run_this_if_an_unfixable_error_is_detected script is definitely working and can restart the device. A sudoers entry is necessary to allow the shairport-sync user to 'sudo reboot --no-wall' without needing a password. 2018-12-06 14:46:57 +00:00
Mike Brady b071d39834 Ensure watchdog always starts with the starting time of the thread. Add watchdog bark count. On the third bark, execute an unfixable error script if present. 2018-12-04 17:25:40 +00:00