Mercurial > mplayer.hg
changeset 16829:c1aabebbe2e7
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.)
author | rfelker |
---|---|
date | Sun, 23 Oct 2005 07:37:55 +0000 |
parents | d8012b9a754b |
children | 626e5ea95907 |
files | mencoder.c |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mencoder.c Sun Oct 23 07:32:35 2005 +0000 +++ b/mencoder.c Sun Oct 23 07:37:55 2005 +0000 @@ -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 } } }