diff --git a/libao2/ao_sun.c b/libao2/ao_sun.c index c1ef3a43a8..773f0d0d4a 100644 --- a/libao2/ao_sun.c +++ b/libao2/ao_sun.c @@ -478,8 +478,6 @@ static int init(int rate,int channels,int format,int flags){ return 0; } - ioctl(audio_fd, AUDIO_DRAIN, 0); - if (af2sunfmt(format) == AUDIO_ENCODING_NONE) format = AF_FORMAT_S16_NE; @@ -583,6 +581,8 @@ static void uninit(int immed){ // 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); }