summaryrefslogtreecommitdiff
path: root/libavfilter/vf_estdif.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2022-10-10 17:39:04 +0200
committerAnton Khirnov <anton@khirnov.net>2022-10-13 10:19:13 +0200
commit62bfcc340fbd8abe74973fe29b6d6da262306509 (patch)
tree80ac6fb148c96037d1aa4dc00d48e718be1ed8d6 /libavfilter/vf_estdif.c
parent2feeb6d10307a7172b11568bf8bd605416759886 (diff)
downloadffmpeg-62bfcc340fbd8abe74973fe29b6d6da262306509.tar.gz
lavfi/vf_estdif: drop a redundant context variable
It is only used in filter() and always set immediately before filter() is called, so it can be passed as a parameter instead.
Diffstat (limited to 'libavfilter/vf_estdif.c')
-rw-r--r--libavfilter/vf_estdif.c11
1 files 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;