Struct gstreamer::Registry[]

pub struct Registry(_, _);

One registry holds the metadata of a set of plugins.

Design:</emphasis>

The Registry object is a list of plugins and some functions for dealing with them. Each Plugin is matched 1-1 with a file on disk, and may or may not be loaded at a given time.

The primary source, at all times, of plugin information is each plugin file itself. Thus, if an application wants information about a particular plugin, or wants to search for a feature that satisfies given criteria, the primary means of doing so is to load every plugin and look at the resulting information that is gathered in the default registry. Clearly, this is a time consuming process, so we cache information in the registry file. The format and location of the cache file is internal to gstreamer.

On startup, plugins are searched for in the plugin search path. The following locations are checked in this order:

The registry cache file is loaded from $XDG_CACHE_HOME/gstreamer-$GST_API_VERSION/registry-$ARCH.bin (where $XDG_CACHE_HOME defaults to $HOME/.cache) or the file listed in the GST_REGISTRY env var. One reason to change the registry location is for testing.

For each plugin that is found in the plugin search path, there could be 3 possibilities for cached information:

In the first two cases, the plugin is loaded and the cache updated. In addition to these cases, the cache may have entries for plugins that are not relevant to the current process. These are marked as not available to the current process. If the cache is updated for whatever reason, it is marked dirty.

A dirty cache is written out at the end of initialization. Each entry is checked to make sure the information is minimally valid. If not, the entry is simply dropped.

Implementation notes:

The "cache" and "registry" are different concepts and can represent different sets of plugins. For various reasons, at init time, the cache is stored in the default registry, and plugins not relevant to the current process are marked with the PluginFlags::Cached bit. These plugins are removed at the end of initialization.

Implements

GstObjectExt, glib::object::ObjectExt

Methods

impl Registry
[src]

Add the feature to the registry. The feature-added signal will be emitted.

feature's reference count will be incremented, and any floating reference will be removed (see Object::ref_sink)

feature

the feature to add

Returns

true on success.

MT safe.

Add the plugin to the registry. The plugin-added signal will be emitted.

plugin's reference count will be incremented, and any floating reference will be removed (see Object::ref_sink)

plugin

the plugin to add

Returns

true on success.

MT safe.

Checks whether a plugin feature by the given name exists in self and whether its version is at least the version required.

feature_name

the name of the feature (e.g. "oggdemux")

min_major

the minimum major version number

min_minor

the minimum minor version number

min_micro

the minimum micro version number

Returns

true if the feature could be found and the version is the same as the required version or newer, and false otherwise.

Find the pluginfeature with the given name and type in the registry.

name

the pluginfeature name to find

type_

the pluginfeature type to find

Returns

the pluginfeature with the given name and type or None if the plugin was not found. GstObjectExt::unref after usage.

MT safe.

Find the plugin with the given name in the registry. The plugin will be reffed; caller is responsible for unreffing.

name

the plugin name to find

Returns

the plugin with the given name or None if the plugin was not found. GstObjectExt::unref after usage.

MT safe.

Important traits for Vec<u8>

Retrieves a glib::List of PluginFeature of type_.

type_

a glib::Type.

Returns

a glib::List of PluginFeature of type_. Use PluginFeature::list_free after use

MT safe.

Important traits for Vec<u8>

Retrieves a glib::List of features of the plugin with name name.

name

a plugin name.

Returns

a glib::List of PluginFeature. Use PluginFeature::list_free after usage.

Returns the registry's feature list cookie. This changes every time a feature is added or removed from the registry.

Returns

the feature list cookie.

Important traits for Vec<u8>

Get a copy of all plugins registered in the given registry. The refcount of each element in the list in incremented.

Returns

a glib::List of Plugin. Use Plugin::list_free after usage.

MT safe.

Look up a plugin in the given registry with the given filename. If found, plugin is reffed.

filename

the name of the file to look up

Returns

the Plugin if found, or None if not. GstObjectExt::unref after usage.

Find a PluginFeature with name in self.

name

a PluginFeature name

Returns

a PluginFeature with its refcount incremented, use GstObjectExt::unref after usage.

MT safe.

Remove the feature from the registry.

MT safe.

feature

the feature to remove

Remove the plugin from the registry.

MT safe.

plugin

the plugin to remove

Scan the given path for plugins to add to the registry. The syntax of the path is specific to the registry.

path

the path to scan

Returns

true if registry changed

Retrieves the singleton plugin registry. The caller does not own a reference on the registry, as it is alive as long as GStreamer is initialized.

Returns

the Registry.

Trait Implementations

impl Clone for Registry

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Hash for Registry

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl Ord for Registry

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

impl StaticType for Registry

Returns the type identifier of Self.

impl<T: IsA<Object>> PartialEq<T> for Registry

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Eq for Registry

impl<T: IsA<Object>> PartialOrd<T> for Registry

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Debug for Registry

Formats the value using the given formatter. Read more

impl IsA<Object> for Registry

impl IsA<Object> for Registry

impl Send for Registry
[src]

impl Sync for Registry
[src]