} while (wait);
if (conn->player_thread_please_stop) {
+ debug(3,"buffer_get_frame exiting due to thread stop request.");
pthread_mutex_unlock(&conn->ab_mutex);
return 0;
}
}
}
}
+
+ debug(3,"Play thread main loop exited.");
if (config.statistics_requested) {
int rawSeconds = (int)difftime(time(NULL), playstart);
mdns_dacp_dont_monitor(conn->dapo_private_storage);
#endif
+ debug(3,"Requesting output device to stop.");
+
if (config.output->stop)
config.output->stop();
- debug(2, "Shut down audio, control and timing threads");
+ debug(2, "Shutting down audio, control and timing threads");
conn->please_stop = 1;
pthread_kill(rtp_audio_thread, SIGUSR1);
pthread_kill(rtp_control_thread, SIGUSR1);
// usleep(100000); // allow this time to (?) allow the alsa subsystem to finish cleaning up after
// itself. 50 ms seems too short
+
+ debug(3,"Freeing audio buffers and decoders.");
free_audio_buffers(conn);
terminate_decoders(conn);