Commit Graph
246 Commits
Author SHA1 Message Date
Mike Brady 7c1a5fd0ba Add ability to send frame/time updates at intervals as metadata. 2022-11-26 15:56:25 +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 f775267d02 Remove the useless main_thread_id and fix the MPRIS quit handler. 2022-10-11 09:45:47 +01:00
Mike Brady fd880056fb Squashed commit of the following:
Add three parameters to the backend play() function call -- (1) a flag indicating whether the samples are timed or not. If timed, (2) the timestamp and (3) the local time at which the first frame should be heard.
    Update missing pipewire library message.
    Makefile.am fix.
    Update the SHM version and fix the SHM name so that it works with FreeBSD.
    Remove redundant (?) AC_HEADER_STDC check.
    Fix compilation and installation under FreeBSD -- changes to allow building in a separate directory broke the FreeBSD build process.
    Add AC_CHECK_LIB for gcrypt in case PKG_CHECK_MODULES fails to find it.
    Find gcrypt using pkg-config
    Add code to detect when the RTSP channel goes idle for a period, and use it to reset clocks and timings, etc. so that SPS resumes correctly where the source has gone to sleep while playing a realtime stream and has subsequently woken up.
    Don't exit if a UDP Clock Control packet is empty. Also check minimum packet size.
    Remove some very experimental code which may cause memory and port leaks.
    Strip file path from the filename used in debug messages, information messages, warnings and fatal error messages.
    BB fix to Makefile.am -- overwriting the DBUS stuff with MPRIS definitions, duh.
    Fix some problems building on FreeBSD and tidy up the use of the "sed" editor.
    Fix some problems building on picore.
    Fix an uninitialised variable
    start using the "nqptp" SMI
