diff options
Diffstat (limited to 'mencoder.c')
-rw-r--r-- | mencoder.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mencoder.c b/mencoder.c index d0e01a0bd4..a291f94309 100644 --- a/mencoder.c +++ b/mencoder.c @@ -132,6 +132,7 @@ static float c_total=0; float force_fps=0; float force_ofps=0; // set to 24 for inverse telecine +static int skip_limit=-1; int force_srate=0; @@ -862,11 +863,13 @@ if(demuxer2){ // 3-pass encoding, read control file (frameno.avi) // check frame duplicate/drop: -if(v_timer_corr>=(float)mux_v->h.dwScale/mux_v->h.dwRate){ +if(v_timer_corr>=(float)mux_v->h.dwScale/mux_v->h.dwRate && + (skip_limit<0 || skip_flag<skip_limit) ){ v_timer_corr-=(float)mux_v->h.dwScale/mux_v->h.dwRate; ++skip_flag; // skip } else -while(v_timer_corr<=-(float)mux_v->h.dwScale/mux_v->h.dwRate){ +while(v_timer_corr<=-(float)mux_v->h.dwScale/mux_v->h.dwRate && + (skip_limit<0 || (-skip_flag)<skip_limit) ){ v_timer_corr+=(float)mux_v->h.dwScale/mux_v->h.dwRate; --skip_flag; // dup } |