Commit Graph
5792 Commits
Author SHA1 Message Date
Mike Brady 4cd3c1da4b Return code 200 for a POST of type /feedback, and continue to return 500 for everything else. 2023-10-08 17:43:02 +01:00
Mike Brady f3e0ddf297 Typo 2023-10-08 17:40:43 +01:00
Mike Brady 6d89e4c4c1 Merge branch 'development' of github.com:mikebrady/shairport-sync into development
Online update.
2023-10-06 11:13:42 +01:00
Mike Brady 7aaaf0c96d Move the PipeWire stanza up in the configuration file. 2023-10-06 11:13:30 +01:00
Mike BradyandGitHub 07c9cc2d64 Update RELEASENOTES-DEVELOPMENT.md 2023-10-06 10:58:24 +01:00
Mike Brady 98679bbb54 Add PipeWire sink target setting. Fix PipeWire node name code, duh, remove code that was double-deallocating settings strings. 2023-10-06 10:51:49 +01:00
Mike Brady 420fe4ca7e Remove code that was double-deallocating settings strings. 2023-10-06 10:50:30 +01:00
Mike BradyandGitHub d7b365597a Update RELEASENOTES-DEVELOPMENT.md 2023-10-05 16:43:09 +01:00
Mike BradyandGitHub b0a2fe14ec Update RELEASENOTES-DEVELOPMENT.md 2023-10-05 16:42:34 +01:00
Mike Brady 288e5eb695 Change node_name default to "Shairport Sync", parameterise a few settings. 2023-10-05 16:40:42 +01:00
Mike BradyandGitHub 16dd54e80a Update RELEASENOTES-DEVELOPMENT.md 2023-10-05 09:50:17 +01:00
Mike Brady 3763b321b8 Add two PipeWire backend ("pw") settings -- application_name (default: "Shairport Sync") and node_name (default: "shairport-sync"). 2023-10-05 09:41:21 +01:00
Mike Brady 3db689f9e8 Deallocate settings strings on exit. 2023-10-05 09:39:22 +01:00
Mike BradyandGitHub d9c7f0aeb1 Update RELEASENOTES-DEVELOPMENT.md 2023-10-02 10:13:01 +01:00
Mike BradyandGitHub 57382cdecb Update RELEASENOTES-DEVELOPMENT.md 2023-10-02 10:12:31 +01:00
Mike Brady dc197ae711 Send silence when no audio is coming through from Shairport Sync. This eliminates (?) xrun errors. Clean up a few imprefections. 2023-10-02 10:06:55 +01:00
Mike Brady 29a5589be6 Quieten a debug message. 2023-10-02 10:05:21 +01:00
Mike BradyandGitHub 4447b25a05 Update RELEASENOTES-DEVELOPMENT.md 2023-10-01 09:37:07 +01:00
Mike Brady bde2bcc8b4 Complete replacement of the PipeWire backend with a new implementation with full synchrnoisation. Works well, but still preliminary. 2023-10-01 09:30:29 +01:00
Mike Brady afdf0d8632 Stability improvements -- take more care when the fifi is full, fix a logical error in the use of the buffer mutex. 2023-10-01 09:28:41 +01:00
Mike Brady d1294c335e stop linker errors if built alongside audio_pa 2023-09-30 17:25:42 +01:00
Mike Brady 27e4ba09a1 Replace the pipewire backend completely. Play writes to a buffer. The on_process() function reads from the buffer and updates timing information for the delay() function. Barebones -- can't set the app name or the volume. Assumes no further delays and no buffers when on_process is called. But it works! 2023-09-30 15:45:41 +01:00
Mike Brady 786481d855 mutex lock was protecting the wrong variable, duh. 2023-09-30 15:41:40 +01:00
Mike Brady ccddc37c11 Fix potential bug if the timing data is inconsistent for 10 tries. 2023-09-30 15:40:40 +01:00
Mike Brady afaf94b735 Initial tone-generator based pipewire backend compiling and apparently working, valgrind is happy too. 2023-09-29 16:32:12 +01:00
Mike BradyandGitHub 5916d2397b Update RELEASENOTES-DEVELOPMENT.md 2023-09-29 09:48:32 +01:00
Mike Brady c36d322a91 Don't mute if the volume control is at minimum (-144.0) and ignore_volume_control is seelcted. 2023-09-29 09:41:07 +01:00
Mike Brady a1dd3ad33e Actually _do_ change the latency to 200000 in the PipeWire backend as previously promied, duh. 2023-09-27 12:38:02 +01:00
Mike BradyandGitHub 7fe4861874 Update RELEASENOTES-DEVELOPMENT.md 2023-09-27 10:53:07 +01:00
Mike Brady 04e3f89130 Very very rarely, the avahi client becomes disconnected.
This usually means there are problems in the system as a whole rahter than with Shairport Sync.

