[FFmpeg-devel] [PATCH 5/7] ffplay: add filter_jobs arg
rcombs
rcombs at rcombs.me
Tue Sep 20 20:50:19 EEST 2022
This is similar to filter_threads, but controls job count.
---
doc/ffplay.texi | 5 +++++
fftools/ffplay.c | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/doc/ffplay.texi b/doc/ffplay.texi
index 5dd860b846..abc857013f 100644
--- a/doc/ffplay.texi
+++ b/doc/ffplay.texi
@@ -196,6 +196,11 @@ will produce a thread pool with this many threads available for parallel
processing. The default is 0 which means that the thread count will be
determined by the number of available CPUs.
+ at item -filter_jobs @var{nb_jobs}
+Defines how many distinct jobs a filter pipeline will break frames into.
+The default is 0 which means that the thread count will be determined
+by the CPU topology.
+
@end table
@section While playing
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index bcc00afe31..bce1d20c49 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -355,6 +355,7 @@ static char *afilters = NULL;
static int autorotate = 1;
static int find_stream_info = 1;
static int filter_nbthreads = 0;
+static int filter_nbjobs = 0;
/* current context */
static int is_full_screen;
@@ -1963,6 +1964,7 @@ static int configure_audio_filters(VideoState *is, const char *afilters, int for
if (!(is->agraph = avfilter_graph_alloc()))
return AVERROR(ENOMEM);
is->agraph->nb_threads = filter_nbthreads;
+ is->agraph->nb_jobs = filter_nbjobs;
av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC);
@@ -2168,6 +2170,7 @@ static int video_thread(void *arg)
goto the_end;
}
graph->nb_threads = filter_nbthreads;
+ graph->nb_jobs = filter_nbjobs;
if ((ret = configure_video_filters(graph, is, vfilters_list ? vfilters_list[is->vfilter_idx] : NULL, frame)) < 0) {
SDL_Event event;
event.type = FF_QUIT_EVENT;
@@ -3615,6 +3618,7 @@ static const OptionDef options[] = {
{ "find_stream_info", OPT_BOOL | OPT_INPUT | OPT_EXPERT, { &find_stream_info },
"read and decode the streams to fill missing information with heuristics" },
{ "filter_threads", HAS_ARG | OPT_INT | OPT_EXPERT, { &filter_nbthreads }, "number of filter threads per graph" },
+ { "filter_jobs", HAS_ARG | OPT_INT | OPT_EXPERT, { &filter_nbjobs }, "number of filter jobs per graph" },
{ NULL, },
};
--
2.37.2
More information about the ffmpeg-devel
mailing list