Commit Graph
285 Commits
Author SHA1 Message Date
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
Mike Brady 8ec99e806f Slight comment change. 2021-09-05 10:13:17 +01:00
Mike BradyandGitHub c9b34cc367 Update rtp.c
Stop a deprecated warning.
2021-09-05 09:09:44 +01:00
Mao Liu 8d477d73dc small change to fix codec loading for ubuntu-18/ffmpeg-3.4 2021-09-04 14:51:11 +00:00
Mike Brady 4090b2d8fb Avoid repreatedly asking Avahi to monitor for the same DACP-ID. Quieten some debug messages. 2021-07-22 13:23:57 +01:00
Mike Brady 33dd3037da Wait a little longer to allow the master clock to stabilise. 2021-06-24 10:45:32 +01:00
Mike Brady ce49f3a9fd Quieten the PTP informatin age checking code. 2021-06-23 17:54:51 +01:00
Mike Brady 861455f703 Add some information about the length of time a new clock master has been monitored for ("history") and warn if the PTP information hasn't been updated for more than a second (not extensively tested). 2021-06-23 12:18:04 +01:00
Mike Brady e925e196c8 Changes to allow it to compile in FreeBSD and fix a few issues that were picked up by clang 10. 2021-06-22 13:49:11 +01:00
Mike Brady ad3412f5c2 Ensure a new master clock is at least 1.1 seconds in mastership before using it. Remember that the mastership can be backdated. 2021-06-17 18:17:24 +01:00
Mike Brady c37ee4542d Add code to skip packets of buffered audio that are late or too early. 2021-06-09 19:35:08 +01:00
Mike Brady f6a9f634c7 Accept a new master clock immediately. Don't truncate the first three blocks if it's a normal start. Hacky. 2021-06-06 15:53:55 +01:00
Mike Brady 7a26139c44 Shorten some arbitrary delays, quieten some debug messages, add (and comment out) disgnostic code to introduce a timing error. Make the buffer size 0.4 sec -- so that if a timing error of 150 ms is detected, enough frames are immediately available to be used. 2021-06-03 09:24:26 +01:00
Mike Brady 8bee92a4e6 Clean up the statistics output to make it provide information for the stream type. Parameterise it so that it's a bit easier to manage. 2021-06-02 17:17:54 +01:00
Mike Brady 5b8d76cfbe When the master clock returns to what the real anchor clock is, the difference between the actual and estimate is calculated and logged. Might have to actually use it... 2021-06-01 22:30:31 +01:00
Mike Brady deeabbfbc5 Quieten a rather chatty message. 2021-06-01 15:24:31 +01:00
Mike Brady c5dafbd28b Remember the original anchor information so that if the master clock become equal to it in the future, it can be restored to those exact numbers and eliminate any intervening approximations. Add some diagnostics. 2021-06-01 14:51:17 +01:00
Mike Brady d4ea91aa65 Rough and hacky but works with the bit depth of the output DAC to automatically choose the correct AAC decoding sample size. Allocation of rotating buffers is fixed and profligate. 2021-06-01 08:56:47 +01:00
Mike Brady ac515bbfa3 Deal with the possibility that the anchor information can be changed suddenly at the start of a Buffered Audio play. If the anchor info changes before the local_anchor info is mature enough (5 seconds), invalidate the local anchor info to force it to be immediately updated with the new anchor info. 2021-05-31 09:49:15 +01:00
Mike Brady 5e498173e1 Add a little information and remove a little ambiguity from a diagnostic message about anchor and master clocks especially relevant in Realtime Audio streams. 2021-05-30 12:12:40 +01:00
Mike Brady 4b5e9787b7 Log information when anchor or master clock changes occur. 2021-05-30 12:04:06 +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 2ea28c0661 Much better flushing. Delayed flushing only works for one delay. Noice artifacts removed when skipping. Pretty solid. 2021-05-29 21:24:33 +01:00
Mike Brady 7c68f97d7f flaky but some interesting stuff 2021-05-29 15:59:11 +01:00
Mike Brady 9cf4ef032d Improving the flush behaviour. 2021-05-29 10:54:44 +01:00
Mike Brady 2986b282d3 Does pretty well with flushing. Sometimes misses a flush on a repeat one. 2021-05-28 22:20:11 +01:00
Mike Brady e258cca33a recognise two types of flush -- one with from and until information, the other with just until information. A flush with "with" information is not followed by a new set anchor, whereas a flush without the " with" information is alwasy followed by a new setanchor. 2021-05-28 19:16:37 +01:00
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