summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavfilter/avfiltergraph.c16
-rw-r--r--libavfilter/avfiltergraph.h4
-rw-r--r--libavfilter/version.h8
3 files changed, 27 insertions, 1 deletions
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 8c43251c4c..9b73cc95ab 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -27,9 +27,23 @@
#include "avfiltergraph.h"
#include "internal.h"
+#include "libavutil/log.h"
+
+static const AVClass filtergraph_class = {
+ .class_name = "AVFilterGraph",
+ .item_name = av_default_item_name,
+ .version = LIBAVUTIL_VERSION_INT,
+};
+
AVFilterGraph *avfilter_graph_alloc(void)
{
- return av_mallocz(sizeof(AVFilterGraph));
+ AVFilterGraph *ret = av_mallocz(sizeof(AVFilterGraph));
+ if (!ret)
+ return NULL;
+#if FF_API_GRAPH_AVCLASS
+ ret->av_class = &filtergraph_class;
+#endif
+ return ret;
}
void avfilter_graph_free(AVFilterGraph **graph)
diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h
index f9cf5cd3f9..733d1c4a51 100644
--- a/libavfilter/avfiltergraph.h
+++ b/libavfilter/avfiltergraph.h
@@ -23,8 +23,12 @@
#define AVFILTER_AVFILTERGRAPH_H
#include "avfilter.h"
+#include "libavutil/log.h"
typedef struct AVFilterGraph {
+#if FF_API_GRAPH_AVCLASS
+ const AVClass *av_class;
+#endif
unsigned filter_count;
AVFilterContext **filters;
diff --git a/libavfilter/version.h b/libavfilter/version.h
index 09d6700d12..d84b67ff76 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -40,4 +40,12 @@
LIBAVFILTER_VERSION_MICRO)
#define LIBAVFILTER_BUILD LIBAVFILTER_VERSION_INT
+/**
+ * Those FF_API_* defines are not part of public API.
+ * They may change, break or disappear at any time.
+ */
+#ifndef FF_API_GRAPH_AVCLASS
+#define FF_API_GRAPH_AVCLASS (LIBAVFILTER_VERSION_MAJOR > 2)
+#endif
+
#endif // AVFILTER_VERSION_H