Commit Graph
323 Commits
Author SHA1 Message Date
Mike Brady c433e2e87d Add in code to detect the iOS 16 discontinuity but not to do anything about it. Delaying everything by 2112 frames after the discontinuity removes it, but the result seems to be that playback is delayed by 2112 frames. One approach would be to advance everything prior to the discontinuity by 2112 frames, but that would require checking what version of software the source was using, so hardly worth the trouble. 2022-09-23 17:02:26 +01:00
Mike Brady c6bb33dcaf Roll back fix for extra frames -- it fixes sync issues but introduces transients or glitches. Not nice. 2022-09-22 18:19:46 +01:00
Mike Brady b19dd9e93c Skip the out-of-date frames at the start of a session in AirPLay 2 Buffered Streams in iOS 16.0 / Ventura beta / iOS 16.1 beta. Only skip two blocks to avoid AAC transients and substitute silent for them. 2022-09-22 16:28:51 +01:00
Mike Brady cae9492d0a Add in, but comment out, some code to investigate discontinuities in timestamps of audio coming from iOS 16.0 devices. Also clean up code to supress initial AAC transients when skipping or scrubbing. There must be a nicer way to do this. 2022-09-16 20:02:32 +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 a617e607cb Wait for a longer period for a realtime control packet before concluding that the sender is gone. Also, don't exit if the packet is empty. Also check minimum packet size. 2022-08-31 12:55:42 +01:00
Mike Brady 174556f054 Remove a few causes of "possibly uninitialised" warnings. 2022-08-16 09:26:35 +01:00
Mike Brady de8df93471 Comment out an unused variable. 2022-08-08 12:19:04 +01:00
Mike Brady 3cc1ec6abc reset anchor time if realtime control message is missing. 2022-08-03 12:55:59 +01:00
Mike Brady 524a8a1203 Quieten a debug message. 2022-07-14 11:04:02 +01:00
Mike Brady 623b760ba5 Reinstate the 5.0 second settling time for a clock change. 2022-07-09 09:55:28 +01:00
Mike Brady 6bfeb49fba Reduce the settling time given for a change in master clock from 5 sec to 0.75 sec. 2022-07-08 15:18:25 +01:00
Mike Brady f551274a2e Set the initial volume to 0.0 (full volume) if ignore_volume_control is selected. Add some code to explore remote_control. Still not even close to working. 2022-06-25 10:47:18 +01:00
Mike Brady fb151915ae Tidy up write encrypted. Explore some of the remote_control connections. Not working. 2022-06-23 09:40:30 +01:00
Mike Brady 6556a79dbc Fix a bug that caused SPS to stop if another speaker with its own master clock (e.g. a HomePod mini) was included and then removed from the output group. 2022-06-19 13:13:09 +01:00
Mike Brady 3d9d9757ce Add a const qualifier 2022-06-09 07:57:51 -07:00
Mike Brady 953b09560c Remove the unnecessary fltp capability test; it should have been done at startup. 2022-05-24 15:20:54 +01:00
Mike Brady 645e17749e Turn off AAC decoder checker. 2022-05-24 13:31:28 +01:00
Mike Brady a1dabd79a7 Remove check for AAC decoder. 2022-05-24 10:17:01 +01:00
Mike Brady 2177daec13 Remove misleading (obselete) comment. 2022-05-22 15:36:39 +01:00
Mike Brady 086acbe5a4 Check that the AAC decoder can do fltp decoding. Need to do more of this kind of checking at startup! 2022-05-22 11:32:36 +01:00
Mike Brady 00bc837bef quieten some debug messages. 2022-05-17 17:50:46 +01:00
Mike Brady 3b4a21f002 Quieten some debug messages. Remove some redundant code. 2022-05-17 15:49:01 +01:00
Mike Brady aedc83978f A little more debug information. 2022-05-17 13:51:29 +01:00
Mike Brady 8a2756b7f0 Greatly simplify dealing with a new anchor clock -- basically, accept a new anchor clock immediately, without delay. A new master clock is accepted after 5 seconds. If the anchor clock changes as it may in a realtime stream, it will change within one second of the master clock, and the 5 second delay will be skipped. Discard the first two seconds of audio within the first two seconds of a connection being made. This is to allow the clocks to settle and stabilise. Debug message changes. 2022-05-14 19:05:38 +10:00
Mike Brady 1dc481c3d3 Clean up some of the code for accepting or diacarding buffered audio depending on its timeliness. 2022-03-16 12:38:05 +11:00
Mike Brady a382ac6672 Clang Format 2022-03-14 11:56:43 +11:00
Mike Brady 424c376b86 Remove a diagnostic setting. 2022-03-14 11:53:48 +11:00
Mike Brady 3c27849328 Quieten two debug messages. 2022-03-13 13:29:55 +11:00
Mike Brady 08afa822f5 Add buffer size to statistcs information for a Buffered Audio stream. 2022-03-13 12:33:53 +11:00
Mike Brady 2706a62304 Fix a diagnostic message. 2022-02-28 18:00:25 +11:00
Mike Brady e07c202b76 Quieten a compiler warning -- might not work. 2022-02-07 12:37:49 +00:00
Mike Brady c37f511319 Check certain 64-bit and 32-bit conversions. 2022-01-30 16:51:01 +00:00
Mike Brady 8d3bbe225b Discard non-sentinel packets at the start of a Realtime play -- they might belong to the previous session. 2022-01-28 11:14:52 +00:00
Mike Brady deb11654ab Add some sanity checking of latency-affecting settings. 2022-01-24 10:17:07 +01:00
Mike Brady 703717a58a Reset the realtime clock information when a realtimne stream play terminates. 2022-01-23 10:04:04 +01:00
Mike Brady 59d92db39f Improve a few debug messages. 2022-01-01 19:01:20 +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 8656149d68 Adjust the time needed to allow the clock to settle and the lead time. 2021-12-21 15:32:16 +00:00
Mike Brady 2e6eb23a04 Wait for 300 secodns before complaining about the age of a sync. 2021-12-21 15:03:28 +00:00
Mike Brady 6f7e894777 Set the minimum bus mastership time to two seconds. Turn on a debug message. 2021-12-20 12:15:59 +00:00
Mike Brady b938064bae Add client and server ip metadata for AP2. Remove timing peer list and DACP code only for a full AP2 teardown. 2021-12-07 21:34:53 +00:00
Mike Brady 3de7e9a5c5 Look for at least 0.1 seconds of leadtime, ensure a master clock is at least 0.275 seconds old before use, quieten a few debug messages. 2021-12-07 12:09:49 +00:00
Mike Brady 70821f8127 Clang Format 2021-12-06 18:45:25 +00:00
Mike Brady 0b21373c0e Skip some invalid AAC packets, don't decode outdated frames, wait for timing information to be valid. 2021-12-06 18:13:20 +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 14bfba2724 Add code to check divisions and mods for a potrntial divide by zero problem. MAy cause SPS to terminate but leave a log message. 2021-11-21 21:47:32 +00:00
Mike Brady c0a3dacf30 Working to check for divide / mod by 0's 2021-11-17 10:35:21 +00:00
Mike Brady 5c418702d6 Quieten some debug messages. 2021-09-29 10:08:22 +01:00
Mike Brady 1438216878 Add full teardown actions to RTSP stream cleanup to correctly close all connections. 2021-09-12 15:24:48 +01:00