Commit Graph
4747 Commits
Author SHA1 Message Date
Mike Brady b900be906b Merge branch 'development' of git.aillwee.com:base/shairport-sync into development
A few small changes.
2021-12-07 17:50:08 +00:00
Mike Brady b386c22a0c Merge branch 'development' of https://github.com/mikebrady/shairport-sync into development
Merge.
2021-12-07 17:49:04 +00:00
Mike Brady 107bc71e56 Stop checking that the timing peers are within the same subnet. 2021-12-07 17:47:45 +00:00
Mike Brady 6a58eae314 Quieten a few debug messasges. 2021-12-07 17:37:16 +00:00
Mike Brady fd3d461a16 stop removing the play lock at the end of a play session. That's the job of the rtsp thread. 2021-12-07 15:09:05 +00:00
Mike Brady dbebdca84d quieten a debug message 2021-12-07 15:08:16 +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 273708fdfb Merge branch 'development' of git.aillwee.com:base/shairport-sync into development
Just checking.
2021-12-07 09:59:14 +00:00
Mike Brady 70821f8127 Clang Format 2021-12-06 18:45:25 +00:00
Mike Brady 1e21368213 Add txtAirPlay data to info response. Don't pause long RTSP message reception. 2021-12-06 18:16:57 +00:00
Mike Brady 3b9f2e1c53 Don't ask for cover art if not asking for metadata too. Duh. 2021-12-06 18:14:23 +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 be4807fff2 Wait for that mutex for longer. (Don't know why yet...) 2021-12-06 18:09:29 +00:00
Mike Brady fa20d88c1c Remember to add some exta fields later... 2021-12-06 18:08:35 +00:00
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
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
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