Some applications do not expect that get_period_size_min() could
return 0. Therefore these applications cannot use the null plugin without
this patch.
Due to there is no use case for having a period size of 0 this patch
disallows a period size of 0 when using the null plugin.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
static int snd_pcm_null_hw_refine(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_hw_params_t *params)
{
- int err = snd_pcm_hw_refine_soft(pcm, params);
+ int err;
+
+ /* Do not return a period size of 0 because for example portaudio cannot
+ * handle it.
+ */
+ err = _snd_pcm_hw_param_set_min(params, SND_PCM_HW_PARAM_PERIOD_SIZE, 1,
+ 0);
+ if (err < 0)
+ return err;
+
+ err = snd_pcm_hw_refine_soft(pcm, params);
params->info = SND_PCM_INFO_MMAP | SND_PCM_INFO_MMAP_VALID |
SND_PCM_INFO_RESUME | SND_PCM_INFO_PAUSE;
params->fifo_size = 0;