summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_demuxers.c
diff options
context:
space:
mode:
authorcorey <corey@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-02-07 20:22:44 +0000
committercorey <corey@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-02-07 20:22:44 +0000
commit15debd85d2181b75d1e2a1e0e0ffeed4b98f821f (patch)
treef7322d7d1585a290d33f0d83194e502a374b3061 /libmpdemux/demux_demuxers.c
parent5d1bccd70c0c9fd25c9d60fea303234ce2b609c9 (diff)
downloadmpv-15debd85d2181b75d1e2a1e0e0ffeed4b98f821f.tar.bz2
mpv-15debd85d2181b75d1e2a1e0e0ffeed4b98f821f.tar.xz
1. Include audio_delay as an argument to demux_seek.
2. Modify demux_seek_avi to adjust the audio/video stream positions so that mplayer/mencoder will instantly be in sync even when -delay is specified. Other demuxers could be modified similarly in the future. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17554 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_demuxers.c')
-rw-r--r--libmpdemux/demux_demuxers.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libmpdemux/demux_demuxers.c b/libmpdemux/demux_demuxers.c
index a3e294a04c..092be8d505 100644
--- a/libmpdemux/demux_demuxers.c
+++ b/libmpdemux/demux_demuxers.c
@@ -57,7 +57,7 @@ static int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds) {
return 0;
}
-static void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,int flags) {
+static void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_delay,int flags) {
dd_priv_t* priv;
float pos;
priv=demuxer->priv;
@@ -66,13 +66,13 @@ static void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,int flags
priv->sd->stream->eof = 0;
// Seek video
- demux_seek(priv->vd,rel_seek_secs,flags);
+ demux_seek(priv->vd,rel_seek_secs,audio_delay,flags);
// Get the new pos
pos = demuxer->video->pts;
if(priv->ad != priv->vd) {
sh_audio_t* sh = (sh_audio_t*)demuxer->audio->sh;
- demux_seek(priv->ad,pos,1);
+ demux_seek(priv->ad,pos,audio_delay,1);
// In case the demuxer don't set pts
if(!demuxer->audio->pts)
demuxer->audio->pts = pos-((ds_tell_pts(demuxer->audio)-sh->a_in_buffer_len)/(float)sh->i_bps);
@@ -80,7 +80,7 @@ static void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,int flags
}
if(priv->sd != priv->vd)
- demux_seek(priv->sd,pos,1);
+ demux_seek(priv->sd,pos,audio_delay,1);
}