From ad6e6a54ae9e27116965028fdafbae7198a17bb6 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 26 Jan 2008 22:16:51 +0000 Subject: dmix fix, don't call snd_pcm_drain unless we're already in the RUNNING state (when users press stop, previous snd_pcm_drop(), then snd_pcm_drain() was called. this would lockup dmix) From shank, r6517 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7161 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/audioOutputs/audioOutput_alsa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/audioOutputs/audioOutput_alsa.c b/src/audioOutputs/audioOutput_alsa.c index 3ade3df46..8c8f73b42 100644 --- a/src/audioOutputs/audioOutput_alsa.c +++ b/src/audioOutputs/audioOutput_alsa.c @@ -370,7 +370,9 @@ static void alsa_closeDevice(AudioOutput * audioOutput) AlsaData *ad = audioOutput->data; if (ad->pcmHandle) { - snd_pcm_drain(ad->pcmHandle); + if (snd_pcm_state(ad->pcmHandle) == SND_PCM_STATE_RUNNING) { + snd_pcm_drain(ad->pcmHandle); + } snd_pcm_close(ad->pcmHandle); ad->pcmHandle = NULL; } -- cgit v1.2.3