[PATCH] fix snd_pcm_drain() excluding SETUP state from valid states
Jaroslav Kysela
perex at perex.cz
Thu May 14 15:52:25 CEST 2020
Dne 02. 05. 20 v 21:33 sylvain.bertrand at gmail.com napsal(a):
> once draining is done, the pcm enters the SETUP state, which ought to
> be valid for snd_pcm_drain()
>
> signed-off-by: Sylvain BERTRAND <sylvain.bertrand at legeek.net>
> ---
>
> I missed this one in my previous patch because exiting with or without
> an error once draining is done was producing the same result.
NAK: You should not call drain when the PCM handle is in the SETUP field. It's
an obvious caller problem. The streaming should be active somehow.
Jaroslav
>
> --- a/src/pcm/pcm.c
> +++ b/src/pcm/pcm.c
> @@ -1329,7 +1329,7 @@ int snd_pcm_drain(snd_pcm_t *pcm)
> SNDMSG("PCM not set up");
> return -EIO;
> }
> - err = bad_pcm_state(pcm, P_STATE_RUNNABLE);
> + err = bad_pcm_state(pcm, P_STATE_RUNNABLE | P_STATE(SETUP));
> if (err < 0)
> return err;
> /* lock handled in the callback */
>
--
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
More information about the Alsa-devel
mailing list