Fixes ticket #6285.
Signed-off-by: Marton Balint <[email protected]>
---
libavfilter/vf_framerate.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c
index b4a74f7..45fab25 100644
--- a/libavfilter/vf_framerate.c
+++ b/libavfilter/vf_framerate.c
@@ -341,7 +341,7 @@ static int blend_frames8(AVFilterContext *ctx, float
interpolate,
return 0;
}
-static int process_work_frame(AVFilterContext *ctx, int stop)
+static int process_work_frame(AVFilterContext *ctx, int filter_frame)
{
FrameRateContext *s = ctx->priv;
int64_t work_next_pts;
@@ -360,7 +360,7 @@ static int process_work_frame(AVFilterContext *ctx, int
stop)
// the filter cannot do anything
ff_dlog(ctx, "process_work_frame() no current frame cached: move on to
next frame, do not output a frame\n");
next_source(ctx);
- return 0;
+ return filter_frame ? 0 : ff_request_frame(ctx->inputs[0]);
}
work_next_pts = s->pts + s->average_dest_pts_delta;
@@ -384,7 +384,7 @@ static int process_work_frame(AVFilterContext *ctx, int
stop)
ff_dlog(ctx, "process_work_frame() work crnt pts >= srce next pts:
SKIP FRAME, move on to next frame, do not output a frame\n");
next_source(ctx);
s->pending_srce_frames--;
- return 0;
+ return filter_frame ? 0 : ff_request_frame(ctx->inputs[0]);
}
// calculate interpolation
@@ -436,7 +436,7 @@ copy_done:
}
ff_dlog(ctx, "process_work_frame() output a frame\n");
s->dest_frame_num++;
- if (stop)
+ if (filter_frame)
s->pending_end_frame = 0;
s->last_dest_frame_pts = s->work->pts;
--
2.10.2
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel