lavfi: add init_opaque callback
authorStefano Sabatini <stefasab@gmail.com>
Thu, 5 Jul 2012 22:41:27 +0000 (00:41 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Mon, 9 Jul 2012 23:29:17 +0000 (01:29 +0200)
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

doc/APIchanges
libavfilter/avfilter.c
libavfilter/avfilter.h
libavfilter/version.h

index 6d8ad74..e17aae7 100644 (file)
@@ -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()
index 01f3442..5094105 100644 (file)
@@ -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;
 }
index 52de740..f039c1e 100644 (file)
@@ -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 */
index 8116465..ea95cf3 100644 (file)
@@ -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, \