Commit Graph
5188 Commits
Author SHA1 Message Date
Mike Brady 41f55ac1cb Stop clearing the timing peer list and stop removing the anchor clock info. 2021-12-06 18:03:42 +00:00
Mike Brady 829e1adafe Merge pull request #1362 from mptre/mutex
Avoid a recursive mutex acquisition in the `sndio` backend.
2021-12-06 15:48:03 +00:00
Anton Lindqvist 57af5f3c10 avoid recursive mutex acquisition in sndio backend
Ending a RTSP session while running on OpenBSD using sndio backend causes the
following crash:

	#0  thrkill ()
	#1  0x000005208224403e in _libc_abort
	#2  0x00000520821b77be in _rthread_mutex_trylock
	#3  _rthread_mutex_timedlock
	#4  0x0000051e0d54e2c0 in stop ()
	#5  0x0000051e0d544e85 in player_thread_cleanup_handler
	#6  0x0000052082243126 in _libc_pthread_exit
	#7  0x000005209a158700 in sigthr_handler
	#8  <signal handler called>
	#9  _thread_sys_poll ()
	#10 0x000005208223533e in _libc_poll_cancel
	#11 0x00000520df54c9a0 in sio_psleep
	#12 0x00000520df54cc1f in sio_write
	#13 0x0000051e0d54e27a in play
	#14 0x0000051e0d547fc0 in player_thread_func
	#15 0x000005209a158cc1 in _rthread_start
	#16 0x000005208223565a in __tfork_thread

The player thread is blocking inside sio_write() -> poll(2) while the thread is
being terminated. The stop routine tied to the same backend is invoked through
player_thread_cleanup_handler() which tries to acquire the mutex which it
already acquired before invoking sio_write(). Avoiding blocking writes would
require switching to async I/O which is quite an undertaking.

The fact that there's only one `struct sio_hdl *' instance in the compilation
unit sort of implies there can only be one player thread at a time. Therefore
fix the crash by only trying to acquire the mutex and continue as usual if it's
already acquired.
2021-12-05 09:08:01 +01:00
Anton Lindqvist 489a77633b add missing includes on openbsd 2021-12-05 09:00:23 +01:00
Anton Lindqvist 3b91065c2a do not pass null to printf
OpenBSD issues a warning using syslog whenever NULL is passed as a variadic
argument to the printf-like family of functions.
2021-12-05 08:53:08 +01:00
Anton Lindqvist 7693b4ae1b configure: openbsd is supported 2021-12-05 08:52:22 +01:00
Anton Lindqvist 5aeb4ab9ed configure: fix handling of non linux operating systems
The OS whitelist conditional is malformed due to missing test(1) commands
causing the following error to be emitted during configure while using something
other than Linux:

	../configure[3340]: xopenbsd: not found

Instead, favor a switch statement which makes the line a bit shorter as well.

