From 2e3be271fdc26a0138d78848b36b9b2156e22a73 Mon Sep 17 00:00:00 2001 From: Mike Brady Date: Tue, 8 Jan 2019 13:01:22 +0000 Subject: [PATCH] Preflight all audio material playing (not lead-in silences though...) --- player.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/player.c b/player.c index 3bab2428..724b5cab 100644 --- a/player.c +++ b/player.c @@ -1418,6 +1418,9 @@ void player_thread_cleanup_handler(void *arg) { debug(3, "Connection %d: player thread main loop exit via player_thread_cleanup_handler.", conn->connection_number); + if (config.output->stop) + config.output->stop(); + if (config.statistics_requested) { int rawSeconds = (int)difftime(time(NULL), conn->playstart); int elapsedHours = rawSeconds / 3600; @@ -1470,8 +1473,6 @@ void player_thread_cleanup_handler(void *arg) { } free_audio_buffers(conn); terminate_decoders(conn); - if (config.output->stop) - config.output->stop(); clear_reference_timestamp(conn); conn->rtp_running = 0; @@ -2219,7 +2220,10 @@ void *player_thread_func(void *arg) { } } - if ((current_delay < conn->dac_buffer_queue_minimum_length) || + if (config.output->preflight) + config.output->preflight(conn->outbuf,play_samples); + + if ((current_delay < conn->dac_buffer_queue_minimum_length) || (config.packet_stuffing == ST_basic)) { play_samples = stuff_buffer_basic_32((int32_t *)conn->tbuf, inbuflength, config.output_format,