Rebuild the locking mechanisms for safe interruption of an existing play session.

This commit is contained in:
Mike Brady
2023-09-09 10:49:32 +01:00
parent d31f4b275a
commit 986f9587de
5 changed files with 567 additions and 589 deletions
+4 -3
View File
@@ -107,7 +107,8 @@ typedef enum {
unspecified_stream_category = 0,
ptp_stream,
ntp_stream,
remote_control_stream
remote_control_stream,
classic_airplay_stream
} airplay_stream_c; // "c" for category
#ifdef CONFIG_AIRPLAY_2
@@ -221,7 +222,7 @@ typedef struct {
int32_t last_seqno_read;
// mutexes and condition variables
pthread_cond_t flowcontrol;
pthread_mutex_t ab_mutex, flush_mutex, volume_control_mutex;
pthread_mutex_t ab_mutex, flush_mutex, volume_control_mutex, player_create_delete_mutex;
int fix_volume;
double own_airplay_volume;
@@ -414,7 +415,7 @@ typedef struct {
uint64_t dac_buffer_queue_minimum_length;
} rtsp_conn_info;
extern pthread_mutex_t playing_conn_lock;
extern pthread_mutex_t principal_conn_lock;
extern int statistics_row; // will be reset to zero when debug level changes or statistics enabled
void reset_buffer(rtsp_conn_info *conn);