Struct gstreamer::Registry[][src]

pub struct Registry(_);

One registry holds the metadata of a set of plugins.

Design:</emphasis>

The crate::Registry object is a list of plugins and some functions for dealing with them. Each crate::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 [crate::PluginFlags::Cached] bit. These plugins are removed at the end of initialization.

Implements

crate::prelude::GstObjectExt, glib::object::ObjectExt

Implementations

impl Registry[src]

pub fn add_feature<P: IsA<PluginFeature>>(
    &self,
    feature: &P
) -> Result<(), BoolError>
[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 [crate::Object::ref_sink()])

feature

the feature to add

Returns

true on success.

MT safe.

pub fn add_plugin(&self, plugin: &Plugin) -> Result<(), BoolError>[src]

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 [crate::Object::ref_sink()])

plugin

the plugin to add

Returns

true on success.

MT safe.

pub fn check_feature_version(
    &self,
    feature_name: &str,
    min_major: u32,
    min_minor: u32,
    min_micro: u32
) -> bool
[src]

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.

pub fn feature_filter<P: FnMut(&PluginFeature) -> bool>(
    &self,
    filter: P,
    first: bool
) -> Vec<PluginFeature>
[src]

Runs a filter against all features of the plugins in the registry and returns a GList with the results. If the first flag is set, only the first match is returned (as a list with a single object).

filter

the filter to use

first

only return first match

user_data

user data passed to the filter function

Returns

a [crate::glib::List] of crate::PluginFeature. Use [crate::PluginFeature::list_free()] after usage.

MT safe.

pub fn find_feature(&self, name: &str, type_: Type) -> Option<PluginFeature>[src]

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. [crate::prelude::GstObjectExt::unref()] after usage.

MT safe.

pub fn find_plugin(&self, name: &str) -> Option<Plugin>[src]

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. [crate::prelude::GstObjectExt::unref()] after usage.

MT safe.

pub fn feature_list(&self, type_: Type) -> Vec<PluginFeature>[src]

Retrieves a [crate::glib::List] of crate::PluginFeature of type_.

type_

a crate::glib::Type.

Returns

a [crate::glib::List] of crate::PluginFeature of type_. Use [crate::PluginFeature::list_free()] after use

MT safe.

pub fn feature_list_by_plugin(&self, name: &str) -> Vec<PluginFeature>[src]

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

name

a plugin name.

Returns

a [crate::glib::List] of crate::PluginFeature. Use [crate::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.

pub fn plugin_list(&self) -> Vec<Plugin>[src]

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

Returns

a [crate::glib::List] of crate::Plugin. Use [crate::Plugin::list_free()] after usage.

MT safe.

pub fn lookup(&self, filename: &str) -> Option<Plugin>[src]

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 crate::Plugin if found, or None if not. [crate::prelude::GstObjectExt::unref()] after usage.

pub fn lookup_feature(&self, name: &str) -> Option<PluginFeature>[src]

Find a crate::PluginFeature with name in self.

name

a crate::PluginFeature name

Returns

a crate::PluginFeature with its refcount incremented, use [crate::prelude::GstObjectExt::unref()] after usage.

MT safe.

pub fn plugin_filter<P: FnMut(&Plugin) -> bool>(
    &self,
    filter: P,
    first: bool
) -> Vec<Plugin>
[src]

Runs a filter against all plugins in the registry and returns a [crate::glib::List] with the results. If the first flag is set, only the first match is returned (as a list with a single object). Every plugin is reffed; use [crate::Plugin::list_free()] after use, which will unref again.

filter

the filter to use

first

only return first match

user_data

user data passed to the filter function

Returns

a [crate::glib::List] of crate::Plugin. Use [crate::Plugin::list_free()] after usage.

MT safe.

pub fn remove_feature<P: IsA<PluginFeature>>(&self, feature: &P)[src]

Remove the feature from the registry.

MT safe.

feature

the feature to remove

pub fn remove_plugin(&self, plugin: &Plugin)[src]

Remove the plugin from the registry.

MT safe.

plugin

the plugin to remove

pub fn scan_path<P: AsRef<Path>>(&self, path: P) -> bool[src]

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

pub fn get() -> Registry[src]

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 crate::Registry.

pub fn connect_feature_added<F: Fn(&Registry, &PluginFeature) + Send + Sync + 'static>(
    &self,
    f: F
) -> SignalHandlerId
[src]

Signals that a feature has been added to the registry (possibly replacing a previously-added one by the same name)

feature

the feature that has been added

pub fn connect_plugin_added<F: Fn(&Registry, &Plugin) + Send + Sync + 'static>(
    &self,
    f: F
) -> SignalHandlerId
[src]

Signals that a plugin has been added to the registry (possibly replacing a previously-added one by the same name)

