14 May
2020
14 May
'20
3:52 p.m.
Dne 02. 05. 20 v 21:33 sylvain.bertrand@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@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@perex.cz
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.