From: Mike Brady Date: Tue, 8 Jan 2019 13:01:22 +0000 (+0000) Subject: Preflight all audio material playing (not lead-in silences though...) X-Git-Tag: 3.3RC0~66^2~77 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e3be271fdc26a0138d78848b36b9b2156e22a73;p=thirdparty%2Fshairport-sync.git Preflight all audio material playing (not lead-in silences though...) --- 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,