gstreamermm  1.4.3
Public Types | Public Member Functions | Static Public Member Functions | Related Functions | List of all members
Gst::Plugin Class Reference

A container for features loaded from a shared object module. More...

Inheritance diagram for Gst::Plugin:
Inheritance graph
[legend]
Collaboration diagram for Gst::Plugin:
Collaboration graph
[legend]

Public Types

typedef sigc::slot< bool,
const Glib::RefPtr
< Gst::Plugin >& > 
SlotInit
 For example, bool on_plugin_init(const Glib::RefPtr<Gst::Plugin>& plugin);. More...
 
typedef sigc::slot< bool,
const Glib::RefPtr
< Gst::Plugin >& > 
SlotFilter
 For example, bool on_plugin_filter(const Glib::RefPtr<Gst::Plugin>& plugin);. More...
 

Public Member Functions

virtual ~Plugin ()
 
GstPlugin* gobj ()
 Provides access to the underlying C GObject. More...
 
const GstPlugin* gobj () const
 Provides access to the underlying C GObject. More...
 
GstPlugin* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
Glib::ustring get_name () const
 Get the short name of the plugin. More...
 
Glib::ustring get_description () const
 Get the long descriptive name of the plugin. More...
 
Glib::ustring get_filename () const
 get the filename of the plugin More...
 
Glib::ustring get_license () const
 get the license of the plugin More...
 
Glib::ustring get_package () const
 get the package the plugin belongs to. More...
 
Glib::ustring get_origin () const
 get the URL where the plugin comes from More...
 
Glib::ustring get_source () const
 get the source module the plugin belongs to. More...
 
Glib::ustring get_version () const
 get the version of the plugin More...
 
Glib::ustring get_release_date_string () const
 Get the release date (and possibly time) in form of a string, if available. More...
 
bool is_loaded () const
 queries if the plugin is loaded into memory More...
 
Gst::Structure get_cache_data () const
 Gets the plugin specific data cache. More...
 
void set_cache_data (Gst::Structure& cache_data)
 Adds plugin specific data to cache. More...
 
Glib::RefPtr< Gst::Pluginload ()
 Loads plugin. More...
 
