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/ |