However, Shairport Sync was not cleaning up properly before deleting the now-disconnected avahi client and
creating a new one in an attempt to reconnect. That caused Shairport Sync to crash even if the new avahi client
was created successfully.

So this commit has code to delete the avahi group and broswer callback before deleting the disconnected avahi client.
2023-09-27 10:36:28 +01:00
Mike BradyandGitHub be4887713f Update RELEASENOTES-DEVELOPMENT.md 2023-09-25 16:23:34 +01:00
Mike Brady c046746832 Make the pipewire latency 200000 (uS?) instead of 20000. 2023-09-25 16:19:32 +01:00
Mike BradyandGitHub 6bba7e0e44 Update RELEASENOTES-DEVELOPMENT.md 2023-09-25 09:42:23 +01:00
Mike Brady c4975d5c3b Add missing arguments to some debug messages. They could potentially cause crashes just when you need them to work properly, sigh! 2023-09-25 09:37:47 +01:00
Mike BradyandGitHub d236cfc524 Update RELEASENOTES-DEVELOPMENT.md 2023-09-24 17:35:15 +01:00
Mike Brady a3f12d685a When a connection termiates abruptly while is it the principal_conn, make sure it sets the principal_conn
to NULL and cleans up the bonjour flags, if appropriate.

Simplify the TEARDOWN handlers and the thress teardown functions by incporporating
the above code in the teardown_phase_two (for AP2) and teardown (fpr AP1) functions.

It means that closing a connection will block on the principal_conn_lock, so if
you have the principal_conn_lock, closing will not complete until you release it.

Maybe we need a principal_conn_acquisition_lock for that...
2023-09-24 17:23:04 +01:00
Mike BradyandGitHub b3986ed6e5 Update RELEASENOTES-DEVELOPMENT.md 2023-09-22 15:08:47 +01:00
Mike Brady 91c0803d04 Quieten a debug message. 2023-09-21 17:28:03 +01:00
Mike Brady 5abf393f7e clang format 2023-09-21 16:45:22 +01:00
Mike Brady 2e023fb13b Remove a few debug messages. 2023-09-21 16:41:48 +01:00
Mike Brady 2987478f4c Set and reset bonjour flags correctly when it's a Classic Airplay session. Reintroduce a 1 second delay for the prempted session to go away. 2023-09-21 16:36:21 +01:00
Mike Brady 66163c1a71 Remove redundant (and now faulty) check to see if the player is also principal conn. 2023-09-21 16:34:40 +01:00
Mike Brady eed22e4154 update to correspond with the move of principal_conn_lock to a pthread_rwlock. 2023-09-21 16:33:19 +01:00
Mike Brady 152ddbb87d Change principal_conn_lock from a regular mutex to a read-write mutex, so it can be used to check and hold the current principal_conn unless it's being altered in get_play_lock or a release_play_lock.
Only allow access to the config.airplay_statusflags, build_bonjour_strings(NULL), mdns_update(NULL, secondary_txt_records) when read_lock is acquired on the principal_conn_lock.
Only allow changes to config.airplay_statusflags and only allow access to mdns_update if you are the principal conn.

The bonjour status flags and the info response plist calculations are still a dirty rotten hack.
2023-09-21 16:04:23 +01:00
Mike Brady 60cee967dc Add a pthread_cleanup compatible function to release a pthread_rwlock. 2023-09-21 15:50:43 +01:00
Mike Brady 847ad7fb9c move the declaration of principal_conn_lock from player.h to rtsp.h where it should be. 2023-09-21 15:49:25 +01:00
Mike Brady f5475924dc Fix a benign warning from Clang 16 on FreeBSD 2023-09-20 11:46:38 +01:00
Mike Brady b4a2e5da36 Fix warning picked up on FreeBSD15 2023-09-20 11:32:26 +01:00
Mike Brady afe93a64d0 Update workflows. 2023-09-19 13:34:56 +01:00
Mike BradyandGitHub 76c8a958c5 Update check_classic_systemd_full.yml 2023-09-19 12:47:23 +01:00