# HG changeset patch # User William Pitcock # Date 1247405413 18000 # Node ID 0f7180e3b1631a717d8cd94e68c6a7b410746b9f # Parent 16d4308fb36e4b0b0ff9ae409010d29bccad2f8d alsa-ng: Enforce a minimum buffer size of 500ms. diff -r 16d4308fb36e -r 0f7180e3b163 src/alsa-ng/alsa-core.c --- a/src/alsa-ng/alsa-core.c Thu Jul 09 11:03:32 2009 -0400 +++ b/src/alsa-ng/alsa-core.c Sun Jul 12 08:30:13 2009 -0500 @@ -305,7 +305,7 @@ static gint alsaplug_open_audio(AFormat fmt, gint rate, gint nch) { - gint err, bitwidth, ringbuf_size; + gint err, bitwidth, ringbuf_size, buf_size; snd_pcm_format_t afmt; snd_pcm_hw_params_t *hwparams = NULL; @@ -342,11 +342,15 @@ bitwidth = snd_pcm_format_physical_width(afmt); bps = (rate * bitwidth * nch) >> 3; - ringbuf_size = aud_cfg->output_buffer_size * bps / 1000; + + buf_size = aud_cfg->output_buffer_size ? aud_cfg->output_buffer_size : 500; + ringbuf_size = buf_size * bps / 1000; + if (alsaplug_ringbuffer_init(&pcm_ringbuf, ringbuf_size) == -1) { _ERROR("alsaplug_ringbuffer_init failed"); return -1; } + pcm_going = TRUE; flush_request = -1;