Commit Graph
488 Commits
Author SHA1 Message Date
Mike Brady 26ce13d511 a slightly more rational clock handling regime, I hope. Wait for 400 ms when a clock becomes master. Wait five seconds when you get a new master clock. 2021-05-26 16:48:25 +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 77e70e497f tighten up on the availability of a clock before feeding audio into the player. 2021-05-16 13:02:19 +01:00
Mike Brady c645a03946 handle volume control requests in AP2 correctly. Don't reset timing peer lists when buffered audio is paused. 2021-05-15 12:18:37 +01:00
Mike Brady 4a0849b942 Fix a compilation bug and quieten a debug message. 2021-05-12 11:00:09 +01:00
Mike Brady e8e81a8b07 fix a couple of compilation errors. 2021-05-12 10:57:50 +01:00
Mike Brady 3f77994948 more closely check for time information being available. 2021-05-11 18:52:02 +01:00
Mike Brady 2b88215f09 Clean up some of the sync timing. Ignore a flush if playing AP2. Set the requested lead time to zero. 2021-05-11 10:46:56 +01:00
Mike Brady a563d5e847 Quieten some more debug messages. Fix a misleading clock status return. 2021-05-10 16:03:02 +01:00
Mike Brady 04c7f84564 Improve NQPTP clock diagnostics, tidy up some messages. 2021-05-10 14:16:57 +01:00
Mike Brady 829ea399fc Player thread always gains play lock and keeps ut until terminated. Clean up termination code, add extra diagnistic information and quieten some debug messages. 2021-05-10 09:37:42 +01:00
Mike Brady 953ad8ac14 Move AP2 player termination code from handle_teardown into the player cleanup function so that cancelling the player thread cleans up properly. 2021-05-08 17:46:13 +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 0aa3b3fee3 Return same pairing errors as other Airplay devices
- 470 on general errors
- TLV-formatet authentication error on incorrect PIN/signature

The latter makes sure clients clear saved credentials, so the user isn't stuck
with a device that keeps using incorrect credentials.
2021-05-07 19:10:07 +02:00
Mike Brady fd4cc98aba Slightly better timing. Bumped version for ejurgensen's new pair_ap work. 2021-05-05 18:33:21 +01:00
ejurgensen ba73111a6f Support for pair-verify 2021-05-04 20:38:35 +02:00
ejurgensen 493e9604d3 Use pair_ap for pairing and rtsp encryption 2021-05-04 20:34:37 +02:00
Mike Brady 25a1303269 Only stop the player if you still have the playing conn. 2021-05-02 15:34:52 +01:00
Mike Brady 6a13062100 clang format 2021-05-02 14:35:31 +01:00
Mike Brady c2940eb23b works in AP1-compatible AP2 mode, but resend isn't working. 2021-05-02 12:49:41 +01:00
Mike Brady a68f28ac2b clang format 2021-05-01 14:09:38 +01:00
Mike Brady 91b85a0207 Working for Realtime Audio Streams 2021-04-30 14:55:11 +01:00
Mike Brady 390eeae3df In AirPlay 2 mode it can be selected by players 2021-04-30 14:23:31 +01:00
Mike Brady 3a9af591f4 Compiles in AirPlay2 and AirPlay1 modes. Runs in AirPlay1 mode. Not tested in AirPlay2 mode. 2021-04-30 12:40:52 +01:00
Mike Brady 3d025af492 Compiles and runs in AirPlay 1 mode 2021-04-30 12:30:43 +01:00
Mike Brady b3cec5c690 move over to clock_realtime from clock_monotonic. Seems to work. 2021-04-30 10:12:59 +01:00
Mike Brady 3a02b79a62 Update the mdns stuff to work with a string, update audio_alsa rtp.c, rtsp.c and shairport.c to build and work in AirPlay 1 but with AirPlay 2 code in place. Some of it is #defined out. 2021-04-30 09:29:30 +01:00
Mike Brady 18c9e13a02 Clean up with clang-format 2021-01-24 21:32:57 +00:00
Mike Brady c27fb1c9b5 Fix a crash that occurred if metadata support is enabled during compilation but turned off in the configuration file.
Fix a crash that occurred playing from AirPower on Android.
2020-12-23 16:11:12 +00:00
Mike Brady 3fc9570489 Clang Format 2020-09-27 10:45:22 +01:00
Mike Brady 6857d06bd6 Handle active_remote_id as a string rather than an unsigned 32-bit number. It seems ROON uses a longer character sequence. Tidy up some error messages aboout which backend is selected. 2020-09-27 10:44:12 +01:00
Mike Brady 46c47c01a6 Ensure the metadata pipe is created, if necessary, when the --with-metadata option is chosen without dbus or mpris 2020-09-11 16:54:34 +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 06c80713bb Open metadata and audio pipes with 666 permissions. 2020-07-27 09:40:05 +01:00
Mike Brady 19ec4dfd89 clean up a fatal error message 2020-06-22 10:32:07 +01:00
Mike Brady deee20758a quieten a debug message 2020-06-22 10:15:35 +01:00
Mike Brady 98005fd18f quieten some debug messages 2020-06-21 13:50:21 +01:00
Mike Brady dd0d24b255 The metadata threads were not terminating properly due to multiple errors. Quietened a few debug messages too. 2020-06-21 13:17:57 +01:00
Mike Brady 4f9f3331e3 Remove the flsr flush request token -- sometimes it's bogus -- add the frame number to the pfls token. Add a little documentation. 2020-06-13 10:41:48 +01:00
Mike Brady dfd90bac6b Clean up code for the silent lead-in on a non-syncing back end e.g. a pipe. Clean up pipe creation and initial opening and associated error messages. Fix error with warning/die messages. Tidy up some debug messages. 2020-06-05 17:22:53 +01:00
Mike Brady 18b9116d97 Separate metadata multicast from metadata pipe. 2020-06-02 19:37:05 +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 b915c2f527 temporarily disable the metadata pipe feed. 2020-05-28 19:50:03 +01:00
Mike Brady 16ecb5f378 debug mods 2020-05-28 17:41:49 +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 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 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 67e9b1b6cd partial move to using a nanosecond-based system timer. More to come. 2020-02-24 19:40:44 +00:00
Mike Brady f771774519 Compiles under gcc-10 with -fno-common 2020-02-13 17:37:41 +00:00
Mike Brady 27e42a666a 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. 2020-01-10 17:20:25 +00:00