[MPlayer-cvslog] CVS: main mencoder.c,1.315,1.316

Richard Felker CVS syncmail at mplayerhq.hu
Sun Oct 23 09:37:57 CEST 2005


CVS change done by Richard Felker CVS

Update of /cvsroot/mplayer/main
In directory mail:/var2/tmp/cvs-serv8650

Modified Files:
	mencoder.c 
Log Message:
honor decoder's/filter's decision to remove frames when using -noskip.
this may go against the original intention of the vf layer, but it's
how all the filters that drop frames have been written to work, so
it's now the de-facto standard.

without this patch, -noskip will result in tons of duplicate frames
(either soft or hard duplicates) and a/v desync whenever decimation,
ivtc, etc. is used. even with this patch -noskip is still a bad idea
for most of these purposes, but it will work reliably with filmdint,
framestep, and some other filters with fixed in:out ratios as long as
the right -ofps value is used. without this patch, there is no hope of
-noskip working with frame-dropping filters.

(this patch was previously committed erroneously as part of another
change, then reversed. it is now being committed again.)



Index: mencoder.c
===================================================================
RCS file: /cvsroot/mplayer/main/mencoder.c,v
retrieving revision 1.315
retrieving revision 1.316
diff -u -r1.315 -r1.316
--- mencoder.c	23 Oct 2005 07:32:35 -0000	1.315
+++ mencoder.c	23 Oct 2005 07:37:55 -0000	1.316
@@ -1300,6 +1300,8 @@
       badframes++;
       if(skip_flag<=0){
 	// unwanted skipping of a frame, what to do?
+        v_timer_corr-=(float)mux_v->h.dwScale/mux_v->h.dwRate;
+#if 0
 	if(skip_limit==0){
 	    // skipping not allowed -> write empty frame:
 	    if (!encode_duplicates || !sh_video->vfilter || ((vf_instance_t *)sh_video->vfilter)->control(sh_video->vfilter, VFCTRL_DUPLICATE_FRAME, 0) != CONTROL_TRUE)
@@ -1308,6 +1310,7 @@
 	    // skipping allowed -> skip it and distriubute timer error:
 	    v_timer_corr-=(float)mux_v->h.dwScale/mux_v->h.dwRate;
 	}
+#endif
       }
     }
 }




More information about the MPlayer-cvslog mailing list