diff libmpdemux/demux_audio.c @ 8056:324b6e5387be

A-V sync cleanup: sh_audio->timer replaced by sh_audio->delay, it contains delay relative to sh_video->timer (or to 0 if audioonly). It fixes ct: drifts of very long (several hours) playback.
author arpi
date Sat, 02 Nov 2002 19:52:59 +0000
parents 3dc0b71630ff
children 884d233c25d5
line wrap: on
line diff
--- a/libmpdemux/demux_audio.c	Sat Nov 02 18:57:14 2002 +0000
+++ b/libmpdemux/demux_audio.c	Sat Nov 02 19:52:59 2002 +0000
@@ -295,7 +295,7 @@
     }
     if(len > 0)
       high_res_mp3_seek(demuxer,len);
-    sh_audio->timer = priv->last_pts -  (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
+    sh_audio->delay = priv->last_pts -  (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
     resync_audio_stream(sh_audio);
     return;
   }
@@ -307,13 +307,13 @@
     pos = base + (rel_seek_secs*sh_audio->i_bps);
 
   if(demuxer->movi_end && pos >= demuxer->movi_end) {
-    sh_audio->timer = (stream_tell(s) - demuxer->movi_start)/(float)sh_audio->i_bps;
+    sh_audio->delay = (stream_tell(s) - demuxer->movi_start)/(float)sh_audio->i_bps;
     return;
   } else if(pos < demuxer->movi_start)
     pos = demuxer->movi_start;
 
   priv->last_pts = (pos-demuxer->movi_start)/(float)sh_audio->i_bps;
-  sh_audio->timer = priv->last_pts - (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
+  sh_audio->delay = priv->last_pts - (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
   
   switch(priv->frmt) {
   case WAV: