From 00fc2c40cad4a3c6e1a419941013820f501fc025 Mon Sep 17 00:00:00 2001
From: Paul B Mahol <onemda@gmail.com>
Date: Sat, 27 Aug 2016 22:10:10 +0200
Subject: [PATCH 1/3] avfilter: add nb_threads to AVFilterContext

To be used in following commits.
---
 libavfilter/avfilter.c | 2 ++
 libavfilter/avfilter.h | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 21f8d9e..a8e5a5a 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 d804c89..15d00f7 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;
 };
 
 /**
-- 
2.9.1

