[libav-commits] avfiltergraph: add an AVClass to AVFilterGraph on next major bump.

Anton Khirnov git at libav.org
Sun Apr 1 09:06:15 CEST 2012


Module: libav
Branch: master
Commit: 996f9f0c3280552d293c3dbe4266938927fd5908

Author:    Anton Khirnov <anton at khirnov.net>
Committer: Anton Khirnov <anton at khirnov.net>
Date:      Sun Mar 18 11:27:38 2012 +0100

avfiltergraph: add an AVClass to AVFilterGraph on next major bump.

It will be used for logging, possibly also AVOptions.

---

 libavfilter/avfiltergraph.c |   16 +++++++++++++++-
 libavfilter/avfiltergraph.h |    4 ++++
 libavfilter/version.h       |    8 ++++++++
 3 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 8c43251..9b73cc9 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 f9cf5cd..733d1c4 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 09d6700..d84b67f 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



More information about the libav-commits mailing list