summaryrefslogtreecommitdiffstats
path: root/libao2/ao_win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'libao2/ao_win32.c')
-rw-r--r--libao2/ao_win32.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libao2/ao_win32.c b/libao2/ao_win32.c
index c29e05935f..b2ba0fc573 100644
--- a/libao2/ao_win32.c
+++ b/libao2/ao_win32.c
@@ -243,8 +243,9 @@ static void uninit(int immed)
{
if(!immed)
usec_sleep(get_delay() * 1000 * 1000);
+ else
waveOutReset(hWaveOut);
- waveOutClose(hWaveOut);
+ while (waveOutClose(hWaveOut) == WAVERR_STILLPLAYING) usec_sleep(0);
mp_msg(MSGT_AO, MSGL_V,"waveOut device closed\n");
free(waveBlocks);
mp_msg(MSGT_AO, MSGL_V,"buffer memory freed\n");