From 7f02fcd91774818ad36cafde44aefe8924aa15b7 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 4 Feb 2015 17:46:39 +0100 Subject: [PATCH] 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 --- libavfilter/vf_fps.c | 5 +---- 1 file changed, 1 insertion(+), 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; }