History

avfilter/avfilter: add AVFilterGraph->max_buffered_frames to limit buffered frames

Marton Balint committed 1 year ago

Commit b24155c1 parent 71468e84 files · +17 −2Browse files

Unified · Split

4 files
  1. doc/APIchanges +3 −0
  2. libavfilter/avfilter.h +8 −0
  3. libavfilter/avfiltergraph.c +4 −0
  4. libavfilter/version.h +2 −2
doc/APIchanges+3−0
@@ -2,6 +2,9 @@ The last version increases of all libraries were on 2025-03-28 · 1 unmodified line
22
33 API changes, most recent first:
44
5+2025-07-xx - xxxxxxxxxd - lavfi 11.2.100 - avfilter.h
6+ Add AVFilterGraph->max_buffered_frames.
7+
58 2025-07-07 - eca477da52 - lavc 62.6.100 - packet.h
69 Add AV_PKT_DATA_RTCP_SR.
710
libavfilter/avfilter.h+8−0
@@ -629,6 +629,14 @@ typedef struct AVFilterGraph { · 628 unmodified lines
629629 avfilter_execute_func *execute;
630630
631631 char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions
632+
633+ /**
634+ * Sets the maximum number of buffered frames in the filtergraph combined.
635+ *
636+ * Zero means no limit. This field must be set before calling
637+ * avfilter_graph_config().
638+ */
639+ unsigned max_buffered_frames;
632640 } AVFilterGraph;
633641
634642 /**
libavfilter/avfiltergraph.c+4−0
@@ -56,6 +56,8 @@ static const AVOption filtergraph_options[] = { · 55 unmodified lines
5656 AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, F|V },
5757 {"aresample_swr_opts" , "default aresample filter options" , OFFSET(aresample_swr_opts) ,
5858 AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, F|A },
59+ {"max_buffered_frames" , "maximum number of buffered frames allowed", OFFSET(max_buffered_frames),
60+ AV_OPT_TYPE_UINT, {.i64 = 0}, 0, UINT_MAX, F|V|A },
5961 { NULL },
6062 };
6163
@@ -1296,6 +1298,8 @@ int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx) · 1234 unmodified lines
12961298 {
12971299 int ret;
12981300
1301+ if (graphctx->max_buffered_frames)
1302+ fffiltergraph(graphctx)->frame_queues.max_queued = graphctx->max_buffered_frames;
12991303 if ((ret = graph_check_validity(graphctx, log_ctx)))
13001304 return ret;
13011305 if ((ret = graph_config_formats(graphctx, log_ctx)))
libavfilter/version.h+2−2
@@ -31,8 +31,8 @@ · 30 unmodified lines
3131
3232 #include "version_major.h"
3333
34−#define LIBAVFILTER_VERSION_MINOR 1
35−#define LIBAVFILTER_VERSION_MICRO 101
34+#define LIBAVFILTER_VERSION_MINOR 2
35+#define LIBAVFILTER_VERSION_MICRO 100
3636
3737
3838 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t