plugin

the plugin that has been added

Trait Implementations

impl Clone for Registry[src]

fn clone(&self) -> Registry[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Registry[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Hash for Registry[src]

fn hash<__H: Hasher>(&self, state: &mut __H)[src]

Feeds this value into the given Hasher. Read more

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

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

impl Ord for Registry[src]

fn cmp(&self, other: &Registry) -> Ordering[src]

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

#[must_use]
fn max(self, other: Self) -> Self
1.21.0[src]

Compares and returns the maximum of two values. Read more

#[must_use]
fn min(self, other: Self) -> Self
1.21.0[src]

Compares and returns the minimum of two values. Read more

#[must_use]
fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]

Restrict a value to a certain interval. Read more

impl ParentClassIs for Registry[src]

type Parent = Object

impl<T: ObjectType> PartialEq<T> for Registry[src]

fn eq(&self, other: &T) -> bool[src]

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

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl<T: ObjectType> PartialOrd<T> for Registry[src]

fn partial_cmp(&self, other: &T) -> Option<Ordering>[src]

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

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]

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

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]

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

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]

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

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]

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

impl StaticType for Registry[src]

fn static_type() -> Type[src]

Returns the type identifier of Self.

impl Eq for Registry[src]

impl IsA<Object> for Registry[src]

impl Send for Registry[src]

impl StructuralEq for Registry[src]

impl Sync for Registry[src]

Auto Trait Implementations

impl RefUnwindSafe for Registry

impl Unpin for Registry

impl UnwindSafe for Registry

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> Cast for T where
    T: ObjectType
[src]

fn upcast<T>(self) -> T where
    Self: IsA<T>,
    T: ObjectType
[src]

Upcasts an object to a superclass or interface T. Read more

fn upcast_ref<T>(&self) -> &T where
    Self: IsA<T>,
    T: ObjectType
[src]

Upcasts an object to a reference of its superclass or interface T. Read more

fn downcast<T>(self) -> Result<T, Self> where
    Self: CanDowncast<T>,
    T: ObjectType
[src]

Tries to downcast to a subclass or interface implementor T. Read more

fn downcast_ref<T>(&self) -> Option<&T> where
    Self: CanDowncast<T>,
    T: ObjectType
[src]

Tries to downcast to a reference of its subclass or interface implementor T. Read more

fn dynamic_cast<T>(self) -> Result<T, Self> where
    T: ObjectType
[src]

Tries to cast to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while downcast and upcast will do many checks at compile-time already. Read more

fn dynamic_cast_ref<T>(&self) -> Option<&T> where
    T: ObjectType
[src]

Tries to cast to reference to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while downcast and upcast will do many checks at compile-time already. Read more

unsafe fn unsafe_cast<T>(self) -> T where
    T: ObjectType
[src]

Casts to T unconditionally. Read more

unsafe fn unsafe_cast_ref<T>(&self) -> &T where
    T: ObjectType
[src]

Casts to &T unconditionally. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ObjectExt for T where
    T: ObjectType
[src]

pub fn is<U>(&self) -> bool where
    U: StaticType
[src]

Returns true if the object is an instance of (can be cast to) T.

pub fn type_(&self) -> Type[src]

pub fn object_class(&self) -> &Class<Object>[src]

pub fn class(&self) -> &Class<T> where
    T: IsClass
[src]

pub fn class_of<U>(&self) -> Option<&Class<U>> where
    U: IsClass
[src]

pub fn interface<U>(&self) -> Option<InterfaceRef<'_, U>> where
    U: IsInterface
[src]

pub fn set_properties(
    &self,
    property_values: &[(&str, &dyn ToValue)]
) -> Result<(), BoolError>
[src]

pub fn set_properties_from_value(
    &self,
    property_values: &[(&str, Value)]
) -> Result<(), BoolError>
[src]

pub fn set_property<'a, N, V>(
    &self,
    property_name: N,
    value: V
) -> Result<(), BoolError> where
    V: ToValue,
    N: Into<&'a str>, 
[src]

pub fn set_property_from_value<'a, N>(
    &self,
    property_name: N,
    value: &Value
) -> Result<(), BoolError> where
    N: Into<&'a str>, 
[src]

pub fn property<'a, N>(&self, property_name: N) -> Result<Value, BoolError> where
    N: Into<&'a str>, 
[src]

pub unsafe fn set_qdata<QD>(&self, key: Quark, value: QD) where
    QD: 'static, 
[src]

Safety Read more

pub unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>> where
    QD: 'static, 
[src]

Safety Read more

pub unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD> where
    QD: 'static, 
[src]

Safety Read more

pub unsafe fn set_data<QD>(&self, key: &str, value: QD) where
    QD: 'static, 
[src]

Safety Read more

