From 48a5adab62bd2a553f5069d41fa632a0701835e5 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 17 Mar 2013 19:44:24 +0100 Subject: [PATCH] lavfi: add avfilter_init_str() to replace avfilter_init_filter(). Drop the unused opaque parameter from its signature. --- doc/APIchanges | 1 + libavfilter/avfilter.c | 7 +++++++ libavfilter/avfilter.h | 16 ++++++++++++++++ libavfilter/avfiltergraph.c | 4 +++- libavfilter/filtfmts.c | 2 +- libavfilter/graphparser.c | 3 ++- libavfilter/version.h | 3 +++ 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 9748565a08..0def56eb95 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -20,6 +20,7 @@ API changes, most recent first: avfilter_graph_add_filter(). Add AVFilterContext.graph pointing to the AVFilterGraph that contains the filter. + Add avfilter_init_str(), deprecate avfilter_init_filter(). 2013-xx-xx - lavfi 3.7.0 - avfilter.h Add AVFilter.priv_class for exporting filter options through the AVOptions API diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index c32ae1745a..cbe3fdbd71 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -508,7 +508,14 @@ static int process_unnamed_options(AVFilterContext *ctx, AVDictionary **options, return 0; } +#if FF_API_AVFILTER_INIT_FILTER int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque) +{ + return avfilter_init_str(filter, args); +} +#endif + +int avfilter_init_str(AVFilterContext *filter, const char *args) { AVDictionary *options = NULL; AVDictionaryEntry *e; diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index ca2e7b7336..a01d7e631f 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -645,6 +645,8 @@ attribute_deprecated int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name); #endif + +#if FF_API_AVFILTER_INIT_FILTER /** * Initialize a filter. * @@ -655,7 +657,21 @@ int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *in * of this parameter varies by filter. * @return zero on success */ +attribute_deprecated int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque); +#endif + +/** + * Initialize a filter with the supplied parameters. + * + * @param ctx uninitialized filter context to initialize + * @param args Options to initialize the filter with. This must be a + * ':'-separated list of options in the 'key=value' form. + * May be NULL if the options have been set directly using the + * AVOptions API or there are no options that need to be set. + * @return 0 on success, a negative AVERROR on failure + */ +int avfilter_init_str(AVFilterContext *ctx, const char *args); /** * Free a filter context. This will also remove the filter from its diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 5679ad98bc..7c88ecd908 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -103,7 +103,9 @@ int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt, *filt_ctx = avfilter_graph_alloc_filter(graph_ctx, filt, name); if (!*filt_ctx) return AVERROR(ENOMEM); - if ((ret = avfilter_init_filter(*filt_ctx, args, opaque)) < 0) + + ret = avfilter_init_str(*filt_ctx, args); + if (ret < 0) goto fail; return 0; diff --git a/libavfilter/filtfmts.c b/libavfilter/filtfmts.c index 480b277468..1ac3116b6d 100644 --- a/libavfilter/filtfmts.c +++ b/libavfilter/filtfmts.c @@ -57,7 +57,7 @@ int main(int argc, char **argv) filter_name); return 1; } - if (avfilter_init_filter(filter_ctx, filter_args, NULL) < 0) { + if (avfilter_init_str(filter_ctx, filter_args) < 0) { fprintf(stderr, "Impossible to init filter '%s' with arguments '%s'\n", filter_name, filter_args); return 1; diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c index 5738a12e06..d00da9cb2d 100644 --- a/libavfilter/graphparser.c +++ b/libavfilter/graphparser.c @@ -123,7 +123,8 @@ static int create_filter(AVFilterContext **filt_ctx, AVFilterGraph *ctx, int ind args = tmp_args; } - if ((ret = avfilter_init_filter(*filt_ctx, args, NULL)) < 0) { + ret = avfilter_init_str(*filt_ctx, args); + if (ret < 0) { av_log(log_ctx, AV_LOG_ERROR, "Error initializing filter '%s' with args '%s'\n", filt_name, args); return ret; diff --git a/libavfilter/version.h b/libavfilter/version.h index 30c73e606c..f58a9d5e8f 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -61,5 +61,8 @@ #ifndef FF_API_AVFILTER_OPEN #define FF_API_AVFILTER_OPEN (LIBAVFILTER_VERSION_MAJOR < 4) #endif +#ifndef FF_API_AVFILTER_INIT_FILTER +#define FF_API_AVFILTER_INIT_FILTER (LIBAVFILTER_VERSION_MAJOR < 4) +#endif #endif /* AVFILTER_VERSION_H */