• Jindřich Makovička's avatar
    af_asyncts: fix compensation and PTS monotonicity · 20a8ee30
    Jindřich Makovička authored
    This patch improves af_asyncts behavior on streams with bogus PTS, which
    are either non-monotonic, or contain PTS jitter, and trigger the
    non-monotonicity error. With this patch, af_asyncts is able to correct
    these streams and avoid the error.
    
    Firstly, it fixes resample compensation calculation by supplying proper
    units to avresample_set_compensation (sample count per second instead
    of sample count per some arbitrary frame size). Also, the calculation of
    the compensation itself is fixed - delta is proportional to an adjustment
    of the compensation, not the compensation itself. Ideally, the compensation
    should converge to a value that keeps delta at zero.
    
    To be able to deal with sources with PTS jitter even without resampling,
    small PTS errors are adjusted, so the output frames do not overlap.
    
    Finally, one more monotonicity check is added.
    
    The FATE reference changes because now there is 8 less samples of
    silence because of the pts jitter.
    Signed-off-by: 's avatarJindřich Makovička <makovick@gmail.com>
    20a8ee30
Name
Last commit
Last update
compat Loading commit data...
doc 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...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitignore 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 Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
avconv.c Loading commit data...
avconv.h Loading commit data...
avconv_filter.c Loading commit data...
avconv_opt.c Loading commit data...
avplay.c Loading commit data...
avprobe.c Loading commit data...
avserver.c Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...