PR #22530 opened by toots
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22530
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22530.patch


>From ed9fe1a2e6a9beac10f7a35283dd2382c927b7aa Mon Sep 17 00:00:00 2001
From: Romain Beauxis <[email protected]>
Date: Tue, 17 Mar 2026 09:45:24 -0500
Subject: [PATCH] libavfilter/vf_frei0r: use .so suffix for plugins, add
 slibsuf option to override

---
 libavfilter/vf_frei0r.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c
index fc1b15821e..dee71917b3 100644
--- a/libavfilter/vf_frei0r.c
+++ b/libavfilter/vf_frei0r.c
@@ -70,6 +70,7 @@ typedef struct Frei0rContext {
 
     char *dl_name;
     char *params;
+    char *slibsuf;
     AVRational framerate;
 
     /* only used by the source */
@@ -173,7 +174,8 @@ static int set_params(AVFilterContext *ctx, const char 
*params)
 
 static int load_path(AVFilterContext *ctx, void **handle_ptr, const char 
*prefix, const char *name)
 {
-    char *path = av_asprintf("%s%s%s", prefix, name, SLIBSUF);
+    Frei0rContext *s = ctx->priv;
+    char *path = av_asprintf("%s%s%s", prefix, name, s->slibsuf);
     if (!path)
         return AVERROR(ENOMEM);
     av_log(ctx, AV_LOG_DEBUG, "Looking for frei0r effect in '%s'.\n", path);
@@ -413,8 +415,10 @@ static int process_command(AVFilterContext *ctx, const 
char *cmd, const char *ar
 #define FLAGS AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM
 #define TFLAGS AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM | 
AV_OPT_FLAG_RUNTIME_PARAM
 static const AVOption frei0r_options[] = {
-    { "filter_name",   NULL, OFFSET(dl_name), AV_OPT_TYPE_STRING, .flags = 
FLAGS },
-    { "filter_params", NULL, OFFSET(params),  AV_OPT_TYPE_STRING, .flags = 
TFLAGS },
+    { "filter_name",   NULL, OFFSET(dl_name),  AV_OPT_TYPE_STRING, .flags = 
FLAGS },
+    { "filter_params", NULL, OFFSET(params),   AV_OPT_TYPE_STRING, .flags = 
TFLAGS },
+    { "slibsuf",       "Suffix for the shared library name. frei0r plugins use 
.so even on macOS, "
+                       "but this can be overridden if needed.", 
OFFSET(slibsuf),  AV_OPT_TYPE_STRING, { .str = ".so" }, .flags = FLAGS },
     { NULL }
 };
 
@@ -502,8 +506,10 @@ static int source_request_frame(AVFilterLink *outlink)
 static const AVOption frei0r_src_options[] = {
     { "size",          "Dimensions of the generated video.", OFFSET(w),        
 AV_OPT_TYPE_IMAGE_SIZE, { .str = "320x240" }, .flags = FLAGS },
     { "framerate",     NULL,                                 
OFFSET(framerate), AV_OPT_TYPE_VIDEO_RATE, { .str = "25" }, 0, INT_MAX, .flags 
= FLAGS },
-    { "filter_name",   NULL,                                 OFFSET(dl_name),  
 AV_OPT_TYPE_STRING,                  .flags = FLAGS },
-    { "filter_params", NULL,                                 OFFSET(params),   
 AV_OPT_TYPE_STRING,                  .flags = FLAGS },
+    { "filter_name",   NULL,                                 OFFSET(dl_name),  
 AV_OPT_TYPE_STRING,                        .flags = FLAGS },
+    { "filter_params", NULL,                                 OFFSET(params),   
 AV_OPT_TYPE_STRING,                        .flags = FLAGS },
+    { "slibsuf",       "Suffix for the shared library name. frei0r plugins use 
.so even on macOS, "
+                       "but this can be overridden if needed.", 
OFFSET(slibsuf), AV_OPT_TYPE_STRING, { .str = ".so" },  .flags = FLAGS },
     { NULL },
 };
 
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to