diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c index 1effe000..51b3e458 100644 --- a/src/pcm/pcm.c +++ b/src/pcm/pcm.c @@ -56,7 +56,8 @@ int snd_pcm_close(snd_pcm_t *pcm) int err; assert(pcm); if (pcm->setup) { - if (pcm->mode & SND_PCM_NONBLOCK) + if (pcm->mode & SND_PCM_NONBLOCK || + pcm->stream == SND_PCM_STREAM_CAPTURE) snd_pcm_drop(pcm); else snd_pcm_drain(pcm);