From 3b08fd1df2ec973fba8da5506425f1724b998142 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Sat, 24 Aug 2002 21:11:21 +0000 Subject: [PATCH] * ./modules/audio_output/oss.c: we don't ask too early for a new buffer, but rather sleep a bit. --- modules/audio_output/oss.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/audio_output/oss.c b/modules/audio_output/oss.c index 12fb23eb57..b0ec8f0e60 100644 --- a/modules/audio_output/oss.c +++ b/modules/audio_output/oss.c @@ -2,7 +2,7 @@ * oss.c : OSS /dev/dsp module for vlc ***************************************************************************** * Copyright (C) 2000-2002 VideoLAN - * $Id: oss.c,v 1.16 2002/08/24 11:46:44 sam Exp $ + * $Id: oss.c,v 1.17 2002/08/24 21:11:21 sam Exp $ * * Authors: Michel Kaempf * Samuel Hocevar @@ -65,7 +65,7 @@ struct aout_sys_t volatile vlc_bool_t b_initialized; }; -#define FRAME_SIZE 2048 +#define FRAME_SIZE 1024 #define FRAME_COUNT 8 #define A52_FRAME_NB 1536 @@ -323,11 +323,20 @@ static int OSSThread( aout_instance_t * p_aout ) / p_aout->output.output.i_rate * p_aout->output.output.i_frame_length; + while( buffered > 50000 ) + { + msleep( buffered / 2 - 10000 ); + buffered = (mtime_t)GetBufInfo( p_aout ) * 1000000 + / p_aout->output.output.i_bytes_per_frame + / p_aout->output.output.i_rate + * p_aout->output.output.i_frame_length; + } + /* Next buffer will be played at mdate()+buffered, and we tell * the audio output that it can wait for a new packet for - * buffered/2 microseconds. */ + * 20000 microseconds. */ p_buffer = aout_OutputNextBuffer( p_aout, mdate() + buffered, - buffered / 2, VLC_FALSE ); + 20000, VLC_FALSE ); } else { -- 2.39.2