From: Mike Brady Date: Fri, 4 Jan 2019 17:10:26 +0000 (+0000) Subject: Add code for calculating and recognising the interpolation threshold. X-Git-Tag: 3.3RC0~66^2~91 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7b97ea4019da9675047ce37913f7590ff139f91c;p=thirdparty%2Fshairport-sync.git Add code for calculating and recognising the interpolation threshold. --- diff --git a/player.c b/player.c index 5885568b..f17cf685 100644 --- a/player.c +++ b/player.c @@ -1491,7 +1491,7 @@ void *player_thread_func(void *arg) { conn->first_packet_timestamp = 0; conn->flush_requested = 0; conn->fix_volume = 0x10000; - + if (conn->latency == 0) { debug(3, "No latency has (yet) been specified. Setting 88,200 (2 seconds) frames " "as a default."); @@ -1551,6 +1551,10 @@ void *player_thread_func(void *arg) { debug(3, "Output frame bytes is %d.", conn->output_bytes_per_frame); + conn->dac_buffer_queue_minimum_length = (int64_t)(config.audio_backend_buffer_interpolation_threshold_in_seconds * + config.output_rate); + debug(1,"dac_buffer_queue_minimum_length is %" PRId64 " frames.", conn->dac_buffer_queue_minimum_length); + conn->session_corrections = 0; // conn->play_segment_reference_frame = 0; // zero signals that we are not in a play segment @@ -2214,7 +2218,7 @@ void *player_thread_func(void *arg) { } } - if ((current_delay < (DAC_BUFFER_QUEUE_MINIMUM_LENGTH * conn->output_sample_ratio)) || + 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,