diff options
author | corey <corey@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-02-07 20:22:44 +0000 |
---|---|---|
committer | corey <corey@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-02-07 20:22:44 +0000 |
commit | 15debd85d2181b75d1e2a1e0e0ffeed4b98f821f (patch) | |
tree | f7322d7d1585a290d33f0d83194e502a374b3061 /libmpdemux/demux_demuxers.c | |
parent | 5d1bccd70c0c9fd25c9d60fea303234ce2b609c9 (diff) | |
download | mpv-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.c | 8 |
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); } |