Also, the AC_MSG_ERROR argument must be wrapped in brackets due to presence of a
comma. Otherwise, the tail will be interpreted as an additional argument.
2021-12-05 08:52:21 +01:00
Mike Brady 231d5242d7 clang format only 2021-12-02 11:19:52 +00:00
Mike Brady d32544d904 Set the timing peer list as soon as a SETPEERS message is received -- don't wait until play is about to begin. Not sure if it works universally yet. 2021-12-02 11:17:59 +00:00
Mike Brady 60f830bc75 Tidy up the statistics printout table and stop outputting (non existent) nominal fps for AP2 Realtime Streams. 2021-12-02 11:16:00 +00:00
Mike Brady b3526c5472 Use PKG_CHECK_MODULES to find libavcodec, to make it work with Fedora 35 (?) 2021-12-01 17:58:22 +00:00
tecdude dadeb718a3 Update AIRPLAY2.md 2021-12-01 17:16:15 +00:00
Mike Brady 7b8e293f8b Change behaviour after an unrecoverable error -- if not handled, exit Shairport Sync. 2021-12-01 09:01:31 +00:00
Mike Brady e3faba141c log statsistics headers whenever verbosity goes on or off or whenever statistics are requested 2021-11-28 21:51:26 +00:00
Mike Brady 6c43a362aa Merge branch 'development' of git.aillwee.com:base/shairport-sync into development 2021-11-28 16:13:32 +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 dc5b8f1a11 Clang format 2021-11-26 18:02:23 +00:00
Mike Brady 7890188dcf Quieten some debug messages. 2021-11-26 18:01:36 +00:00
Mike Brady 5cb8d51c6f Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Merge a pull request and documentation update.
2021-11-26 17:49:35 +00:00
Mike Brady b3ceda2357 Merge branch 'development' of https://github.com/mikebrady/shairport-sync into development
Updated documentation.
2021-11-26 17:43:48 +00:00
Mike Brady a05db62100 Update RELEASENOTES-DEVELOPMENT.md 2021-11-26 17:41:01 +00:00
Mike Brady a9f873b861 Merge branch 'development' of https://github.com/mikebrady/shairport-sync into development
update configure.ac
2021-11-26 17:28:38 +00:00
Mike Brady f70ab69abb Merge pull request #1346 from fwcd/libplist-configure-fix
Try finding libplist as libplist-2.0 on Linux too.
2021-11-26 17:28:20 +00:00
Mike Brady b9d3abfa24 Add some debug messages to help check the output rate calculations. 2021-11-26 15:18:27 +00:00
Mike Brady 136071a621 change stats to report non-zero if output has just opened or if there has been any discontinuity in play from previous time. 2021-11-26 15:17:27 +00:00
Mike Brady 87d887f412 Remove the commas in the statistics logs -- easier to get into a spreadsheet. 2021-11-25 18:13:56 +00:00
Mike Brady ce39f00a0b Don't overwrite service files if they already exist. 2021-11-25 17:42:48 +00:00
fwcd 9065ebc6f0 Try finding libplist as libplist-2.0 on Linux too 2021-11-24 16:22:23 +01: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 881a5ca25e Don't display output FPS, as it's not clear how accurate it is... 2021-11-20 15:11:57 +00:00
Mike Brady 1797b4164b Check for the stats function before allowing expanded stats info. 2021-11-20 14:18:13 +00:00
Mike Brady cd9da86fc3 Add a 'stats' function to the audio back ends to replace the 'rate_info' function. Zero all except the alsa back end. 2021-11-20 13:59:16 +00:00
Mike Brady 5f8e6e3989 attempt to increase the precision of the FPS timing 2021-11-20 12:14:23 +00:00
Mike Brady c0a3dacf30 Working to check for divide / mod by 0's 2021-11-17 10:35:21 +00:00
Mike Brady 4729b3ea71 Merge branch 'development' of git.aillwee.com:base/shairport-sync into development
Merge independent changes.
2021-11-14 15:13:54 +00:00
Mike Brady c31022016b Update RELEASENOTES-DEVELOPMENT.md 2021-11-14 15:03:19 +00:00
Mike Brady 1032cad684 Update to the latest version of ejurgensen's pair_ap library. With thanks. 2021-11-14 14:13:31 +00:00
Mike Brady fb1b2e9dff Update RELEASENOTES-DEVELOPMENT.md 2021-11-14 11:43:16 +00:00
Mike Brady 3f6f09328d Fix a bug by ensuring certain ap2 variables are initialised by the player thread. 2021-11-14 11:18:39 +00:00
Mike Brady 04240708a9 Try using the monotonic clock for checking output rate... 2021-11-08 10:14:42 +00:00
Mike Brady 99c6638573 Ensure the frame rate calculator allows for silent frames added to disable standby. Clean up outmoded and unused stuff in audio_alsa.c. More to do. 2021-11-06 18:32:26 +00:00
Mike Brady 98c45cbb1b Fix a bug that was causing a compiler warniong about a potentially uninitialised variable. 2021-11-02 09:15:04 +00:00
Mike Brady b2f38e0f0d Merge pull request #1326 from a-x-/patch-2
typo(MQTT): Please not -> Please note
2021-11-01 08:46:21 +00:00
Alexander Mextner f4cad1d1ba typo(MQTT): Please not -> Please note 2021-11-01 09:18:57 +03:00
Mike Brady 6b9b45c887 Update RELEASENOTES-DEVELOPMENT.md 2021-10-24 13:25:35 +01:00
Mike Brady f4115c45a2 Merge pull request #1314 from ffontaine/development
configure.ac: fix build with automake 1.16.5

Many thanks!
2021-10-24 13:10:23 +01:00
Mike Brady 647ff1cd14 Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Forgot some online documentation updates.
2021-10-24 11:37:10 +01:00
Mike Brady 311a5c884c slight tidying up 2021-10-24 11:36:40 +01:00
Mike Brady 1452bb687f Update BUILDFORAP2.md 2021-10-24 11:28:46 +01:00
Mike Brady 4ced2cf1fd Update RELEASENOTES-DEVELOPMENT.md 2021-10-22 19:52:36 +01:00