| gstplugin.h | gstplugin.h | |||
|---|---|---|---|---|
| skipping to change at line 34 | skipping to change at line 34 | |||
| #define __GST_PLUGIN_H__ | #define __GST_PLUGIN_H__ | |||
| #include <gst/gstconfig.h> | #include <gst/gstconfig.h> | |||
| #include <time.h> /* time_t */ | #include <time.h> /* time_t */ | |||
| #include <sys/types.h> /* off_t */ | #include <sys/types.h> /* off_t */ | |||
| #include <sys/stat.h> /* off_t */ | #include <sys/stat.h> /* off_t */ | |||
| #include <gmodule.h> | #include <gmodule.h> | |||
| #include <gst/gstobject.h> | #include <gst/gstobject.h> | |||
| #include <gst/gstmacros.h> | #include <gst/gstmacros.h> | |||
| #include <gst/gststructure.h> | ||||
| G_BEGIN_DECLS | G_BEGIN_DECLS | |||
| typedef struct _GstPlugin GstPlugin; | typedef struct _GstPlugin GstPlugin; | |||
| typedef struct _GstPluginClass GstPluginClass; | typedef struct _GstPluginClass GstPluginClass; | |||
| typedef struct _GstPluginPrivate GstPluginPrivate; | typedef struct _GstPluginPrivate GstPluginPrivate; | |||
| typedef struct _GstPluginDesc GstPluginDesc; | typedef struct _GstPluginDesc GstPluginDesc; | |||
| /** | /** | |||
| * gst_plugin_error_quark: | * gst_plugin_error_quark: | |||
| skipping to change at line 72 | skipping to change at line 73 | |||
| * | * | |||
| * The plugin loading errors | * The plugin loading errors | |||
| */ | */ | |||
| typedef enum | typedef enum | |||
| { | { | |||
| GST_PLUGIN_ERROR_MODULE, | GST_PLUGIN_ERROR_MODULE, | |||
| GST_PLUGIN_ERROR_DEPENDENCIES, | GST_PLUGIN_ERROR_DEPENDENCIES, | |||
| GST_PLUGIN_ERROR_NAME_MISMATCH | GST_PLUGIN_ERROR_NAME_MISMATCH | |||
| } GstPluginError; | } GstPluginError; | |||
| /** | ||||
| * GstPluginFlags: | ||||
| * @GST_PLUGIN_FLAG_CACHED: Temporarily loaded plugins | ||||
| * @GST_PLUGIN_FLAG_BLACKLISTED: The plugin won't be scanned (again) | ||||
| * | ||||
| * The plugin loading state | ||||
| */ | ||||
| typedef enum | typedef enum | |||
| { | { | |||
| GST_PLUGIN_FLAG_CACHED = (1<<0) | GST_PLUGIN_FLAG_CACHED = (1<<0), | |||
| GST_PLUGIN_FLAG_BLACKLISTED = (1<<1) | ||||
| } GstPluginFlags; | } GstPluginFlags; | |||
| /** | /** | |||
| * GstPluginDependencyFlags: | * GstPluginDependencyFlags: | |||
| * @GST_PLUGIN_DEPENDENCY_FLAG_NONE : no special flags | * @GST_PLUGIN_DEPENDENCY_FLAG_NONE : no special flags | |||
| * @GST_PLUGIN_DEPENDENCY_FLAG_RECURSE : recurse into subdirectories | * @GST_PLUGIN_DEPENDENCY_FLAG_RECURSE : recurse into subdirectories | |||
| * @GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY : use paths | * @GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY : use paths | |||
| * argument only if none of the environment variables is set | * argument only if none of the environment variables is set | |||
| * @GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX : interpret | * @GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX : interpret | |||
| * filename argument as filter suffix and check all matching files in | * filename argument as filter suffix and check all matching files in | |||
| skipping to change at line 100 | skipping to change at line 109 | |||
| */ | */ | |||
| typedef enum { | typedef enum { | |||
| GST_PLUGIN_DEPENDENCY_FLAG_NONE = 0, | GST_PLUGIN_DEPENDENCY_FLAG_NONE = 0, | |||
| GST_PLUGIN_DEPENDENCY_FLAG_RECURSE = (1 << 0), | GST_PLUGIN_DEPENDENCY_FLAG_RECURSE = (1 << 0), | |||
| GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY = (1 << 1), | GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY = (1 << 1), | |||
| GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX = (1 << 2) | GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX = (1 << 2) | |||
| } GstPluginDependencyFlags; | } GstPluginDependencyFlags; | |||
| /** | /** | |||
| * GstPluginInitFunc: | * GstPluginInitFunc: | |||
| * @plugin: The plugin object that can be used to register #GstPluginFeatur es for this plugin. | * @plugin: The plugin object | |||
| * | * | |||
| * A plugin should provide a pointer to a function of this type in the | * A plugin should provide a pointer to a function of this type in the | |||
| * plugin_desc struct. | * plugin_desc struct. | |||
| * This function will be called by the loader at startup. | * This function will be called by the loader at startup. One would then | |||
| * register each #GstPluginFeature. | ||||
| * | * | |||
| * Returns: %TRUE if plugin initialised successfully | * Returns: %TRUE if plugin initialised successfully | |||
| */ | */ | |||
| /* FIXME 0.11: Make return void */ | ||||
| typedef gboolean (*GstPluginInitFunc) (GstPlugin *plugin); | typedef gboolean (*GstPluginInitFunc) (GstPlugin *plugin); | |||
| /** | /** | |||
| * GstPluginInitFullFunc: | ||||
| * @plugin: The plugin object | ||||
| * @user_data: extra data | ||||
| * | ||||
| * A plugin should provide a pointer to a function of either #GstPluginInit | ||||
| Func | ||||
| * or this type in the plugin_desc struct. | ||||
| * The function will be called by the loader at startup. One would then | ||||
| * register each #GstPluginFeature. This version allows | ||||
| * user data to be passed to init function (useful for bindings). | ||||
| * | ||||
| * Returns: %TRUE if plugin initialised successfully | ||||
| * | ||||
| * Since: 0.10.24 | ||||
| * | ||||
| */ | ||||
| /* FIXME 0.11: Merge with GstPluginInitFunc */ | ||||
| typedef gboolean (*GstPluginInitFullFunc) (GstPlugin *plugin, gpointer user | ||||
| _data); | ||||
| /** | ||||
| * GstPluginDesc: | * GstPluginDesc: | |||
| * @major_version: the major version number of core that plugin was compile d for | * @major_version: the major version number of core that plugin was compile d for | |||
| * @minor_version: the minor version number of core that plugin was compile d for | * @minor_version: the minor version number of core that plugin was compile d for | |||
| * @name: a unique name of the plugin | * @name: a unique name of the plugin | |||
| * @description: description of plugin | * @description: description of plugin | |||
| * @plugin_init: pointer to the init function of this plugin. | * @plugin_init: pointer to the init function of this plugin. | |||
| * @version: version of the plugin | * @version: version of the plugin | |||
| * @license: effective license of plugin | * @license: effective license of plugin | |||
| * @source: source module plugin belongs to | * @source: source module plugin belongs to | |||
| * @package: shipped package plugin belongs to | * @package: shipped package plugin belongs to | |||
| * @origin: URL to provider of plugin | * @origin: URL to provider of plugin | |||
| * @_gst_reserved: private, for later expansion | * @release_datetime: date time string in ISO 8601 format (or rather, a | |||
| * subset thereof), or NULL. Allowed are the following formats: | ||||
| * "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with 'T' a separator and 'Z' | ||||
| * indicating UTC/Zulu time). This field should be set via the | ||||
| * GST_PACKAGE_RELEASE_DATETIME preprocessor macro (Since: 0.10.31) | ||||
| * | * | |||
| * A plugin should export a variable of this type called plugin_desc. The p lugin | * A plugin should export a variable of this type called plugin_desc. The p lugin | |||
| * loader will use the data provided there to initialize the plugin. | * loader will use the data provided there to initialize the plugin. | |||
| * | * | |||
| * The @licence parameter must be one of: LGPL, GPL, QPL, GPL/QPL, MPL, | * The @licence parameter must be one of: LGPL, GPL, QPL, GPL/QPL, MPL, | |||
| * BSD, MIT/X11, Proprietary, unknown. | * BSD, MIT/X11, Proprietary, unknown. | |||
| */ | */ | |||
| struct _GstPluginDesc { | struct _GstPluginDesc { | |||
| gint major_version; | gint major_version; | |||
| gint minor_version; | gint minor_version; | |||
| const gchar *name; | const gchar *name; | |||
| gchar *description; | const gchar *description; | |||
| GstPluginInitFunc plugin_init; | GstPluginInitFunc plugin_init; | |||
| const gchar *version; | const gchar *version; | |||
| const gchar *license; | const gchar *license; | |||
| const gchar *source; | const gchar *source; | |||
| const gchar *package; | const gchar *package; | |||
| const gchar *origin; | const gchar *origin; | |||
| const gchar *release_datetime; | ||||
| gpointer _gst_reserved[GST_PADDING]; | /*< private >*/ | |||
| gpointer _gst_reserved[GST_PADDING - 1]; | ||||
| }; | }; | |||
| #define GST_TYPE_PLUGIN (gst_plugin_get_type()) | #define GST_TYPE_PLUGIN (gst_plugin_get_type()) | |||
| #define GST_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLUGIN)) | #define GST_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLUGIN)) | |||
| #define GST_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G ST_TYPE_PLUGIN)) | #define GST_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G ST_TYPE_PLUGIN)) | |||
| #define GST_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G ST_TYPE_PLUGIN, GstPluginClass)) | #define GST_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G ST_TYPE_PLUGIN, GstPluginClass)) | |||
| #define GST_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLUGIN, GstPlugin)) | #define GST_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLUGIN, GstPlugin)) | |||
| #define GST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G ST_TYPE_PLUGIN, GstPluginClass)) | #define GST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G ST_TYPE_PLUGIN, GstPluginClass)) | |||
| #define GST_PLUGIN_CAST(obj) ((GstPlugin*)(obj)) | #define GST_PLUGIN_CAST(obj) ((GstPlugin*)(obj)) | |||
| skipping to change at line 189 | skipping to change at line 224 | |||
| gpointer _gst_reserved[GST_PADDING - 1]; | gpointer _gst_reserved[GST_PADDING - 1]; | |||
| }; | }; | |||
| struct _GstPluginClass { | struct _GstPluginClass { | |||
| GstObjectClass object_class; | GstObjectClass object_class; | |||
| /*< private >*/ | /*< private >*/ | |||
| gpointer _gst_reserved[GST_PADDING]; | gpointer _gst_reserved[GST_PADDING]; | |||
| }; | }; | |||
| #ifdef GST_PACKAGE_RELEASE_DATETIME | ||||
| #define __GST_PACKAGE_RELEASE_DATETIME GST_PACKAGE_RELEASE_DATETIME | ||||
| #else | ||||
| #define __GST_PACKAGE_RELEASE_DATETIME NULL | ||||
| #endif | ||||
| /** | /** | |||
| * GST_PLUGIN_DEFINE: | * GST_PLUGIN_DEFINE: | |||
| * @major: major version number of the gstreamer-core that plugin was compi led for | * @major: major version number of the gstreamer-core that plugin was compi led for | |||
| * @minor: minor version number of the gstreamer-core that plugin was compi led for | * @minor: minor version number of the gstreamer-core that plugin was compi led for | |||
| * @name: short, but unique name of the plugin | * @name: short, but unique name of the plugin | |||
| * @description: information about the purpose of the plugin | * @description: information about the purpose of the plugin | |||
| * @init: function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>. | * @init: function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>. | |||
| * @version: full version string (e.g. VERSION from config.h) | * @version: full version string (e.g. VERSION from config.h) | |||
| * @license: under which licence the package has been released, e.g. GPL, L GPL. | * @license: under which licence the package has been released, e.g. GPL, L GPL. | |||
| * @package: the package-name (e.g. PACKAGE_NAME from config.h) | * @package: the package-name (e.g. PACKAGE_NAME from config.h) | |||
| * @origin: a description from where the package comes from (e.g. the homep age URL) | * @origin: a description from where the package comes from (e.g. the homep age URL) | |||
| * | * | |||
| * This macro needs to be used to define the entry point and meta data of a | * 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 u sed | * plugin. One would use this macro to export a plugin, so that it can be u sed | |||
| * by other applications. | * by other applications. | |||
| * | * | |||
| * The macro uses a define named PACKAGE for the #GstPluginDesc,source fiel d. | * The macro uses a define named PACKAGE for the #GstPluginDesc,source fiel d. | |||
| * When using autoconf, this is usually set automatically via the AC_INIT | ||||
| * macro, and set in config.h. If you are not using autoconf, you will need | ||||
| to | ||||
| * define PACKAGE yourself and set it to a short mnemonic string identifyin | ||||
| g | ||||
| * your application/package, e.g. 'someapp' or 'my-plugins-foo. | ||||
| * | ||||
| * If defined, the GST_PACKAGE_RELEASE_DATETIME will also be used for the | ||||
| * #GstPluginDesc,release_datetime field. | ||||
| */ | */ | |||
| #define GST_PLUGIN_DEFINE(major,minor,name,description,init,version,license ,package,origin) \ | #define GST_PLUGIN_DEFINE(major,minor,name,description,init,version,license ,package,origin) \ | |||
| G_BEGIN_DECLS \ | ||||
| GST_PLUGIN_EXPORT GstPluginDesc gst_plugin_desc = { \ | GST_PLUGIN_EXPORT GstPluginDesc gst_plugin_desc = { \ | |||
| major, \ | major, \ | |||
| minor, \ | minor, \ | |||
| name, \ | name, \ | |||
| (gchar *) description, \ | (gchar *) description, \ | |||
| init, \ | init, \ | |||
| version, \ | version, \ | |||
| license, \ | license, \ | |||
| PACKAGE, \ | PACKAGE, \ | |||
| package, \ | package, \ | |||
| origin, \ | origin, \ | |||
| __GST_PACKAGE_RELEASE_DATETIME, \ | ||||
| GST_PADDING_INIT \ | GST_PADDING_INIT \ | |||
| }; | }; \ | |||
| G_END_DECLS | ||||
| /** | /** | |||
| * GST_PLUGIN_DEFINE_STATIC: | * GST_PLUGIN_DEFINE_STATIC: | |||
| * @major: major version number of the gstreamer-core that plugin was compi led for | * @major: major version number of the gstreamer-core that plugin was compi led for | |||
| * @minor: minor version number of the gstreamer-core that plugin was compi led for | * @minor: minor version number of the gstreamer-core that plugin was compi led for | |||
| * @name: short, but unique name of the plugin | * @name: short, but unique name of the plugin | |||
| * @description: information about the purpose of the plugin | * @description: information about the purpose of the plugin | |||
| * @init: function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>. | * @init: function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>. | |||
| * @version: full version string (e.g. VERSION from config.h) | * @version: full version string (e.g. VERSION from config.h) | |||
| * @license: under which licence the package has been released, e.g. GPL, L GPL. | * @license: under which licence the package has been released, e.g. GPL, L GPL. | |||
| skipping to change at line 263 | skipping to change at line 314 | |||
| major, \ | major, \ | |||
| minor, \ | minor, \ | |||
| name, \ | name, \ | |||
| (gchar *) description, \ | (gchar *) description, \ | |||
| init, \ | init, \ | |||
| version, \ | version, \ | |||
| license, \ | license, \ | |||
| PACKAGE, \ | PACKAGE, \ | |||
| package, \ | package, \ | |||
| origin, \ | origin, \ | |||
| NULL, \ | ||||
| GST_PADDING_INIT \ | GST_PADDING_INIT \ | |||
| }; \ | }; \ | |||
| _gst_plugin_register_static (&plugin_desc_); \ | _gst_plugin_register_static (&plugin_desc_); \ | |||
| } | } | |||
| /** | /** | |||
| * GST_LICENSE_UNKNOWN: | * GST_LICENSE_UNKNOWN: | |||
| * | * | |||
| * To be used in GST_PLUGIN_DEFINE or GST_PLUGIN_DEFINE_STATIC if usure abo ut | * To be used in GST_PLUGIN_DEFINE or GST_PLUGIN_DEFINE_STATIC if usure abo ut | |||
| * the licence. | * the licence. | |||
| skipping to change at line 299 | skipping to change at line 351 | |||
| GType gst_plugin_get_type (void); | GType gst_plugin_get_type (void); | |||
| #ifndef GST_DISABLE_DEPRECATED | #ifndef GST_DISABLE_DEPRECATED | |||
| void _gst_plugin_register_static (GstPluginDesc *desc ); | void _gst_plugin_register_static (GstPluginDesc *desc ); | |||
| #endif | #endif | |||
| gboolean gst_plugin_register_static (gint major_version, | gboolean gst_plugin_register_static (gint major_version, | |||
| gint minor_version , | gint minor_version , | |||
| const gchar *name, | const gchar *name, | |||
| gchar *description , | const gchar *descr iption, | |||
| GstPluginInitFunc init_func, | GstPluginInitFunc init_func, | |||
| const gchar *versi on, | const gchar *versi on, | |||
| const gchar *licen se, | const gchar *licen se, | |||
| const gchar *sourc e, | const gchar *sourc e, | |||
| const gchar *packa ge, | const gchar *packa ge, | |||
| const gchar *origi n); | const gchar *origi n); | |||
| gboolean gst_plugin_register_static_full (gint major_version, | ||||
| gint minor_version | ||||
| , | ||||
| const gchar *name, | ||||
| const gchar *descr | ||||
| iption, | ||||
| GstPluginInitFullF | ||||
| unc init_full_func, | ||||
| const gchar *versi | ||||
| on, | ||||
| const gchar *licen | ||||
| se, | ||||
| const gchar *sourc | ||||
| e, | ||||
| const gchar *packa | ||||
| ge, | ||||
| const gchar *origi | ||||
| n, | ||||
| gpointer user_data | ||||
| ); | ||||
| G_CONST_RETURN gchar* gst_plugin_get_name (GstPlugin *plugin); | G_CONST_RETURN gchar* gst_plugin_get_name (GstPlugin *plugin); | |||
| G_CONST_RETURN gchar* gst_plugin_get_description (GstPlugin *plugin); | G_CONST_RETURN gchar* gst_plugin_get_description (GstPlugin *plugin); | |||
| G_CONST_RETURN gchar* gst_plugin_get_filename (GstPlugin *plugin); | G_CONST_RETURN gchar* gst_plugin_get_filename (GstPlugin *plugin); | |||
| G_CONST_RETURN gchar* gst_plugin_get_version (GstPlugin *plugin); | G_CONST_RETURN gchar* gst_plugin_get_version (GstPlugin *plugin); | |||
| G_CONST_RETURN gchar* gst_plugin_get_license (GstPlugin *plugin); | G_CONST_RETURN gchar* gst_plugin_get_license (GstPlugin *plugin); | |||
| G_CONST_RETURN gchar* gst_plugin_get_source (GstPlugin *plugin); | G_CONST_RETURN gchar* gst_plugin_get_source (GstPlugin *plugin); | |||
| G_CONST_RETURN gchar* gst_plugin_get_package (GstPlugin *plugin); | G_CONST_RETURN gchar* gst_plugin_get_package (GstPlugin *plugin); | |||
| G_CONST_RETURN gchar* gst_plugin_get_origin (GstPlugin *plugin); | G_CONST_RETURN gchar* gst_plugin_get_origin (GstPlugin *plugin); | |||
| G_CONST_RETURN GstStructure* gst_plugin_get_cache_data (GstPlugin * | ||||
| plugin); | ||||
| void gst_plugin_set_cache_data (GstPlugin * plugin, GstStru | ||||
| cture *cache_data); | ||||
| GModule * gst_plugin_get_module (GstPlugin *plugin); | GModule * gst_plugin_get_module (GstPlugin *plugin); | |||
| gboolean gst_plugin_is_loaded (GstPlugin *plugin); | gboolean gst_plugin_is_loaded (GstPlugin *plugin); | |||
| gboolean gst_plugin_name_filter (GstPlugin *plugin, const gchar *name); | gboolean gst_plugin_name_filter (GstPlugin *plugin, const gchar *name); | |||
| GstPlugin * gst_plugin_load_file (const gchar *filena me, GError** error); | GstPlugin * gst_plugin_load_file (const gchar *filena me, GError** error); | |||
| GstPlugin * gst_plugin_load (GstPlugin *plugin) ; | GstPlugin * gst_plugin_load (GstPlugin *plugin) ; | |||
| GstPlugin * gst_plugin_load_by_name (const gchar *name) ; | GstPlugin * gst_plugin_load_by_name (const gchar *name) ; | |||
| End of changes. 19 change blocks. | ||||
| 9 lines changed or deleted | 91 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||