summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-03-18 11:27:38 +0100
committerAnton Khirnov <anton@khirnov.net>2012-04-01 09:03:35 +0200
commit996f9f0c3280552d293c3dbe4266938927fd5908 (patch)
treeb131ed11f438af4febbe9e46e8181ee1de923413
parentddb4431208745ea270dce8fce4cba999f0ed4303 (diff)
avfiltergraph: add an AVClass to AVFilterGraph on next major bump.
It will be used for logging, possibly also AVOptions.
-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