diff --git a/src/audio/playback/alsa.c b/src/audio/playback/alsa.c index 3c642c3da..bf34dc798 100644 --- a/src/audio/playback/alsa.c +++ b/src/audio/playback/alsa.c @@ -577,10 +577,21 @@ static bool audio_play_alsa_reconfigure(void *state, struct audio_desc desc) unsigned int buf_len; int buf_dir = -1; - if (get_commandline_param("low-latency-audio") && get_commandline_param("alsa-playback-buffer") == NULL) { - CHECK_OK(snd_pcm_hw_params_set_buffer_time_first(s->handle, params, - &buf_len, &buf_dir)); + if (get_commandline_param("low-latency-audio") != NULL && + get_commandline_param("alsa-playback-buffer") == NULL) { + // set minimal value from the configuration space + CHECK_OK(snd_pcm_hw_params_set_buffer_time_first(s->handle, params, &buf_len, &buf_dir)); log_msg(LOG_LEVEL_INFO, MOD_NAME "ALSA driver buffer len set to: %lf ms\n", buf_len / 1000.0); + enum { + REC_MIN_BUF = 5000, + }; + if (buf_len <= REC_MIN_BUF) { + MSG(WARNING, + "ALSA driver buffer len less than %d usec seem to " + "be too loow, consider using alsa-playback-buffer " + "instead of low-latency-audio.", + REC_MIN_BUF); + } } else { buf_len = (s->playback_mode == SYNC ? BUF_LEN_DEFAULT_SYNC : BUF_LEN_DEFAULT) * 1000;