--- a/gstreamer_core/gst/gstplugin.h Wed Mar 31 22:03:18 2010 +0300
+++ b/gstreamer_core/gst/gstplugin.h Tue Aug 31 15:30:33 2010 +0300
@@ -32,11 +32,13 @@
#include <gmodule.h>
#include <gst/gstobject.h>
#include <gst/gstmacros.h>
+#include <gst/gststructure.h>
G_BEGIN_DECLS
typedef struct _GstPlugin GstPlugin;
typedef struct _GstPluginClass GstPluginClass;
+typedef struct _GstPluginPrivate GstPluginPrivate;
typedef struct _GstPluginDesc GstPluginDesc;
/**
@@ -80,6 +82,27 @@
} GstPluginFlags;
/**
+ * GstPluginDependencyFlags:
+ * @GST_PLUGIN_DEPENDENCY_FLAG_NONE : no special flags
+ * @GST_PLUGIN_DEPENDENCY_FLAG_RECURSE : recurse into subdirectories
+ * @GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY : use paths
+ * argument only if none of the environment variables is set
+ * @GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX : interpret
+ * filename argument as filter suffix and check all matching files in
+ * the directory
+ *
+ * Flags used in connection with gst_plugin_add_dependency().
+ *
+ * Since: 0.10.22
+ */
+typedef enum {
+ GST_PLUGIN_DEPENDENCY_FLAG_NONE = 0,
+ GST_PLUGIN_DEPENDENCY_FLAG_RECURSE = (1 << 0),
+ GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY = (1 << 1),
+ GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX = (1 << 2)
+} GstPluginDependencyFlags;
+
+/**
* GstPluginInitFunc:
* @plugin: The plugin object that can be used to register #GstPluginFeatures for this plugin.
*
@@ -92,6 +115,23 @@
typedef gboolean (*GstPluginInitFunc) (GstPlugin *plugin);
/**
+ * GstPluginInitFullFunc:
+ * @plugin: The plugin object that can be used to register #GstPluginFeatures for this plugin.
+ * @user_data: The user data.
+ *
+ * A plugin should provide a pointer to a function of either #GstPluginInitFunc
+ * or this type in the plugin_desc struct.
+ * The function will be called by the loader at startup. This version allows
+ * user data to be passed to init function (useful for bindings).
+ *
+ * Returns: %TRUE if plugin initialised successfully
+ *
+ * Since: 0.10.24
+ *
+ */
+typedef gboolean (*GstPluginInitFullFunc) (GstPlugin *plugin, gpointer user_data);
+
+/**
* GstPluginDesc:
* @major_version: the major version number of core that plugin was compiled for
* @minor_version: the minor version number of core that plugin was compiled for
@@ -160,7 +200,8 @@
gboolean registered; /* TRUE when the registry has seen a filename
* that matches the plugin's basename */
- gpointer _gst_reserved[GST_PADDING];
+ GstPluginPrivate *priv;
+ gpointer _gst_reserved[GST_PADDING - 1];
};
struct _GstPluginClass {
@@ -184,7 +225,9 @@
*
* This macro needs to be used to define the entry point and meta data of a
* plugin. One would use this macro to export a plugin, so that it can be used
- * by other applications
+ * by other applications.
+ *
+ * The macro uses a define named PACKAGE for the #GstPluginDesc,source field.
*/
#define GST_PLUGIN_DEFINE(major,minor,name,description,init,version,license,package,origin) \
GST_PLUGIN_EXPORT GstPluginDesc gst_plugin_desc = { \
@@ -217,9 +260,12 @@
* local plugin. One would use this macro to define a local plugin that can only
* be used by the own application.
*
+ * The macro uses a define named PACKAGE for the #GstPluginDesc.source field.
+ *
* Deprecated: Use gst_plugin_register_static() instead. This macro was
* deprecated because it uses constructors, which is a compiler feature not
* available on all compilers.
+ *
*/
/* We don't have deprecation guards here on purpose, it's enough to have
* deprecation guards around _gst_plugin_register_static(), and will result in
@@ -274,9 +320,15 @@
GType gst_plugin_get_type (void);
#ifndef GST_DISABLE_DEPRECATED
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
void _gst_plugin_register_static (GstPluginDesc *desc);
#endif
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
gboolean gst_plugin_register_static (gint major_version,
gint minor_version,
const gchar *name,
@@ -292,6 +344,22 @@
#endif
+gboolean gst_plugin_register_static_full (gint major_version,
+ gint minor_version,
+ const gchar *name,
+ gchar *description,
+ GstPluginInitFullFunc init_full_func,
+ const gchar *version,
+ const gchar *license,
+ const gchar *source,
+ const gchar *package,
+ const gchar *origin,
+ gpointer user_data);
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
+
+
G_CONST_RETURN gchar* gst_plugin_get_name (GstPlugin *plugin);
#ifdef __SYMBIAN32__
IMPORT_C
@@ -332,6 +400,17 @@
IMPORT_C
#endif
+G_CONST_RETURN GstStructure* gst_plugin_get_cache_data (GstPlugin * plugin);
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
+
+void gst_plugin_set_cache_data (GstPlugin * plugin, GstStructure *cache_data);
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
+
+
GModule * gst_plugin_get_module (GstPlugin *plugin);
#ifdef __SYMBIAN32__
IMPORT_C
@@ -366,6 +445,26 @@
#endif
+void gst_plugin_add_dependency (GstPlugin * plugin,
+ const gchar ** env_vars,
+ const gchar ** paths,
+ const gchar ** names,
+ GstPluginDependencyFlags flags);
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
+
+
+void gst_plugin_add_dependency_simple (GstPlugin * plugin,
+ const gchar * env_vars,
+ const gchar * paths,
+ const gchar * names,
+ GstPluginDependencyFlags flags);
+#ifdef __SYMBIAN32__
+IMPORT_C
+#endif
+
+
void gst_plugin_list_free (GList *list);
G_END_DECLS