From ac4c09a4c89cd438f8086f44d8dfc0e0db9ce306 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 25 Nov 2022 15:38:23 +0100 Subject: lavfi/vf_nnedi: set output frame durations CFR output when the filter is enabled, rescale input durations otherwise. --- libavfilter/vf_nnedi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavfilter/vf_nnedi.c b/libavfilter/vf_nnedi.c index 63b83e5efd..8f73c0384f 100644 --- a/libavfilter/vf_nnedi.c +++ b/libavfilter/vf_nnedi.c @@ -667,6 +667,8 @@ static int get_frame(AVFilterContext *ctx, int is_second) av_frame_copy_props(dst, s->prev); dst->interlaced_frame = 0; dst->pts = s->pts; + dst->duration = av_rescale_q(1, av_inv_q(outlink->frame_rate), + outlink->time_base); ff_filter_execute(ctx, filter_slice, dst, NULL, FFMIN(s->planeheight[1] / 2, s->nb_threads)); @@ -690,6 +692,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) if ((s->deint && !s->prev->interlaced_frame) || ctx->is_disabled) { s->prev->pts *= 2; + s->prev->duration = av_rescale_q(s->prev->duration, inlink->time_base, + ctx->outputs[0]->time_base); ret = ff_filter_frame(ctx->outputs[0], s->prev); s->prev = in; return ret; -- cgit v1.2.3