Fix drain of dmix without data

Fixed the drain of dmix plugin without any data.
It should return immediately.
This commit is contained in:
Takashi Iwai 2005-05-17 15:36:18 +00:00
parent 2ada7a8b81
commit cf4f4bc9c4

View file

@ -487,9 +487,14 @@ static int snd_pcm_dmix_drain(snd_pcm_t *pcm)
return -EBADFD;
if (pcm->mode & SND_PCM_NONBLOCK)
return -EAGAIN;
if (dmix->state == SND_PCM_STATE_PREPARED &&
snd_pcm_mmap_playback_hw_avail(pcm) > 0)
snd_pcm_dmix_start(pcm);
if (dmix->state == SND_PCM_STATE_PREPARED) {
if (snd_pcm_mmap_playback_hw_avail(pcm) > 0)
snd_pcm_dmix_start(pcm);
else {
snd_pcm_dmix_drop(pcm);
return 0;
}
}
stop_threshold = pcm->stop_threshold;
if (pcm->stop_threshold > pcm->buffer_size)
pcm->stop_threshold = pcm->buffer_size;