On 10/30/2016 12:09 PM, Paul B Mahol wrote: > On 10/30/16, DeHackEd <g...@dehacked.net> wrote: >> Enables specifying how many threads are available to each filtergraph. >> --- >> v2->v3: >> - Typos in docs fixed >> >> v1->v2: >> - Reworded documentation >> - Removed hunk from ffmpeg_filter.c not directly applicable to patch >> >> doc/ffmpeg.texi | 10 ++++++++++ >> ffmpeg.h | 3 +++ >> ffmpeg_filter.c | 7 +++++++ >> ffmpeg_opt.c | 4 ++++ >> 4 files changed, 24 insertions(+) >> ... >> diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c >> index 4d25fff..dc94380 100644 >> --- a/ffmpeg_opt.c >> +++ b/ffmpeg_opt.c >> @@ -3365,12 +3365,16 @@ const OptionDef options[] = { >> "set profile", "profile" }, >> { "filter", HAS_ARG | OPT_STRING | OPT_SPEC | OPT_OUTPUT, { >> .off = OFFSET(filters) }, >> "set stream filtergraph", "filter_graph" }, >> + { "filter_threads", HAS_ARG | OPT_INT, { >> &filter_nbthreads }, >> + "number of non-complex filter threads" }, >> { "filter_script", HAS_ARG | OPT_STRING | OPT_SPEC | OPT_OUTPUT, { >> .off = OFFSET(filter_scripts) }, >> "read stream filtergraph description from a file", "filename" }, >> { "reinit_filter", HAS_ARG | OPT_INT | OPT_SPEC | OPT_INPUT, { .off >> = OFFSET(reinit_filters) }, >> "reinit filtergraph on input parameter changes", "" }, >> { "filter_complex", HAS_ARG | OPT_EXPERT, { >> .func_arg = opt_filter_complex }, >> "create a complex filtergraph", "graph_description" }, >> + { "filter_complex_threads", HAS_ARG | OPT_INT, { >> &filter_complex_nbthreads }, >> + "number of threads for -filter_complex" }, >> { "lavfi", HAS_ARG | OPT_EXPERT, { >> .func_arg = opt_filter_complex }, >> "create a complex filtergraph", "graph_description" }, >> { "filter_complex_script", HAS_ARG | OPT_EXPERT, { >> .func_arg = opt_filter_complex_script }, >> -- >> 1.8.4.1 >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > How this plays out with number of threads one can set for each filter > instance?
Each individual filter uses MIN(filter_specific_limit, filtergrpah_limit) threads, but regardless the filtergraph will create filtergraph_limit threads each time. This patch adds user control to the filtergraph_limit. My main motivation for this parameter is a system I have with 80 CPUs (including hyperthreads). The video filtering workload does not benefit from so many threads being created or used, and I suffer from a significant ulimit hit and greater difficulty debugging. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel