@@ -428,6 +428,7 @@
unsigned int format = SND_PCM_FORMAT_FLOAT;
unsigned int rate = jack_get_sample_rate(jack->client);
unsigned int psize_list[MAX_PERIODS_MULTIPLE];
+ unsigned int bsize_list[MAX_PERIODS_MULTIPLE];
unsigned int nframes = jack_get_buffer_size(jack->client);
unsigned int jack_buffer_bytes = (snd_pcm_format_size(format, nframes) *
jack->num_ports);
@@ -441,6 +442,9 @@
for (i = 1; i <= ARRAY_SIZE(psize_list); i++)
psize_list[i-1] = jack_buffer_bytes * i;
+ for (i = 1; i <= ARRAY_SIZE(bsize_list); i++)
+ bsize_list[i-1] = jack_buffer_bytes * (i + 1);
+
jack->sample_bits = snd_pcm_format_physical_width(format);
if ((err = snd_pcm_ioplug_set_param_list(&jack->io, SND_PCM_IOPLUG_HW_ACCESS,
ARRAY_SIZE(access_list), access_list)) < 0 ||
@@ -452,6 +456,8 @@
rate, rate)) < 0 ||
(err = snd_pcm_ioplug_set_param_list(&jack->io, SND_PCM_IOPLUG_HW_PERIOD_BYTES,
ARRAY_SIZE(psize_list), psize_list)) < 0 ||
+ (err = snd_pcm_ioplug_set_param_list(&jack->io, SND_PCM_IOPLUG_HW_BUFFER_BYTES,
+ ARRAY_SIZE(bsize_list), bsize_list)) < 0 ||
(err = snd_pcm_ioplug_set_param_minmax(&jack->io, SND_PCM_IOPLUG_HW_PERIODS,
2, 64)) < 0)
return err;