Commit Graph
247 Commits
Author SHA1 Message Date
Mike Brady f4ba81ec5f remove redundant item 2021-05-26 19:36:31 +01:00
Mike Brady 637c8132e9 Move initial delay when using a new bus master to rtp.c and wait, if possible, whenever a new master comes along, to allow it to settle before using it. 2021-05-26 18:12:45 +01:00
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 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 e41795f4da clang 2021-05-13 20:59:38 +01:00
Mike Brady c7bdc2c409 Tidy up a message. 2021-05-13 20:58:03 +01:00
Mike Brady 2180c7147f If a PTP clock isn't available, use existing timing data if it's still valid. 2021-05-13 20:12:12 +01:00
Mike Brady a3a7fb4849 ask for at least 50 ms of a lead-in for buffered audio. 2021-05-12 11:32:18 +01:00
Mike Brady fcf5c7f8d3 clang 2021-05-12 11:00:41 +01:00
Mike Brady 171001ffd8 fix calculation of offset with a negative offset 2021-05-12 10:59:33 +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
Mike Brady fd4cc98aba Slightly better timing. Bumped version for ejurgensen's new pair_ap work. 2021-05-05 18:33:21 +01:00
Mike Brady 6a13062100 clang format 2021-05-02 14:35:31 +01:00
Mike Brady 04c0d97685 Resend requests now work in the AP1-compatible AP2 mode. 2021-05-02 14:33:47 +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 5f1cbf6d20 store the latency so that the resend requst timing computations can be done correctly in the realtime streaming mode. 2021-05-01 11:49:24 +01:00
Mike Brady 61b6b5934d check that the clock is valid and reduce the Buffered Audio lead time to 0.25 seconds 2021-05-01 11:03:45 +01:00
Mike Brady 91b85a0207 Working for Realtime Audio Streams 2021-04-30 14:55:11 +01:00
Mike Brady 6760bab493 Compile with AP2 flag set 2021-04-30 12:30:12 +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 bdfb1c6ed6 player.c compiles and everything builds and runs with the airplay 2 flag off. With airplay_2 flag on, rtp.c won't build, but we know that. 2021-04-29 16:51:29 +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 a8caa0f913 Move latency calculations to rtp.c. Remove checks for infeasible latencies from player.c. 2021-04-28 13:03:27 +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 320baa4db9 quieten some debug messages 2020-06-15 12:16:59 +01:00
Mike Brady 9d6adc6f1f one less debug message. 2020-06-14 14:29:55 +01:00
Mike Brady f89830eb2c Send more timing sync requests at the start. The debug messages are a bit noisy. 2020-06-14 14:26:22 +01:00
Mike Brady ead6cfc4ad Emphasise one debug message 2020-06-14 09:49:10 +01:00
Mike Brady 19a7bd4969 quieten some debug messages 2020-06-12 10:10:26 +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 92074c2b96 add code to calculate the diffusion multiplier based on the ending diffusion multiplier and the number of entries. 2020-06-10 20:04:03 +01:00
Mike Brady 0517a233c1 Fix the recording of the sample count if it's less than the threshold. Use the last gradient / drift if the number of samples is less than the threshold. 2020-06-10 14:21:29 +01:00
Mike Brady 9f9b36c01f Clean up and bug-fix the code for estimating remote-to-local clock drift using least squares linear regression. Use the estimated remote-to-local difference and the calculated drift instead of just using the difference estimated from the last-exchanged timing message. 2020-06-09 11:37:24 +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 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 40289ca6d3 functional with full removal of get_absolute_time_fp() but not quite starting correctly 2020-02-24 22:23:08 +00:00
Mike Brady 32427423af update packet reception statistics to use nanosecond timing 2020-02-24 19:58:35 +00: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 c8b0be30b4 find . \( -name \*.cpp -or -name \*.h -or -name \*.c \) -exec clang-format -i -style='{BasedOnStyle: llvm, IndentWidth: 2, ColumnLimit: 100}' '{}' \; 2019-06-19 19:06:54 +01:00
Mike Brady 9fd4a39729 check for a couple of divide-by-zero possiblities. 2019-05-19 13:53:25 +01:00
Mike Brady 223dfd7801 only need to ensure at least one packet has been received, it seems. 2019-04-02 16:33:30 +01:00
Mike Brady 40ed76b411 wait for packets to be received before starting to calculate the nominal remote input rate. 2019-04-02 16:29:17 +01:00
Mike Brady 1f45b8c006 allow calculation of nominal source frame rates even when the connection is error prone. 2019-04-02 15:37:38 +01:00
Mike Brady 89340f20c9 3.3 release candidate 0 2019-03-04 12:38:20 +00:00