* [PATCH] pcm: null: Do not allow a period size of 0
@ 2019-04-05 14:09 twischer
2019-04-05 15:23 ` [ALSA patch] " Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: twischer @ 2019-04-05 14:09 UTC (permalink / raw)
To: patch, tiwai; +Cc: Timo Wischer, alsa-devel
From: Timo Wischer <twischer@de.adit-jv.com>
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>
---
src/pcm/pcm_null.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/pcm/pcm_null.c b/src/pcm/pcm_null.c
index ff61624..c95fad8 100644
--- a/src/pcm/pcm_null.c
+++ b/src/pcm/pcm_null.c
@@ -261,7 +261,18 @@ static snd_pcm_sframes_t snd_pcm_null_mmap_commit(snd_pcm_t *pcm,
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. In addition such small buffers would only increase the CPU
+ * load but there is no benefit when throwing the samples anyway away.
+ */
+ err = _snd_pcm_hw_param_set_min(params, SND_PCM_HW_PARAM_PERIOD_SIZE,
+ 32, 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;
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [ALSA patch] [PATCH] pcm: null: Do not allow a period size of 0
2019-04-05 14:09 [PATCH] pcm: null: Do not allow a period size of 0 twischer
@ 2019-04-05 15:23 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2019-04-05 15:23 UTC (permalink / raw)
To: twischer; +Cc: alsa-devel
On Fri, 05 Apr 2019 16:09:53 +0200,
<twischer@de.adit-jv.com> wrote:
>
> From: Timo Wischer <twischer@de.adit-jv.com>
>
> 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>
> ---
> src/pcm/pcm_null.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/src/pcm/pcm_null.c b/src/pcm/pcm_null.c
> index ff61624..c95fad8 100644
> --- a/src/pcm/pcm_null.c
> +++ b/src/pcm/pcm_null.c
> @@ -261,7 +261,18 @@ static snd_pcm_sframes_t snd_pcm_null_mmap_commit(snd_pcm_t *pcm,
>
> 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. In addition such small buffers would only increase the CPU
> + * load but there is no benefit when throwing the samples anyway away.
> + */
> + err = _snd_pcm_hw_param_set_min(params, SND_PCM_HW_PARAM_PERIOD_SIZE,
> + 32, 0);
Why 32? This is a virtual device, hence we don't need to set any
practical limit. If the zero is harmfull, the next preferable
alternative is 1, when logically thinking. Or does it cause a
problem?
thanks,
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-04-05 15:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-05 14:09 [PATCH] pcm: null: Do not allow a period size of 0 twischer
2019-04-05 15:23 ` [ALSA patch] " Takashi Iwai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.