diff options
author | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2004-04-06 17:55:36 +0000 |
---|---|---|
committer | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2004-04-06 17:55:36 +0000 |
commit | 504270e54921864509859049c7b914fdb38f0e5d (patch) | |
tree | dd1bd31225ab41235c87124d9f927d35e0ccc5cf /libao2/ao_oss.c | |
parent | 3de39541198b226051881eac511af7fca95dcfa1 (diff) | |
download | mpv-504270e54921864509859049c7b914fdb38f0e5d.tar.bz2 mpv-504270e54921864509859049c7b914fdb38f0e5d.tar.xz |
uninit immed flag
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12146 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2/ao_oss.c')
-rw-r--r-- | libao2/ao_oss.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libao2/ao_oss.c b/libao2/ao_oss.c index 3591a41adb..25545f9b75 100644 --- a/libao2/ao_oss.c +++ b/libao2/ao_oss.c @@ -263,10 +263,16 @@ ac3_retry: } // close audio device -static void uninit(){ +static void uninit(int immed){ if(audio_fd == -1) return; +#ifdef SNDCTL_DSP_SYNC + // to get the buffer played + if (!immed) + ioctl(audio_fd, SNDCTL_DSP_SYNC, NULL); +#endif #ifdef SNDCTL_DSP_RESET - ioctl(audio_fd, SNDCTL_DSP_RESET, NULL); + if (immed) + ioctl(audio_fd, SNDCTL_DSP_RESET, NULL); #endif close(audio_fd); audio_fd = -1; @@ -274,7 +280,7 @@ static void uninit(){ // stop playing and empty buffers (for seeking/pause) static void reset(){ - uninit(); + uninit(1); audio_fd=open(dsp, O_WRONLY); if(audio_fd < 0){ mp_msg(MSGT_AO,MSGL_ERR,"\nFatal error: *** CANNOT RE-OPEN / RESET AUDIO DEVICE *** %s\n", strerror(errno)); @@ -300,7 +306,7 @@ static void reset(){ // stop playing, keep buffers (for pause) static void audio_pause() { - uninit(); + uninit(1); } // resume playing, after audio_pause() |