diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 21f8d9e00d..a8e5a5a73d 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -616,6 +616,8 @@ static const AVOption avfilter_options[] = { { .i64 = AVFILTER_THREAD_SLICE }, 0, INT_MAX, FLAGS, "thread_type" }, { "slice", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AVFILTER_THREAD_SLICE }, .unit = "thread_type" }, { "enable", "set enable expression", OFFSET(enable_str), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS }, + { "threads", "Allowed number of threads", OFFSET(nb_threads), AV_OPT_TYPE_INT, + { .i64 = 0 }, 0, INT_MAX, FLAGS }, { NULL }, }; diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index d804c89d70..15d00f7058 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -361,6 +361,13 @@ struct AVFilterContext { * hardware context information. */ AVBufferRef *hw_device_ctx; + + /** + * Max number of threads allowed in this filter instance. + * If <= 0, its value is ignored. + * Overrides global number of threads set per filter graph. + */ + int nb_threads; }; /** diff --git a/libavfilter/version.h b/libavfilter/version.h index e3e3ed0933..1b91d60820 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -30,7 +30,7 @@ #include "libavutil/version.h" #define LIBAVFILTER_VERSION_MAJOR 6 -#define LIBAVFILTER_VERSION_MINOR 57 +#define LIBAVFILTER_VERSION_MINOR 58 #define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \