diff -r 4b0c6ed43234 -r 8e837d1bf446 gstreamer_core/gst/gstplugin.h --- a/gstreamer_core/gst/gstplugin.h Wed Mar 24 17:58:42 2010 -0500 +++ b/gstreamer_core/gst/gstplugin.h Wed Mar 24 18:04:17 2010 -0500 @@ -32,11 +32,13 @@ #include #include #include +#include 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 @@ -292,6 +338,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 +394,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 +439,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