Commit Graph
373 Commits
Author SHA1 Message Date
Mike Brady 51283d2e07 Update some debug messages 2018-08-06 12:33:45 +01:00
Mike Brady 78f1cd614c Allow for different output rates in the new calculations 2018-08-06 09:48:36 +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 3888125a24 Change calculation order to prevent overflow after about 26 hours at 44,100 fps in the frame rate calculations. Calculate frame rates whether statistcs are requested or not. Clean up some fps rate availability flags. 2018-08-01 09:35:28 +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 6c7b26a633 Add debug message to try to understand a weird negagive memory request. 2018-07-29 15:33:42 +01:00
Mike Brady c91a991edd Prevent arithmetic overflow after 2^32 microseconds, i.e. about one hoour and 11 minutes... 2018-07-29 10:45:55 +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 577449dffa Remove use of SIGUSR1 and pthread_kill to stop threads. Not debugged! 2018-07-27 10:58:36 +01:00
Mike Brady aa13fd9849 Remove hack to try to avoid whitespace removal by rsyslogd. It turns out that this has been fixed in recent versions of rsyslogd. Not on Raspbian Stretch yet though... 2018-07-23 17:37:43 +01:00
Mike Brady f153a1f570 Remove some unwanted debug messages 2018-07-22 16:26:47 +01:00
Mike Brady 2eaaa9cdb3 Fix a bug where the dacp notification handlers are called 2018-07-21 15:35:07 +01:00
Mike Brady f1d4503431 Try to add proper cancellation code to all threads -- not complete, buggy. 2018-07-20 13:50:38 +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 ebacd7f340 Add a little note to self. 2018-07-15 16:48:45 +01:00
Mike Brady 9a8a863825 Clean out player_+thread_please_stop references. 2018-07-15 16:25:56 +01:00
Mike Brady 227f8ce457 Remove player_thread_please_stop stuff and the pthread_kill codes, quieten some debug messages 2018-07-15 14:09:07 +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 8ed8f808b8 Add a cancellation stack to get_buffer_frame. 2018-07-15 13:11:51 +01:00
Mike Brady 525ff37c1c Add a | to the statistics output to ensure the columns of numbers are aligned. Seems to be a bug in the daemon_log (?) 2018-07-15 12:25:38 +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 bae7585cff Make pc add and get items work if pthread_cancel occurs 2018-07-14 14:32:22 +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 65807a8b41 Fix a bug that caused a crash when soxr was enabled and play stopped. Also may have caused other apparently random crashes 2018-07-11 21:00:23 +01:00
Mike Brady 7e0f6acb55 Tidy up some avahi code and some player code, but bug not fixed 2018-07-11 20:49:31 +01:00
Mike Brady 7aee31fb7e Reduce the rate at which resends are requests to make them less, uh, insistent 2018-06-29 22:59:19 +01:00
Mike Brady 1ca0b28e53 Clean up player.c with clang_format. 2018-06-05 19:07:10 +01:00
Mike Brady 370d70651b Add a pthread_cancel cleanup routine to put_packet to unlock that rw thread when cancelled. 2018-06-05 18:58:36 +01:00
Mike Brady 78f4a24caa Quieten the last-ditch message a bit. 2018-06-03 20:05:10 +01:00
Mike Brady 6eab2d1617 Use shutdown() before close() and separate out the cancel requests for the timing, control and audio threads, see if we can see anything. 2018-06-03 19:59:24 +01:00
Mike Brady eee822b932 add some more debugging messages. 2018-06-01 16:00:20 +01:00
Mike Brady 497d49dda6 Move the resend requests to outside the ab_mutex lock and put a send timeout on the resend requester. 2018-06-01 14:23:34 +01:00
Mike Brady 8e92da35b2 move get_frame iteration message and enable error messaging if condwait timeout. 2018-06-01 11:58:31 +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 93f410599f Add debug_mutex_unlock code in place of a regular pthread_mutex_unlock in some places. 2018-06-01 09:28:28 +01:00
Mike Brady 18b37ea254 Replace all pthread_mutex_locks with debug_mutex_lock with a message and timer. Not really tested. 2018-06-01 08:29:48 +01:00
Mike Brady f018a18495 Add yet more debugging to the TEARDOWN sequence. 2018-05-30 15:00:37 +01:00
Mike Brady 510424dc5f quieten a few compiler warnings 2018-05-20 15:12:33 +01:00
Mike Brady 8f9aaf7211 Drop a player_flush request if a read lock can't be acquired on the player thread. 2018-05-18 08:33:21 +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 d0237fb420 Change some debug messages. 2018-05-17 11:29:59 +01:00
Mike Brady a8cd696f8d Fix an off-by-one bug causing excessive resend requests. 2018-05-17 10:58:22 +01:00
Mike Brady 8a5a29e2c2 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. Tidy up the code a bit and remove a clobbering warning. 2018-05-17 10:29:59 +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 8f06651c47 Make the resend failure message a bit less chatty and more informative. 2018-05-15 12:45:26 +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 431586726d Allow a great number of buffers and parameterise the fixed latency limits. 2018-05-15 09:11:50 +01:00