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/