summaryrefslogtreecommitdiffstats
path: root/libao2/ao_sgi.c
diff options
context:
space:
mode:
authordiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-30 00:08:06 +0000
committerdiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-30 00:08:06 +0000
commit34911f657077420b24dd0b22a4145602b0ad848a (patch)
tree1f13b8b108f8bd7319a226a4850d9df2a4eaf350 /libao2/ao_sgi.c
parent517d3cc0f6b64e203bb45755cf557855cf5fd277 (diff)
downloadmpv-34911f657077420b24dd0b22a4145602b0ad848a.tar.bz2
mpv-34911f657077420b24dd0b22a4145602b0ad848a.tar.xz
A-V sync fix by Timo Kanera <timo@kanera.de>.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11324 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2/ao_sgi.c')
-rw-r--r--libao2/ao_sgi.c12
1 files changed, 7 insertions, 5 deletions
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);
}