• Marton Balint's avatar
    avfilter/vf_framerate: simplify filter · 0c31a387
    Marton Balint authored
    The framerate filter was quite convoluted with some filter_frame /
    request_frame logic bugs. It seemed easier to rewrite the whole filter_frame /
    request_frame part and also the frame interpolation ratio calculation part in
    one step.
    
    Notable changes:
    - The filter now only stores 2 frames instead of 3
    - filter_frame outputs all the frames it can to be able to handle consecutive
      filter_frame calls which previously caused early drops of buffered frames.
    - because of this, request_frame is largely simplified and it only outputs
      frames on flush. Previously consecuitve request_frame calls could cause the
      filter to think it is in flush mode filling its buffer with the same frames
      causing a "ghost" effect on the output.
    - PTS discontinuities are handled better
    - frames with unknown PTS values are now dropped
    
    Fixes ticket #4870.
    Probably fixes ticket #5493.
    Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
    0c31a387
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
fftools Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
configure Loading commit data...