summaryrefslogtreecommitdiffstats
path: root/libao2/ao_sun.c
diff options
context:
space:
mode:
authorjkeil <jkeil@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-11 21:22:55 +0000
committerjkeil <jkeil@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-11 21:22:55 +0000
commita8b287feadce559a0a39f75df4af43303841420a (patch)
treef3fac041f858264586efc64a6ffce50f376b1fe1 /libao2/ao_sun.c
parent4da2217f710acf12cbb0a7cdea93331c6162e7d9 (diff)
downloadmpv-a8b287feadce559a0a39f75df4af43303841420a.tar.bz2
mpv-a8b287feadce559a0a39f75df4af43303841420a.tar.xz
- ao_data.bps not set, confuses the A-V sync computation when the audio filters
are in use. - computation in get_delay() was returning bogus values git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7715 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2/ao_sun.c')
-rw-r--r--libao2/ao_sun.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/libao2/ao_sun.c b/libao2/ao_sun.c
index a251485fd8..f82b3a9ac9 100644
--- a/libao2/ao_sun.c
+++ b/libao2/ao_sun.c
@@ -463,6 +463,20 @@ static int init(int rate,int channels,int format,int flags){
enable_sample_timing = realtime_samplecounter_available(audio_dev);
}
+#define AF_FILTER_TEST 0
+#if AF_FILTER_TEST
+ /* test code to force use of the audio filter modules */
+ {
+ char *s;
+ if (s = getenv("AF_RATE"))
+ rate = atoi(s);
+ if (s = getenv("AF_CHANNELS"))
+ channels = atoi(s);
+ if (s = getenv("AF_BITS"))
+ format = atoi(s) == 16 ? AFMT_S16_NE : AFMT_U8;
+ }
+#endif
+
// printf("ao2: %d Hz %d chans %s [0x%X]\n",
// rate,channels,audio_out_format_name(format),format);
@@ -548,7 +562,7 @@ static int init(int rate,int channels,int format,int flags){
}
bytes_per_sample = channels * info.play.precision / 8;
- byte_per_sec = bytes_per_sample * rate;
+ ao_data.bps = byte_per_sec = bytes_per_sample * rate;
ao_data.outburst = byte_per_sec > 100000 ? 16384 : 8192;
#ifdef __not_used__
@@ -746,7 +760,7 @@ static float get_delay(){
return (float) info.play.seek/ (float)byte_per_sec ;
#else
if (info.play.samples && enable_sample_timing == RTSC_ENABLED)
- return (float)(queued_samples - info.play.samples) / (float)byte_per_sec;
+ return (float)(queued_samples - info.play.samples) / (float)ao_data.samplerate;
else
return (float)((queued_bursts - info.play.eof) * ao_data.outburst) / (float)byte_per_sec;
#endif