Struct gstreamer::Registry [−][src]
pub struct Registry(_);
One registry holds the metadata of a set of plugins.
</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:
- location from –gst-plugin-path commandline option.
- the GST_PLUGIN_PATH environment variable.
- the GST_PLUGIN_SYSTEM_PATH environment variable.
- default locations (if GST_PLUGIN_SYSTEM_PATH is not set).
Those default locations are:
$XDG_DATA_HOME/gstreamer-$GST_API_VERSION/plugins/
and$prefix/libs/gstreamer-$GST_API_VERSION/
. $XDG_DATA_HOME defaults to$HOME/.local/share
.
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:
- the cache may not contain information about a given file.
- the cache may have stale information.
- the cache may have current 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
Implementations
impl Registry
[src]
impl Registry
[src]pub fn add_feature<P: IsA<PluginFeature>>(
&self,
feature: &P
) -> Result<(), BoolError>
[src]
pub fn add_feature<P: IsA<PluginFeature>>(
&self,
feature: &P
) -> Result<(), BoolError>
[src]pub fn check_feature_version(
&self,
feature_name: &str,
min_major: u32,
min_minor: u32,
min_micro: u32
) -> bool
[src]
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]
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]
pub fn find_feature(&self, name: &str, type_: Type) -> Option<PluginFeature>
[src]pub fn find_plugin(&self, name: &str) -> Option<Plugin>
[src]
pub fn find_plugin(&self, name: &str) -> Option<Plugin>
[src]pub fn feature_list(&self, type_: Type) -> Vec<PluginFeature>
[src]
pub fn feature_list(&self, type_: Type) -> Vec<PluginFeature>
[src]Retrieves a [crate::glib::List
] of crate::PluginFeature
of type_
.
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]
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.
pub fn feature_list_cookie(&self) -> u32
[src]
pub fn feature_list_cookie(&self) -> u32
[src]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]
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]
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]
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]
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]
pub fn remove_feature<P: IsA<PluginFeature>>(&self, feature: &P)
[src]pub fn remove_plugin(&self, plugin: &Plugin)
[src]
pub fn remove_plugin(&self, plugin: &Plugin)
[src]pub fn get() -> Registry
[src]
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]
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]
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 Ord for Registry
[src]
impl Ord for Registry
[src]impl ParentClassIs for Registry
[src]
impl ParentClassIs for Registry
[src]impl<T: ObjectType> PartialEq<T> for Registry
[src]
impl<T: ObjectType> PartialEq<T> for Registry
[src]impl<T: ObjectType> PartialOrd<T> for Registry
[src]
impl<T: ObjectType> PartialOrd<T> for Registry
[src]fn partial_cmp(&self, other: &T) -> Option<Ordering>
[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]
#[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]
#[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
impl StaticType for Registry
[src]
impl StaticType for Registry
[src]fn static_type() -> Type
[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
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[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]
impl<T> Cast for T where
T: ObjectType,
[src]fn upcast<T>(self) -> T where
Self: IsA<T>,
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]
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]
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]
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]
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]
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]
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]
unsafe fn unsafe_cast_ref<T>(&self) -> &T where
T: ObjectType,
[src]Casts to &T
unconditionally. Read more
impl<T> ObjectExt for T where
T: ObjectType,
[src]
impl<T> ObjectExt for T where
T: ObjectType,
[src]pub fn is<U>(&self) -> bool where
U: StaticType,
[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]
T: IsClass,
pub fn class_of<U>(&self) -> Option<&Class<U>> where
U: IsClass,
[src]
U: IsClass,
pub fn interface<U>(&self) -> Option<InterfaceRef<'_, U>> where
U: IsInterface,
[src]
U: IsInterface,
pub fn set_properties(
&self,
property_values: &[(&str, &dyn ToValue)]
) -> Result<(), BoolError>
[src]
&self,
property_values: &[(&str, &dyn ToValue)]
) -> Result<(), BoolError>
pub fn set_properties_from_value(
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>
[src]
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>
pub fn set_property<'a, N, V>(
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
V: ToValue,
N: Into<&'a str>,
[src]
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
V: ToValue,
N: Into<&'a str>,
pub fn set_property_from_value<'a, N>(
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>,
[src]
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>,
pub fn property<'a, N>(&self, property_name: N) -> Result<Value, BoolError> where
N: Into<&'a str>,
[src]
N: Into<&'a str>,
pub unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>> where
QD: 'static,
[src]
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]
pub unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD> where
QD: 'static,
[src]Safety Read more
pub unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>> where
QD: 'static,
[src]
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]
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]
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
pub fn connect_notify_local<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec),
[src]
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec),
pub unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
[src]
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
pub fn notify<'a, N>(&self, property_name: N) where
N: Into<&'a str>,
[src]
N: Into<&'a str>,
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]
N: Into<&'a str>,
pub fn property_type<'a, N>(&self, property_name: N) -> Option<Type> where
N: Into<&'a str>,
[src]
N: Into<&'a str>,
pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
N: Into<&'a str>,
[src]
N: Into<&'a str>,
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]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
N: Into<&'a str>,
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]
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]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static,
N: Into<&'a str>,
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]
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]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>,
N: Into<&'a str>,
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]
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]
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]
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]
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]
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>,
pub fn ref_count(&self) -> u32
[src]
pub fn emit_with_values(
&self,
signal_id: SignalId,
args: &[Value]
) -> Result<Option<Value>, BoolError>
[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.
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
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]
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]
impl<T> ToSendValue for T where
T: Send + ToValue + ?Sized,
[src]pub fn to_send_value(&self) -> SendValue
[src]
pub fn to_send_value(&self) -> SendValue
[src]Returns a SendValue
clone of self
.
impl<Super, Sub> CanDowncast<Sub> for Super where
Sub: IsA<Super>,
Super: IsA<Super>,
[src]
Sub: IsA<Super>,
Super: IsA<Super>,
impl<'a, T, C> FromValueOptional<'a> for T where
C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,
T: FromValue<'a, Checker = C>,
[src]
C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,
T: FromValue<'a, Checker = C>,