Commit 4ebe12ef59 for ffmpeg

commit 4ebe12ef59f0f355bba28e501f6552fd8d9b85fc
Author: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date:   Thu Nov 5 10:27:27 2026 +0100

    avfilter/limiter,vf_limiter_init: Only use DSP context for DSP init

    Reviewed-by: Marvin Scholz <epirat07@gmail.com>
    Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>

diff --git a/libavfilter/limiter.h b/libavfilter/limiter.h
index 8740c51bcb..54d423d1f4 100644
--- a/libavfilter/limiter.h
+++ b/libavfilter/limiter.h
@@ -21,7 +21,6 @@

 #include <stddef.h>
 #include <stdint.h>
-#include "avfilter.h"

 typedef struct LimiterDSPContext {
     void (*limiter)(const uint8_t *src, uint8_t *dst,
@@ -29,20 +28,6 @@ typedef struct LimiterDSPContext {
                     int w, int h, int min, int max);
 } LimiterDSPContext;

-typedef struct LimiterContext {
-    const AVClass *class;
-    int min, max; /* user-facing option */
-    int planes;
-    int nb_planes;
-    int plane_min[4]; /* resolved per-plane limits */
-    int plane_max[4];
-    int linesize[4];
-    int width[4];
-    int height[4];
-
-    LimiterDSPContext dsp;
-} LimiterContext;
-
 void ff_limiter_init_x86(LimiterDSPContext *dsp, int bpp);

 #endif /* AVFILTER_LIMITER_H */
diff --git a/libavfilter/vf_limiter.c b/libavfilter/vf_limiter.c
index d3be902491..6edc1912eb 100644
--- a/libavfilter/vf_limiter.c
+++ b/libavfilter/vf_limiter.c
@@ -33,6 +33,20 @@ typedef struct ThreadData {
     AVFrame *out;
 } ThreadData;

+typedef struct LimiterContext {
+    const AVClass *class;
+    int min, max; /* user-facing option */
+    int planes;
+    int nb_planes;
+    int plane_min[4]; /* resolved per-plane limits */
+    int plane_max[4];
+    int linesize[4];
+    int width[4];
+    int height[4];
+
+    LimiterDSPContext dsp;
+} LimiterContext;
+
 #define OFFSET(x) offsetof(LimiterContext, x)
 #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM

@@ -88,7 +102,7 @@ static int config_input(AVFilterLink *inlink)
     s->width[1]  = s->width[2]  = AV_CEIL_RSHIFT(inlink->w, hsub);
     s->width[0]  = s->width[3]  = inlink->w;

-    ff_limiter_init(s, depth);
+    ff_limiter_init(&s->dsp, depth);

     return 0;
 }
diff --git a/libavfilter/vf_limiter_init.h b/libavfilter/vf_limiter_init.h
index fad61dfb38..a33b4dcc65 100644
--- a/libavfilter/vf_limiter_init.h
+++ b/libavfilter/vf_limiter_init.h
@@ -48,16 +48,16 @@ static void limiter##n(const uint8_t *ssrc, uint8_t *ddst,      \
 LIMITER(8,  uint8_t)
 LIMITER(16, uint16_t)

-av_unused static void ff_limiter_init(LimiterContext *s, int depth)
+av_unused static void ff_limiter_init(LimiterDSPContext *s, int depth)
 {
     if (depth == 8) {
-        s->dsp.limiter = limiter8;
+        s->limiter = limiter8;
     } else {
-        s->dsp.limiter = limiter16;
+        s->limiter = limiter16;
     }

 #if ARCH_X86 && HAVE_X86ASM
-    ff_limiter_init_x86(&s->dsp, depth);
+    ff_limiter_init_x86(s, depth);
 #endif

 }
diff --git a/tests/checkasm/vf_limiter.c b/tests/checkasm/vf_limiter.c
index 2cfc1ee647..28730677fd 100644
--- a/tests/checkasm/vf_limiter.c
+++ b/tests/checkasm/vf_limiter.c
@@ -51,10 +51,10 @@ static void check_limiter(int depth)
     if (depth == 16)
         w /= 2;

-    LimiterContext s;
+    LimiterDSPContext s;
     ff_limiter_init(&s, depth);

-    if (check_func(s.dsp.limiter, "limiter%d", depth)) {
+    if (check_func(s.limiter, "limiter%d", depth)) {
         call_ref(src, dst_ref, WIDTH_PADDED, WIDTH_PADDED, w, HEIGHT, min, max);
         call_new(src, dst_new, WIDTH_PADDED, WIDTH_PADDED, w, HEIGHT, min, max);