summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_demuxers.c
diff options
context:
space:
mode:
authorcorey <corey@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-02-17 01:57:41 +0000
committercorey <corey@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-02-17 01:57:41 +0000
commit1ab575101ab9e2e250d782b4e104fcca1c1c66b0 (patch)
tree740c93933a4d6c891deccda22ab985c333951981 /libmpdemux/demux_demuxers.c
parent808ce9a03a6d2f810ab3616c33105a08b987f07c (diff)
downloadmpv-1ab575101ab9e2e250d782b4e104fcca1c1c66b0.tar.bz2
mpv-1ab575101ab9e2e250d782b4e104fcca1c1c66b0.tar.xz
Second-try commit of this patch.
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. I've quadruple checked this time; hopefully I haven't missed anything. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17637 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);
}