# HG changeset patch # User reimar # Date 1207589564 0 # Node ID 43fe46da690ba935df49d5db3bb911ee87ce2eae # Parent a3d7fc4f186ea0d7e8620b1484ab15806c50fbe4 AUDIO_DRAIN makes no sense directly after opening the device, but it should be done in uninit. diff -r a3d7fc4f186e -r 43fe46da690b libao2/ao_sun.c --- a/libao2/ao_sun.c Mon Apr 07 08:28:54 2008 +0000 +++ b/libao2/ao_sun.c Mon Apr 07 17:32:44 2008 +0000 @@ -478,8 +478,6 @@ return 0; } - ioctl(audio_fd, AUDIO_DRAIN, 0); - if (af2sunfmt(format) == AUDIO_ENCODING_NONE) format = AF_FORMAT_S16_NE; @@ -583,6 +581,8 @@ // throw away buffered data in the audio driver's STREAMS queue if (immed) flush_audio(audio_fd); + else + ioctl(audio_fd, AUDIO_DRAIN, 0); close(audio_fd); }