diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2012-07-06 00:41:27 +0200 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2012-07-10 01:29:17 +0200 |
commit | 21d56098265656b9b7e97a3ae385ca08bb93f729 (patch) | |
tree | 30d1f7bce55ff5b9ea0d843e360436cef2becaec | |
parent | aef9e94f73b9e5e21f7a790343e0b4ffb9e2acee (diff) | |
download | ffmpeg-21d56098265656b9b7e97a3ae385ca08bb93f729.tar.gz |
lavfi: add init_opaque callback
This will be used by filters which require an opaque field to be passed
in input. Should be required only for filters which imply a programmatic
use.
This is possibly a temporary solution, to be removed when we'll have a
clearer and better agreememnt of how/if to pass binary data for
initializing a filter.
See thread:
Subject: [FFmpeg-devel][PATCH] lavfi: add init2 callback
Date: Fri, 6 Jul 2012 01:22:17 +0200
-rw-r--r-- | doc/APIchanges | 3 | ||||
-rw-r--r-- | libavfilter/avfilter.c | 4 | ||||
-rw-r--r-- | libavfilter/avfilter.h | 7 | ||||
-rw-r--r-- | libavfilter/version.h | 2 |
4 files changed, 14 insertions, 2 deletions
diff --git a/doc/APIchanges b/doc/APIchanges index 6d8ad740cd..e17aae73aa 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,9 @@ libavutil: 2011-04-18 API changes, most recent first: +2012-07-10 - xxxxxxx - lavfi 3.2.0 - avfilter.h + Add init_opaque() callback to AVFilter struct. + 2012-06-26 - xxxxxxx - lavu 51.63.100 - imgutils.h Add functions to libavutil/imgutils.h: av_image_get_buffer_size() diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 01f34423c9..5094105e44 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -554,7 +554,9 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque { int ret=0; - if (filter->filter->init) + if (filter->filter->init_opaque) + ret = filter->filter->init_opaque(filter, args, opaque); + else if (filter->filter->init) ret = filter->filter->init(filter, args); return ret; } diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 52de7405e3..f039c1e228 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -447,6 +447,13 @@ typedef struct AVFilter { * AVERROR(ENOSYS) on unsupported commands */ int (*process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags); + + /** + * Filter initialization function, alternative to the init() + * callback. Args contains the user-supplied parameters, opaque is + * used for providing binary data. + */ + int (*init_opaque)(AVFilterContext *ctx, const char *args, void *opaque); } AVFilter; /** An instance of a filter */ diff --git a/libavfilter/version.h b/libavfilter/version.h index 811646588e..ea95cf39ce 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -29,7 +29,7 @@ #include "libavutil/avutil.h" #define LIBAVFILTER_VERSION_MAJOR 3 -#define LIBAVFILTER_VERSION_MINOR 1 +#define LIBAVFILTER_VERSION_MINOR 2 #define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ |