aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2012-07-06 00:41:27 +0200
committerStefano Sabatini <stefasab@gmail.com>2012-07-10 01:29:17 +0200
commit21d56098265656b9b7e97a3ae385ca08bb93f729 (patch)
tree30d1f7bce55ff5b9ea0d843e360436cef2becaec
parentaef9e94f73b9e5e21f7a790343e0b4ffb9e2acee (diff)
downloadffmpeg-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/APIchanges3
-rw-r--r--libavfilter/avfilter.c4
-rw-r--r--libavfilter/avfilter.h7
-rw-r--r--libavfilter/version.h2
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, \