diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index c5f6c0462b..627caedc01 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -123,10 +123,8 @@ typedef struct V360Context { } V360Context; typedef struct ThreadData { - V360Context *s; AVFrame *in; AVFrame *out; - int nb_planes; } ThreadData; #define OFFSET(x) offsetof(V360Context, x) @@ -266,13 +264,13 @@ typedef struct XYRemap1 { static int remap1_##bits##bit_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) \ { \ ThreadData *td = (ThreadData*)arg; \ - const V360Context *s = td->s; \ + const V360Context *s = ctx->priv; \ const AVFrame *in = td->in; \ AVFrame *out = td->out; \ \ int plane, x, y; \ \ - for (plane = 0; plane < td->nb_planes; plane++) { \ + for (plane = 0; plane < s->nb_planes; plane++) { \ const int in_linesize = in->linesize[plane] / div; \ const int out_linesize = out->linesize[plane] / div; \ const uint##bits##_t *src = (const uint##bits##_t *)in->data[plane]; \ @@ -323,13 +321,13 @@ typedef struct XYRemap4 { static int remap##window_size##_##bits##bit_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) \ { \ ThreadData *td = (ThreadData*)arg; \ - const V360Context *s = td->s; \ + const V360Context *s = ctx->priv; \ const AVFrame *in = td->in; \ AVFrame *out = td->out; \ \ int plane, x, y, i, j; \ \ - for (plane = 0; plane < td->nb_planes; plane++) { \ + for (plane = 0; plane < s->nb_planes; plane++) { \ const int in_linesize = in->linesize[plane] / div; \ const int out_linesize = out->linesize[plane] / div; \ const uint##bits##_t *src = (const uint##bits##_t *)in->data[plane]; \ @@ -2206,10 +2204,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } av_frame_copy_props(out, in); - td.s = s; td.in = in; td.out = out; - td.nb_planes = s->nb_planes; ctx->internal->execute(ctx, s->remap_slice, &td, NULL, FFMIN(outlink->h, ff_filter_get_nb_threads(ctx)));