Mike Brady
|
46d117b69a
|
add a volume control mutex to serialise multiple attempts to change the volume
|
2019-02-01 21:07:35 +00:00 |
|
Mike Brady
|
c5ff0dfed0
|
Rebuild the volume control calculations. Implement software mute. Try to delay alsa initialisation as long as possible.
|
2019-01-30 09:24:10 +00:00 |
|
Mike Brady
|
3434761517
|
Add code for calculating and recognising the interpolation threshold.
|
2019-01-04 17:10:57 +00:00 |
|
Mike Brady
|
4046c0e73d
|
Fix dither, add dither to silences during lead-in, interpolatied frames and keeping out of standby, only if the output device doesn't use a mixer. Check configuration at initialisation.
|
2018-12-14 15:07:00 +00:00 |
|
Mike Brady
|
9d5ff22f2d
|
Connect up the stall response to the external command calling -- add a single argument to the unfixable error call.
|
2018-12-10 22:28:52 +00:00 |
|
Mike Brady
|
277d401d24
|
Ensure watchdog always starts with the starting time of the thread. Add watchdog bark count. On the third bark, execute an unfixable error script if present.
|
2018-12-04 17:25:15 +00:00 |
|
Mike Brady
|
78da7c453c
|
Make the stop requester volatile, duh.
|
2018-12-03 18:01:54 +00:00 |
|
Mike Brady
|
4bb29bc198
|
Make sure that shared watchdog count is correctly updated in the rtsp_conn_info structure!
|
2018-12-03 16:52:32 +00:00 |
|
Mike Brady
|
76ee6d5e43
|
Add new watchdog thread for the player -- should be more reliable than the existing code.
|
2018-11-26 19:33:22 +00:00 |
|
Mike Brady
|
3cb359c747
|
Tighten up integer promotion checks to calculate large delays properly. Fix input rate calculation restarting.
|
2018-10-23 10:26:08 +00:00 |
|
Mike Brady
|
e0a4e5cde8
|
Format tidy-up
|
2018-10-21 17:10:23 +01:00 |
|
Mike Brady
|
e5259e8764
|
Remove a few compiler warnings.
|
2018-10-21 17:00:56 +01:00 |
|
Mike Brady
|
d2dba7cdba
|
Seems to work for higher rates
|
2018-10-19 22:14:23 +01:00 |
|
Mike Brady
|
de071aeffc
|
Try to fix modulo calculations
|
2018-10-18 17:44:50 +01:00 |
|
Mike Brady
|
c9b3d2a2f4
|
Many changes to compilation and linking flags. Stop using HAVE_* flags except where necessary, use CONFIG_* for optional stuff, use HAS_* for immediate definitions, use USE_* for AM definitions. Probably introduced bgs, sigh.
|
2018-09-09 20:41:31 +01:00 |
|
Mike Brady
|
1ee806a53a
|
Fix display of drift -- the sign is correct now. All timing is relative to the local clock. Add a rough estimate of the correction necessary. Use the most recent 128 timing samples.
|
2018-08-22 13:02:42 +01:00 |
|
Mike Brady
|
5141e2f5dc
|
Format tidy-up
|
2018-08-14 12:14:49 +01:00 |
|
Mike Brady
|
519135734f
|
Calculate actual and nominal input frame rates more accurately, allowing for flush and resume events.
|
2018-08-14 12:13:02 +01:00 |
|
Mike Brady
|
2f58856268
|
Add source rate calculation based on source frame and timing information, calculated from start of play session.
|
2018-08-13 14:44:22 +01:00 |
|
Mike Brady
|
a8cfc9915f
|
display the number of samples used to calculcate drift, clean up the settings for the number of samples to skip at the start and for the minimum number of samples to use. Store 64 samples.
|
2018-08-13 14:06:40 +01:00 |
|
Mike Brady
|
3870195cf9
|
Begin to use a unified and more accurate scheme for translating between local time and rtp timestamp, taking clock drift and actualt source rate into account if available. Not dealing with highes output rates yet.
|
2018-08-05 17:23:07 +01:00 |
|
Mike Brady
|
f6b3c420c7
|
Enable input frame rate calculation to handle a pause/resume correctly.
|
2018-07-30 14:07:39 +01:00 |
|
Mike Brady
|
b75c82d14a
|
Add input frame rate calculation.
|
2018-07-30 13:39:38 +01:00 |
|
Mike Brady
|
76c5dd9285
|
Stop using SIGUSR1 for cancelling threads, use pthread_cancel and friends instead, fix some memory leaks, add accurate ouput rate calculation to statistics, add "quit" verb to MPRIS and native d-bus interfaces. Probably still buggy.
|
2018-07-30 10:07:11 +01:00 |
|
Mike Brady
|
c85e7e05d1
|
Add a frames per second output. This should be exact if the machine is connected up to, say, an NTP time service. It uses CLOCK_MONOTONIC time.
|
2018-07-28 19:02:02 +01:00 |
|
Mike Brady
|
c8c70b6016
|
Add quit commands to the MPRIS and native D-Bus command set. Not tested ecologically.
|
2018-07-18 15:32:07 +01:00 |
|
Mike Brady
|
a4eaace76b
|
Begin to try to get Shairport Sync to quit cleanly, relinquishing memory and ports etc. properly so that valgrind can be more useful.
|
2018-07-17 10:28:06 +01:00 |
|
Mike Brady
|
9a8a863825
|
Clean out player_+thread_please_stop references.
|
2018-07-15 16:25:56 +01:00 |
|
Mike Brady
|
01f2a374b9
|
Use pthread_cancel to stop a player thread rather than SIGUSR1 and pthread_kill.
|
2018-07-15 13:54:33 +01:00 |
|
Mike Brady
|
768dc7759a
|
Tidy up log output and add timers to inform statements. Move more stuff to the player thread pop function. Warn about cancellation points in debug versions of mutex lock and unlock. Ensure they are not cancellation points when debug not in use. Warn about Mac OS X cancellation points.
|
2018-07-15 11:54:48 +01:00 |
|
Mike Brady
|
d3b79b965d
|
Make more of the code amenable to pthread cancel
|
2018-07-14 19:34:31 +01:00 |
|
Mike Brady
|
c2e3fa5aa7
|
Move ab_mutex, flow control CV and flush mutex initialisation and teardown out of the player thread. Thus remove need for player theread lock. Format some of the surce files.
|
2018-07-14 13:38:29 +01:00 |
|
Mike Brady
|
d224f47e37
|
Remove unneeded volume control mutex, adjust some timings, add wait time to slow mutex locks.
|
2018-06-01 11:21:16 +01:00 |
|
Mike Brady
|
6d08725539
|
If the player thread is locked, don't block player_put_packet. Instead, discard the packet.
|
2018-05-17 16:15:17 +01:00 |
|
Mike Brady
|
7d0eb37958
|
Move to using pthread_cancel in place of pthread_kill -- due to a problem in CYGWIN, but the move makes the code simpler and more rugged.
|
2018-05-17 10:16:44 +01:00 |
|
Mike Brady
|
b9d3a036b1
|
Revise resend interval calculation to spread it out over a long latency.
|
2018-05-15 12:08:01 +01:00 |
|
Mike Brady
|
418b1ba7c7
|
Add a read-write mutex to protect a player thread when it's being created or deleted; make player_flush get a read lock to get access.
|
2018-05-12 15:10:27 +01:00 |
|
Mike Brady
|
21e1e12c76
|
If it's an AirPlay user agent up to and including version 363 (iOS 11.1.2) use the old offset calculation by adding 11,205 frames to the offset.
|
2018-05-04 18:25:52 +01:00 |
|
Mike Brady
|
3823f337d0
|
incorporate 3.2d30 stuff -- lots of important bug fixes -- and include the extra diagnostic information from RC2
|
2018-04-14 14:06:09 +01:00 |
|
Mike Brady
|
49d5486df6
|
Keep timestamp info from the incoming audio packet
|
2018-04-14 13:56:44 +01:00 |
|
Mike Brady
|
e76a636668
|
Fix serious and long-standing bugs in the control, audio and timing threads that could be responsible for low resilience on noisy and unrealiable networks. Add ability to simiulate UDP receive and send failures on timing, control and audio ports. Significantly improve resend requesting and handling.
|
2018-04-14 13:01:42 +01:00 |
|
Mike Brady
|
ad450d745b
|
Add an extra field to a buffer for checking purposes.
|
2018-04-12 08:52:47 +01:00 |
|
Mike Brady
|
665a53a8b5
|
Allow sps to deal with duplicate RTSP messages like RECORD and SETUP. Add some diagnostics to the player.
|
2018-04-10 17:35:39 +01:00 |
|
Mike Brady
|
d3e2cb5d92
|
Modify latency detection to use the second word of a sync packet to decide whether to add an extra delay or not. Use all sync packets, not just one with the exception flag. Use 1024 buffers -- a bit profligate, but hey.
|
2018-04-02 16:44:16 +01:00 |
|
Mike Brady
|
8bf83c149f
|
Modify latency detection to use the second word of a sync packet to decide whether to add an extra delay or not. Use all sync packets, not just one with the exception flag. Use 1024 buffers -- a bit profligate, but hey.
|
2018-04-02 16:42:46 +01:00 |
|
Mike Brady
|
32c7a535a1
|
Make scanning for DACP port part of the dacp handler. Only emit 'clip' and 'svip' for a play connection, suppress 'pfls' until 'pffr' has been emitted
|
2018-03-31 17:34:59 +01:00 |
|
Mike Brady
|
5ba343bbf0
|
On receipt of a notify volume change, only send it to the dacp device if it's different to the posted volume -- stops loops
|
2018-03-09 16:27:20 +00:00 |
|
Mike Brady
|
7970a54b83
|
Make a tiny format change
|
2018-03-07 20:50:20 +00:00 |
|
Mike Brady
|
8991f3420c
|
Remove many causes of warnings at the -Wextra level
|
2018-03-07 20:48:21 +00:00 |
|
Mike Brady
|
c36a7822a3
|
Tidy up using clang-format
|
2018-03-07 14:35:25 +00:00 |
|