summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/avfilter.c7
-rw-r--r--libavfilter/internal.h6
2 files changed, 13 insertions, 0 deletions
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index a8e5a5a73d..b2365354a2 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -783,6 +783,13 @@ void avfilter_free(AVFilterContext *filter)
av_free(filter);
}
+int ff_filter_get_nb_threads(AVFilterContext *ctx)
+{
+ if (ctx->nb_threads > 0)
+ return FFMIN(ctx->nb_threads, ctx->graph->nb_threads);
+ return ctx->graph->nb_threads;
+}
+
static int process_options(AVFilterContext *ctx, AVDictionary **options,
const char *args)
{
diff --git a/libavfilter/internal.h b/libavfilter/internal.h
index 769e65b2fc..3856012aa9 100644
--- a/libavfilter/internal.h
+++ b/libavfilter/internal.h
@@ -402,4 +402,10 @@ static inline int ff_norm_qscale(int qscale, int type)
return qscale;
}
+/**
+ * Get number of threads for current filter instance.
+ * This number is always same or less than graph->nb_threads.
+ */
+int ff_filter_get_nb_threads(AVFilterContext *ctx);
+
#endif /* AVFILTER_INTERNAL_H */