2022-09-12 15:19:52 +01:00
Mike Brady 4963c65a0e Fix the D-Bus quit method so that it works, duh. 2022-08-07 11:15:54 +01:00
Mike Brady 2dc6af2daf Partially clean up some mutex diagnostic stuff. 2022-05-18 19:37:18 +01:00
Mike Brady 3d720d65bf MQTT -- add code to deal with empty payloads by adding a dummy payload to empty messages by default. 2022-02-07 12:36:08 +00:00
Mike Brady 966d68bdec Begin to get SPS to give a unique shm interface name to nqptp. Also clang format 2021-12-27 12:19:01 +00:00
Mike Brady 035f41bdb4 Make the hw_addr 8 bytes long to that it can be read from as a 64-bit number. 2021-12-23 19:15:17 +00:00
Mike Brady 56bef8e7dd Use CLOCK_MONOLITHIC_RAW to avoid NTP effects, report raw and corrected timing from audio_alsa. Clean up statistics. Stop watchdog timing out AP2 sessions. CLean up some debug messages. 2021-11-28 16:08:48 +00:00
Mike Brady 04240708a9 Try using the monotonic clock for checking output rate... 2021-11-08 10:14:42 +00:00
Mike Brady d703314c06 Move group ID store to the conn. Fix the size of the groupContainsGroupLeader plist boolean store. 2021-09-01 10:28:30 +01:00
Mike Brady e098342185 remove a misleading obsolete comment. 2021-07-28 12:56:55 +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 e8e81a8b07 fix a couple of compilation errors. 2021-05-12 10:57:50 +01:00
Mike Brady 7ae72d795f add plist cleanup for pthread cleanup 2021-05-10 09:01:25 +01:00
ejurgensen f5cd4238f0 Announce the actual public key (pk) in Bonjour and GET /info
Same as other Airplay 2 devices do, even though it doesn't seem to be used
by any clients.
2021-05-07 19:26:48 +02:00
ejurgensen ba73111a6f Support for pair-verify 2021-05-04 20:38:35 +02:00
Mike Brady 796b7da07c Bringing across the extra AP2 components of common.h and common.c 2021-04-30 10:44:43 +01:00
Mike Brady 8a73d5972c rtp meged with lots of AP2 stuff still commented out. But it still works. 2021-04-29 15:04:50 +01:00
Mike Brady ca56287254 Make the first output backend in the list of backends the default and make its name the default output_name. Clang-format everything 2020-09-03 09:53:13 +01:00
Mike Brady 05beeaab22 Use exit() instead of abort() when a fatal error occurs, but skip the cleanup before exit, as this can cause trouble. 2020-06-22 10:16:37 +01:00
Mike Brady f5eceff6f7 Store clock drift information for each client based on its IP. This is stored in RAM, not on disk. Used at the start of a new session until new clock drift data is ready. 2020-06-11 12:09:55 +01:00
Mike Brady 5decc1bb06 Make the pipe, hub and mqtt separate threads with their own metadata queues. If one blocks, no new metadata is sent to it and the others are unaffected. 2020-05-30 15:49:00 +01:00
Mike Brady c0e5d0473e Add the ability to direct logs etc. to a file or pipe. 2020-05-28 12:19:59 +01:00
Mike Brady 6406c296f5 Add setting to direct logs to syslog, STDERR or STDOUT 2020-05-27 16:21:35 +01:00
Mike Brady 9e34b1334b Stop using home-brew non-blocking write. Instead, having opened the pipe non-blocking, change to blocking. 2020-05-27 15:02:49 +01:00
Mike Brady e8ef0e9371 rewrite the non_blocking_write to not use poll() and to return immediately if there is no reader at the end of the pipe. 2020-05-25 12:48:39 +01:00
Mike Brady 54d761ff7d Clean up some of the wording and layout of the configuration file
Clean up and improve the way lead-in sillence is used to give a more accurate sync time to the first packet of audio.
Allow very good sync to occur with 0.3 seconds of lead-in silence.
Improve the use of the buffer offset.
Format some other files.
2020-05-18 16:55:09 +01:00
Mike Brady 012dd26c77 Add the ability to set the silent lead-in parameters initial_period, minimum number of adjustments and adjustment interval, and give them sensible defaults. 2020-05-17 12:48:25 +01:00
Mike Brady a4edc649f8 Add code to do calculations involving the audio_backend_latency_offset_in_seconds and audio_backend_silent_lead_in_time settings correctly. Clean up the audio_backend_silent_lead_in_time setting by adding an "auto" setting. 2020-05-16 12:23:08 +01:00
Mike Brady 72d7153529 Fix calculation of latency -- honour the signs of the offset and account for the DAC buffer size. 2020-05-14 19:51:32 +01:00
Guillaume Revaillot aacc4e802b Allow to specify pulseaudio server instead of using default one.
Add "server" entry to pa config section, allowing to connect to a remote or a local system
pulseaudio instance instead of letting pulseaudio choose.
2020-03-27 09:39:11 +01:00
Mike Brady a6acb6062a If the DACP port is zero, do a zeroconf re-broswe every two seconds in case it has been missed. 2020-03-25 10:16:21 +00:00
Mike Brady 218a4385f4 Tidy up timed mutex messages. 2020-03-24 15:57:16 +00:00
Mike Brady e1028b2c89 Hide get_absolute_time_in_fp as it is now obselete 2020-02-25 15:56:53 +00:00
Mike Brady 67e9b1b6cd partial move to using a nanosecond-based system timer. More to come. 2020-02-24 19:40:44 +00:00
Mike Brady 820ee1c9f2 Add a call to get the time in nanoseconds. 2020-02-23 11:46:07 +00:00
Mike Brady 85ba78b619 More fixes to allow gcc-10 to compile without error 2020-02-13 17:57:30 +00:00
Mike Brady f771774519 Compiles under gcc-10 with -fno-common 2020-02-13 17:37:41 +00:00
Pieter De GendtandPieter De Gendt 32646f22e2 jack: Rename soxr "recipe" to "quality" and configurable buffer size 2019-12-23 09:10:08 +01:00
Pieter De GendtandPieter De Gendt 7285b1ee03 Jack output add soxr resampling 2019-12-03 10:02:22 +01: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 500b9ad020 3.3.3 from the development branch 3.3.3d11 2019-10-27 09:44:24 +00:00
Mike Brady aa57f06ce3 Move the retain_coverart definition to under a more appropriate compilation flag 2019-10-20 22:11:51 +01:00
Mike Brady 6c57ce97d5 Add two cover_art control settings -- the cache directory to use, (or the empty string to prevent caching) and a flag to retain all art work 2019-10-20 15:43:31 +01:00
Mike Brady 686fc2a5c1 Add missing frame status field, fix a bug with the first missing frame variable, expose the settings for resending, remove some commented out code. 2019-10-10 09:23:20 +01:00
Mike Brady e2294decb1 Squashed commit of the following:
commit 3dda7928b6df6ba7febc20f22faff5c8be024ef4
Author: Mike Brady <mikebrady@eircom.net>
Date:   Sun Sep 22 20:59:50 2019 +0100

    Update RELEASENOTES-DEVELOPMENT.md

commit 153eb84cff292bd127c516e6486ba9c1f9a3ce16
Author: Mike Brady <mikebrady@eircom.net>
Date:   Sat Sep 21 19:30:26 2019 +0100

    Update RELEASENOTES-DEVELOPMENT.md

commit b574d49b37f874cc7b91163a81fcb9dc6c760ef4
Author: Mike Brady <mikebrady@eircom.net>
Date:   Sat Sep 21 19:03:13 2019 +0100

    Update RELEASENOTES-DEVELOPMENT.md

commit bce0613283e233ddfa24d080adff3450b4ddd909
Author: Mike Brady <mikebrady@eircom.net>
Date:   Sat Sep 21 18:59:18 2019 +0100

    Update configure.ac

commit 7dc145361186806a560495d8171a387f5856f2f0
Author: Mike Brady <mikebrady@eircom.net>
Replace the code for determining when resends should be sent for missing audio packets.

Multiple sequential resend requests are now rolled up into one.

Should address Issue #865.
2019-09-22 21:04:07 +01:00
Mike Brady db8f10cfa1 add the option (normally on) of including the file name and line number of the originrating message in a debug log message 2019-09-17 12:14:55 +01:00