From 34911f657077420b24dd0b22a4145602b0ad848a Mon Sep 17 00:00:00 2001 From: diego Date: Thu, 30 Oct 2003 00:08:06 +0000 Subject: A-V sync fix by Timo Kanera . git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11324 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libao2/ao_sgi.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'libao2/ao_sgi.c') diff --git a/libao2/ao_sgi.c b/libao2/ao_sgi.c index 506f9f3190..77f694a3c7 100644 --- a/libao2/ao_sgi.c +++ b/libao2/ao_sgi.c @@ -25,6 +25,8 @@ LIBAO_EXTERN(sgi) static ALconfig ao_config; static ALport ao_port; +static int sample_rate; +static int queue_size; // to set/get/query special features/parameters static int control(int cmd, void *arg){ @@ -54,7 +56,7 @@ static int init(int rate, int channels, int format, int flags) { } frate = rate; - + x[0].param = AL_RATE; x[0].value.ll = alDoubleToFixed(rate); x[1].param = AL_MASTER_CLOCK; @@ -76,7 +78,7 @@ static int init(int rate, int channels, int format, int flags) { if (frate != alFixedToDouble(x[0].value.ll)) { printf("ao_sgi, init: samplerate is now %lf (desired rate is %lf)\n", alFixedToDouble(x[0].value.ll), frate); } - + sample_rate = (int)frate; } ao_data.buffersize=131072; @@ -110,7 +112,7 @@ static int init(int rate, int channels, int format, int flags) { } // printf("ao_sgi, init: port %d config %d\n", ao_port, ao_config); - + queue_size = alGetQueueSize(ao_config); return 1; } @@ -181,8 +183,8 @@ static float get_delay(){ // printf("ao_sgi, get_delay: (ao_buffersize %d)\n", ao_buffersize); - return 0; - + //return 0; + return (float)queue_size/((float)sample_rate); } -- cgit v1.2.3