From 996f9f0c3280552d293c3dbe4266938927fd5908 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 18 Mar 2012 11:27:38 +0100 Subject: [PATCH] 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 deletion(-) 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 -- GitLab