aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-02-04 17:46:39 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-02-04 18:52:14 +0100
commit7f02fcd91774818ad36cafde44aefe8924aa15b7 (patch)
treef4b4c777d71d0914f5dd39e7739f598c4d949992 /libavfilter
parentb11994593ae4c3856db735800f24d38293838759 (diff)
downloadffmpeg-7f02fcd91774818ad36cafde44aefe8924aa15b7.tar.gz
avfilter/vf_fps: Do not drop a random subset of frames
This also avoids droping the frame which is closest to the target timestamp Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vf_fps.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c
index a38633d50a..25dd83123a 100644
--- a/libavfilter/vf_fps.c
+++ b/libavfilter/vf_fps.c
@@ -214,17 +214,14 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
if (delta < 1) {
/* drop the frame and everything buffered except the first */
- AVFrame *tmp;
int drop = av_fifo_size(s->fifo)/sizeof(AVFrame*);
av_log(ctx, AV_LOG_DEBUG, "Dropping %d frame(s).\n", drop);
s->drop += drop;
- av_fifo_generic_read(s->fifo, &tmp, sizeof(tmp), NULL);
flush_fifo(s->fifo);
- ret = write_to_fifo(s->fifo, tmp);
+ ret = write_to_fifo(s->fifo, buf);
- av_frame_free(&buf);
return ret;
}