[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