void add_dependency (const Glib::StringArrayHandle& env_vars, const Glib::StringArrayHandle& paths, const Glib::StringArrayHandle& names, Gst::PluginDependencyFlags flags)
 Make GStreamer aware of external dependencies which affect the feature set of this plugin (ie. More...
 
void add_dependency (const Glib::ustring& env_vars, const Glib::ustring& paths, const Glib::ustring& names, Gst::PluginDependencyFlags flags)
 Make GStreamer aware of external dependencies which affect the feature set of this plugin (ie. More...
 
- Public Member Functions inherited from Gst::Object
virtual ~Object ()
 
GstObject* gobj ()
 Provides access to the underlying C GObject. More...
 
const GstObject* gobj () const
 Provides access to the underlying C GObject. More...
 
GstObject* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
 
bool is_element () const
 
bool is_element_factory () const
 
bool is_pad () const
 
bool is_pad_template () const
 
bool is_bin () const
 
guint32 get_flags () const
 Returns the entire set of flags for the object. More...
 
bool set_name (const Glib::ustring& name)
 Sets the name of object, or gives object a guaranteed unique name (if name is 0). More...
 
Glib::ustring get_name () const
 Returns a copy of the name of object. More...
 
bool set_parent (const Glib::RefPtr< Gst::Object >& parent)
 Sets the parent of object to parent. More...
 
Glib::RefPtr< Gst::Objectget_parent ()
 Returns the parent of object. More...
 
Glib::RefPtr< const Gst::Objectget_parent () const
 Returns the parent of object. More...
 
void unparent ()
 Clear the parent of object, removing the associated reference. More...
 
bool has_ancestor (const Glib::RefPtr< const Gst::Object >& ancestor) const
 Check if object has an ancestor ancestor somewhere up in the hierarchy. More...
 
Glib::ustring get_path_string ()
 Generates a string describing the path of object in the object hierarchy. More...
 
Glib::PropertyProxy
< Glib::ustring
property_name ()
 The name of the object. More...
 
Glib::PropertyProxy_ReadOnly
< Glib::ustring
property_name () const
 The name of the object. More...
 
Glib::SignalProxy2< void,
const Glib::RefPtr< Object >
&, GParamSpec* > 
signal_deep_notify ()
 
int get_refcount () const
 

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
static Glib::QueryQuark error_quark ()
 Get the error quark. More...
 
static Glib::RefPtr< Gst::Pluginload_file (const Glib::ustring& filename)
 
static Glib::RefPtr< Gst::Pluginload_by_name (const Glib::ustring& name)
 Load the named plugin. More...
 
static bool register_static (int major_version, int minor_version, const Glib::ustring& name, const Glib::ustring& description, const SlotInit& init_slot, const Glib::ustring&version, const Glib::ustring& license, const Glib::ustring& source, const Glib::ustring& package, const Glib::ustring& origin)
 
- Static Public Member Functions inherited from Gst::Object
static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...
 
static bool check_uniqueness (const Glib::ListHandle< const Gst::Object >& list, const Glib::ustring& name)
 Checks to see if there is any object named name in list. More...
 

Related Functions

(Note that these are not member functions.)

Glib::RefPtr< Gst::Pluginwrap (GstPlugin* object, bool take_copy=false)
 A Glib::wrap() method for this object. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Gst::Object
virtual void on_deep_notify (const Glib::RefPtr< Object >& prop_object, GParamSpec* prop)
 This is a default handler for the signal signal_deep_notify(). More...
 

Detailed Description

A container for features loaded from a shared object module.

GStreamer is extensible, so Gst::Element instances can be loaded at runtime. A plugin system can provide one or more of the basic GStreamer Gst::PluginFeature subclasses.

TODO: Edit following paragraph to use gstreamermm classes/methods:

A plugin should export a symbol gst_plugin_desc that is a struct of type PluginDesc. the plugin loader will check the version of the core library the plugin was linked against and will create a new Gst::Plugin. It will then call the PluginInitFunc function that was provided in the gst_plugin_desc.

Once you have a handle to a Gst::Plugin (e.g. from the RegistryPool), you can add any object that subclasses Gst::PluginFeature.

Usually plugins are always automaticlly loaded so you don't need to call gst_plugin_load() explicitly to bring it into memory. There are options to statically link plugins to an app or even use GStreamer without a plugin repository in which case load() can be needed to bring the plugin into memory.

Member Typedef Documentation

typedef sigc::slot< bool, const Glib::RefPtr<Gst::Plugin>& > Gst::Plugin::SlotFilter

For example, bool on_plugin_filter(const Glib::RefPtr<Gst::Plugin>& plugin);.

The filter function should return true if plugin is a match, false otherwise.

typedef sigc::slot< bool, const Glib::RefPtr<Gst::Plugin>& > Gst::Plugin::SlotInit

For example, bool on_plugin_init(const Glib::RefPtr<Gst::Plugin>& plugin);.

The init function should return true if plugin was initialized successfully, false otherwise.

Constructor & Destructor Documentation

virtual Gst::Plugin::~Plugin ( )
virtual

Member Function Documentation

void Gst::Plugin::add_dependency ( const Glib::StringArrayHandle env_vars,
const Glib::StringArrayHandle paths,
const Glib::StringArrayHandle names,
Gst::PluginDependencyFlags  flags 
)

Make GStreamer aware of external dependencies which affect the feature set of this plugin (ie.

the elements or typefinders associated with it).

GStreamer will re-inspect plugins with external dependencies whenever any of the external dependencies change. This is useful for plugins which wrap other plugin systems, e.g. a plugin which wraps a plugin-based visualisation library and makes visualisations available as GStreamer elements, or a codec loader which exposes elements and/or caps dependent on what external codec libraries are currently installed.

Parameters
env_vars0-terminated array of environment variables affecting the feature set of the plugin (e.g. an environment variable containing paths where to look for additional modules/plugins of a library), or 0. Environment variable names may be followed by a path component which will be added to the content of the environment variable, e.g. "HOME/.mystuff/plugins".
paths0-terminated array of directories/paths where dependent files may be, or 0.
names0-terminated array of file names (or file name suffixes, depending on flags) to be used in combination with the paths from paths and/or the paths extracted from the environment variables in env_vars, or 0.
flagsOptional flags, or Gst::PLUGIN_DEPENDENCY_FLAG_NONE.
void Gst::Plugin::add_dependency ( const Glib::ustring env_vars,
const Glib::ustring paths,
const Glib::ustring names,
Gst::PluginDependencyFlags  flags 
)

Make GStreamer aware of external dependencies which affect the feature set of this plugin (ie.

the elements or typefinders associated with it).

GStreamer will re-inspect plugins with external dependencies whenever any of the external dependencies change. This is useful for plugins which wrap other plugin systems, e.g. a plugin which wraps a plugin-based visualisation library and makes visualisations available as GStreamer elements, or a codec loader which exposes elements and/or caps dependent on what external codec libraries are currently installed.

Convenience wrapper function for add_dependency() which takes simple strings as arguments instead of string arrays, with multiple arguments separated by predefined delimiters (see above).

Parameters
env_varsOne or more environment variables (separated by ':', ';' or ','), or 0. Environment variable names may be followed by a path component which will be added to the content of the environment variable, e.g. "HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH".
pathsOne ore more directory paths (separated by ':' or ';' or ','), or 0. Example: "/usr/lib/mystuff/plugins".
namesOne or more file names or file name suffixes (separated by commas), or 0.
flagsOptional flags, or Gst::PLUGIN_DEPENDENCY_FLAG_NONE.
static Glib::QueryQuark Gst::Plugin::error_quark ( )
static

Get the error quark.

Returns
The error quark used in GError messages.
Gst::Structure Gst::Plugin::get_cache_data ( ) const

Gets the plugin specific data cache.

If it is 0 there is no cached data stored. This is the case when the registry is getting rebuilt.

Returns
The cached data as a Gst::Structure or 0.
Glib::ustring Gst::Plugin::get_description ( ) const

Get the long descriptive name of the plugin.

Returns
The long name of the plugin.
Glib::ustring Gst::Plugin::get_filename ( ) const

get the filename of the plugin

Returns
The filename of the plugin.
Glib::ustring Gst::Plugin::get_license ( ) const

get the license of the plugin

Returns
The license of the plugin.
Glib::ustring Gst::Plugin::get_name ( ) const

Get the short name of the plugin.

Returns
The name of the plugin.
Glib::ustring Gst::Plugin::get_origin ( ) const

get the URL where the plugin comes from

Returns
The origin of the plugin.
Glib::ustring Gst::Plugin::get_package ( ) const

get the package the plugin belongs to.

Returns
The package of the plugin.
Glib::ustring Gst::Plugin::get_release_date_string ( ) const

Get the release date (and possibly time) in form of a string, if available.

For normal GStreamer plugin releases this will usually just be a date in the form of "YYYY-MM-DD", while pre-releases and builds from git may contain a time component after the date as well, in which case the string will be formatted like "YYYY-MM-DDTHH:MMZ" (e.g. "2012-04-30T09:30Z").

There may be plugins that do not have a valid release date set on them.

Returns
The date string of the plugin, or 0 if not available.
Glib::ustring Gst::Plugin::get_source ( ) const

get the source module the plugin belongs to.

Returns
The source of the plugin.
static GType Gst::Plugin::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

Glib::ustring Gst::Plugin::get_version ( ) const

get the version of the plugin

Returns
The version of the plugin.
GstPlugin* Gst::Plugin::gobj ( )
inline

Provides access to the underlying C GObject.

const GstPlugin* Gst::Plugin::gobj ( ) const
inline

Provides access to the underlying C GObject.

GstPlugin* Gst::Plugin::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

bool Gst::Plugin::is_loaded ( ) const

queries if the plugin is loaded into memory

Returns
true is loaded, false otherwise.
Glib::RefPtr<Gst::Plugin> Gst::Plugin::load ( )

Loads plugin.

Note that the return value is the loaded plugin; plugin is untouched. The normal use pattern of this function goes like this:

GstPlugin *loaded_plugin; loaded_plugin = gst_plugin_load (plugin); // presumably, we're no longer interested in the potentially-unloaded plugin gst_object_unref (plugin); plugin = loaded_plugin;

Returns
A reference to a loaded plugin, or 0 on error.
static Glib::RefPtr<Gst::Plugin> Gst::Plugin::load_by_name ( const Glib::ustring name)
static

Load the named plugin.

Refs the plugin.

Parameters
nameName of plugin to load.
Returns
A reference to a loaded plugin, or 0 on error.
static Glib::RefPtr<Gst::Plugin> Gst::Plugin::load_file ( const Glib::ustring filename)
static
Exceptions
Gst::PluginError.
static bool Gst::Plugin::register_static ( int  major_version,
int  minor_version,
const Glib::ustring name,
const Glib::ustring description,
const SlotInit init_slot,
const Glib::ustring version,
const Glib::ustring license,
const Glib::ustring source,
const Glib::ustring package,
const Glib::ustring origin 
)
static
void Gst::Plugin::set_cache_data ( Gst::Structure cache_data)

Adds plugin specific data to cache.

Passes the ownership of the structure to the plugin.

The cache is flushed every time the registry is rebuilt.

Parameters
cache_dataA structure containing the data to cache.

Friends And Related Function Documentation

Glib::RefPtr< Gst::Plugin > wrap ( GstPlugin *  object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns
A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file: