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 +0200tags/n1.0
@@ -15,6 +15,9 @@ libavutil: 2011-04-18 | |||||
API changes, most recent first: | 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 | 2012-06-26 - xxxxxxx - lavu 51.63.100 - imgutils.h | ||||
Add functions to libavutil/imgutils.h: | Add functions to libavutil/imgutils.h: | ||||
av_image_get_buffer_size() | av_image_get_buffer_size() | ||||
@@ -554,7 +554,9 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque | |||||
{ | { | ||||
int ret=0; | 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); | ret = filter->filter->init(filter, args); | ||||
return ret; | return ret; | ||||
} | } | ||||
@@ -447,6 +447,13 @@ typedef struct AVFilter { | |||||
* AVERROR(ENOSYS) on unsupported commands | * AVERROR(ENOSYS) on unsupported commands | ||||
*/ | */ | ||||
int (*process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags); | 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; | } AVFilter; | ||||
/** An instance of a filter */ | /** An instance of a filter */ | ||||
@@ -29,7 +29,7 @@ | |||||
#include "libavutil/avutil.h" | #include "libavutil/avutil.h" | ||||
#define LIBAVFILTER_VERSION_MAJOR 3 | #define LIBAVFILTER_VERSION_MAJOR 3 | ||||
#define LIBAVFILTER_VERSION_MINOR 1 | |||||
#define LIBAVFILTER_VERSION_MINOR 2 | |||||
#define LIBAVFILTER_VERSION_MICRO 100 | #define LIBAVFILTER_VERSION_MICRO 100 | ||||
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ | #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ | ||||