[FFmpeg-devel] [PATCH 7/8] lavfi/vf_estdif: drop a redundant context variable

Anton Khirnov anton at khirnov.net
Mon Oct 10 19:10:54 EEST 2022


It is only used in filter() and always set immediately before filter()
is called, so it can be passed as a parameter instead.
---
 libavfilter/vf_estdif.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/libavfilter/vf_estdif.c b/libavfilter/vf_estdif.c
index 9a3195fefb..9e826fd424 100644
--- a/libavfilter/vf_estdif.c
+++ b/libavfilter/vf_estdif.c
@@ -48,7 +48,6 @@ typedef struct ESTDIFContext {
     int max;
     int nb_planes;
     int nb_threads;
-    int64_t pts;
     AVFrame *prev;
 
     void (*interpolate)(struct ESTDIFContext *s, uint8_t *dst,
@@ -433,7 +432,7 @@ static int deinterlace_slice(AVFilterContext *ctx, void *arg,
     return 0;
 }
 
-static int filter(AVFilterContext *ctx, AVFrame *in)
+static int filter(AVFilterContext *ctx, AVFrame *in, int64_t pts)
 {
     ESTDIFContext *s = ctx->priv;
     AVFilterLink *outlink = ctx->outputs[0];
@@ -445,7 +444,7 @@ static int filter(AVFilterContext *ctx, AVFrame *in)
         return AVERROR(ENOMEM);
     av_frame_copy_props(out, in);
     out->interlaced_frame = 0;
-    out->pts = s->pts;
+    out->pts = pts;
 
     td.out = out; td.in = in;
     ff_filter_execute(ctx, deinterlace_slice, &td, NULL,
@@ -509,16 +508,14 @@ static int config_input(AVFilterLink *inlink)
         return ret;
     }
 
-    s->pts = s->prev->pts * 2;
-    ret = filter(ctx, s->prev);
+    ret = filter(ctx, s->prev, s->prev->pts * 2);
     if (ret < 0 || s->mode == 0) {
         av_frame_free(&s->prev);
         s->prev = in;
         return ret;
     }
 
-    s->pts = s->prev->pts + in->pts;
-    ret = filter(ctx, s->prev);
+    ret = filter(ctx, s->prev, s->prev->pts + in->pts);
     av_frame_free(&s->prev);
     s->prev = in;
     return ret;
-- 
2.35.1



More information about the ffmpeg-devel mailing list