pub unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>> where
    QD: 'static, 
[src]

Safety Read more

pub unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD> where
    QD: 'static, 
[src]

Safety Read more

pub fn block_signal(&self, handler_id: &SignalHandlerId)[src]

pub fn unblock_signal(&self, handler_id: &SignalHandlerId)[src]

pub fn stop_signal_emission(&self, signal_name: &str)[src]

pub fn disconnect(&self, handler_id: SignalHandlerId)[src]

pub fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId where
    F: 'static + Fn(&T, &ParamSpec) + Send + Sync
[src]

pub fn connect_notify_local<F>(
    &self,
    name: Option<&str>,
    f: F
) -> SignalHandlerId where
    F: 'static + Fn(&T, &ParamSpec), 
[src]

pub unsafe fn connect_notify_unsafe<F>(
    &self,
    name: Option<&str>,
    f: F
) -> SignalHandlerId where
    F: Fn(&T, &ParamSpec), 
[src]

pub fn notify<'a, N>(&self, property_name: N) where
    N: Into<&'a str>, 
[src]

pub fn notify_by_pspec(&self, pspec: &ParamSpec)[src]

pub fn has_property<'a, N>(&self, property_name: N, type_: Option<Type>) -> bool where
    N: Into<&'a str>, 
[src]

pub fn property_type<'a, N>(&self, property_name: N) -> Option<Type> where
    N: Into<&'a str>, 
[src]

pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
    N: Into<&'a str>, 
[src]

pub fn list_properties(&self) -> Vec<ParamSpec, Global>[src]

pub fn connect<'a, N, F>(
    &self,
    signal_name: N,
    after: bool,
    callback: F
) -> Result<SignalHandlerId, BoolError> where
    F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
    N: Into<&'a str>, 
[src]

pub fn connect_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> Result<SignalHandlerId, BoolError> where
    F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static, 
[src]

Same as connect but takes a SignalId instead of a signal name.

pub fn connect_local<'a, N, F>(
    &self,
    signal_name: N,
    after: bool,
    callback: F
) -> Result<SignalHandlerId, BoolError> where
    F: Fn(&[Value]) -> Option<Value> + 'static,
    N: Into<&'a str>, 
[src]

pub fn connect_local_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> Result<SignalHandlerId, BoolError> where
    F: Fn(&[Value]) -> Option<Value> + 'static, 
[src]

Same as connect_local but takes a SignalId instead of a signal name.

pub unsafe fn connect_unsafe<'a, N, F>(
    &self,
    signal_name: N,
    after: bool,
    callback: F
) -> Result<SignalHandlerId, BoolError> where
    F: Fn(&[Value]) -> Option<Value>,
    N: Into<&'a str>, 
[src]

pub unsafe fn connect_unsafe_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> Result<SignalHandlerId, BoolError> where
    F: Fn(&[Value]) -> Option<Value>, 
[src]

Same as connect_unsafe but takes a SignalId instead of a signal name.

pub fn emit(
    &self,
    signal_id: SignalId,
    args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError>
[src]

Emit signal by signal id.

pub fn emit_with_details(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError>
[src]

Emit signal with details by signal id.

pub fn emit_by_name<'a, N>(
    &self,
    signal_name: N,
    args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError> where
    N: Into<&'a str>, 
[src]

Emit signal by it’s name.

pub fn downgrade(&self) -> WeakRef<T>[src]

pub fn bind_property<'a, O, N, M>(
    &'a self,
    source_property: N,
    target: &'a O,
    target_property: M
) -> BindingBuilder<'a> where
    O: ObjectType,
    N: Into<&'a str>,
    M: Into<&'a str>, 
[src]

pub fn ref_count(&self) -> u32[src]

pub fn emit_with_values(
    &self,
    signal_id: SignalId,
    args: &[Value]
) -> Result<Option<Value>, BoolError>
[src]

Same as emit but takes Value for the arguments.

pub fn emit_by_name_with_values<'a, N>(
    &self,
    signal_name: N,
    args: &[Value]
) -> Result<Option<Value>, BoolError> where
    N: Into<&'a str>, 
[src]

Same as emit_by_name but takes Value for the arguments.

pub fn emit_with_details_and_values(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[Value]
) -> Result<Option<Value>, BoolError>
[src]

Same as emit_with_details but takes Value for the arguments.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T> ToSendValue for T where
    T: Send + ToValue + ?Sized
[src]

pub fn to_send_value(&self) -> SendValue[src]

Returns a SendValue clone of self.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<Super, Sub> CanDowncast<Sub> for Super where
    Sub: IsA<Super>,
    Super: IsA<Super>, 
[src]

impl<'a, T, C> FromValueOptional<'a> for T where
    C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,
    T: FromValue<'a, Checker = C>, 
[src]