1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00
FFmpeg/libavfilter
Jindřich Makovička 20a8ee3061 af_asyncts: fix compensation and PTS monotonicity
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: Jindřich Makovička <makovick@gmail.com>
2013-03-22 20:09:34 +01:00
..
x86 hqdn3d: Fix out of array read in LOWPASS 2013-03-13 09:14:59 +01:00
af_aformat.c Include libavutil/channel_layout.h instead of libavutil/audioconvert.h 2012-11-11 13:35:12 -05:00
af_amix.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
af_anull.c lavfi: convert input/ouput list compound literals to named objects 2012-10-10 22:26:12 +01:00
af_ashowinfo.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
af_asyncts.c af_asyncts: fix compensation and PTS monotonicity 2013-03-22 20:09:34 +01:00
af_channelmap.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
af_channelsplit.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
af_join.c af_join: do not leak input frames. 2013-03-16 05:37:01 +01:00
af_resample.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
af_volume.c Replace remaining includes of audioconvert.h with channel_layout.h 2013-03-08 07:42:13 +01:00
af_volume.h x86: af_volume: add SSE2-optimized s16 volume scaling 2012-12-05 11:23:37 -05:00
allfilters.c cosmetics: Prettyprint codec/format/filter registration files 2012-12-28 19:18:13 +01:00
asink_anullsink.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
asrc_anullsrc.c asrc_anullsrc: return EOF, not -1 2013-03-16 05:36:46 +01:00
audio.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
audio.h lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
avfilter.c lavfi: use designated initializers in avfilter_class 2013-03-16 05:33:06 +01:00
avfilter.h lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
avfiltergraph.c avfiltergraph: use sizeof(var) instead of sizeof(type) 2013-03-16 05:34:20 +01:00
avfiltergraph.h avfiltergraph: replace AVFilterGraph.filter_count with nb_filters 2013-03-16 05:33:23 +01:00
buffer.c Include libavutil/channel_layout.h instead of libavutil/audioconvert.h 2012-11-11 13:35:12 -05:00
buffersink.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
buffersink.h lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
buffersrc.c buffersrc: fix a typo. 2013-03-19 11:12:17 +01:00
buffersrc.h lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
drawutils.c lavfi: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:39 +02:00
drawutils.h Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat 2012-10-08 07:13:26 +02:00
fifo.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
filtfmts.c Remove pointless #undefs of previously forbidden functions. 2012-12-04 21:40:22 +01:00
formats.c lavfi: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:39 +02:00
formats.h cosmetics: Consistently use C-style comments with multiple inclusion guards 2012-07-03 17:35:12 +02:00
gradfun.h Give all anonymously typedeffed structs in headers a name 2012-10-06 09:27:11 +02:00
graphparser.c avfiltergraph: replace AVFilterGraph.filter_count with nb_filters 2013-03-16 05:33:23 +01:00
internal.h lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
libavfilter.v Add symbol versioning for shared libraries 2010-01-16 04:49:02 +00:00
Makefile avfilter: Compile FIFO filters unconditionally 2012-12-23 18:57:01 +01:00
split.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
version.h avfiltergraph: replace AVFilterGraph.filter_count with nb_filters 2013-03-16 05:33:23 +01:00
vf_aspect.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_blackframe.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_boxblur.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_copy.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_crop.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_cropdetect.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_delogo.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_drawbox.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_drawtext.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_fade.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_fieldorder.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_format.c lavfi: merge start_frame/draw_slice/end_frame 2012-11-28 08:50:19 +01:00
vf_fps.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_frei0r.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_gradfun.c vf_gradfun: fix uninitialized variable use 2013-03-11 18:28:34 +01:00
vf_hflip.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_hqdn3d.c hqdn3d: Fix out of array read in LOWPASS 2013-03-13 09:14:59 +01:00
vf_hqdn3d.h vf_hqdn3d: x86: Add proper arch optimization initialization 2013-02-01 13:11:45 +01:00
vf_libopencv.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_lut.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_null.c lavfi: merge start_frame/draw_slice/end_frame 2012-11-28 08:50:19 +01:00
vf_overlay.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_pad.c vf_pad: fix a & instead of && typo 2013-03-10 11:16:10 +01:00
vf_pixdesctest.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_scale.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_select.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_setpts.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_settb.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_showinfo.c vf_showinfo: remove its useless init function 2013-03-16 05:36:14 +01:00
vf_transpose.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_unsharp.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_vflip.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vf_yadif.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
video.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
video.h lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vsink_nullsink.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vsrc_color.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vsrc_movie.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
vsrc_nullsrc.c lavfi: convert input/ouput list compound literals to named objects 2012-10-10 22:26:12 +01:00
vsrc_testsrc.c lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00
yadif.h lavfi: switch to AVFrame. 2013-03-08 07:37:18 +01:00