diff mencoder.c @ 17636:b849a99cdc3c

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.
author corey
date Fri, 17 Feb 2006 01:57:41 +0000
parents 2fd66535616a
children 1b74cb09e9c1
line wrap: on
line diff
--- a/mencoder.c	Thu Feb 16 22:43:42 2006 +0000
+++ b/mencoder.c	Fri Feb 17 01:57:41 2006 +0000
@@ -1037,12 +1037,12 @@
     else 
         sscanf(seek_to_sec, "%f", &d);
 
-    demux_seek(demuxer, d, 1);
+    demux_seek(demuxer, d, audio_delay, 1);
 //  there is 2 way to handle the -ss option in 3-pass mode:
 // > 1. do the first pass for the whole file, and use -ss for 2nd/3rd pases only
 // > 2. do all the 3 passes with the same -ss value
 //  this line enables behaviour 1. (and kills 2. at the same time):
-//    if(demuxer2) demux_seek(demuxer2, d, 1);
+//    if(demuxer2) demux_seek(demuxer2, d, audio_delay, 1);
 }
 
 if (out_file_format == MUXER_TYPE_MPEG)
@@ -1770,7 +1770,7 @@
     if (sh_video->pts >= next_edl_record->stop_sec) return 1; // nothing to do...
 
     if (!edl_seek_type) {
-        if(demux_seek(demuxer, next_edl_record->stop_sec - sh_video->pts, 0)){
+        if(demux_seek(demuxer, next_edl_record->stop_sec - sh_video->pts, audio_delay, 0)){
             sh_video->pts = demuxer->video->pts;
             //if (vo_vobsub) vobsub_seek(vo_vobsub,sh_video->pts);
             resync_video_stream(sh_video);