Struct gstreamer::GhostPad

source ·
pub struct GhostPad { /* private fields */ }
Expand description

GhostPads are useful when organizing pipelines with Bin like elements. The idea here is to create hierarchical element graphs. The bin element contains a sub-graph. Now one would like to treat the bin-element like any other Element. This is where GhostPads come into play. A GhostPad acts as a proxy for another pad. Thus the bin can have sink and source ghost-pads that are associated with sink and source pads of the child elements.

If the target pad is known at creation time, with_target() is the function to use to get a ghost-pad. Otherwise one can use new() to create the ghost-pad and use GhostPadExt::set_target() to establish the association later on.

Note that GhostPads add overhead to the data processing of a pipeline.

§Implements

GhostPadExt, ProxyPadExt, PadExt, GstObjectExt, [trait@glib::ObjectExt], [ProxyPadExtManual][trait@crate::prelude::ProxyPadExtManual], PadExtManual

GLib type: GObject with reference counted clone semantics.

Implementations§

source§

impl GhostPad

source

pub const NONE: Option<&'static GhostPad> = None

source§

impl GhostPad

source

pub fn activate_mode_default<P: IsA<GhostPad>>( pad: &P, parent: Option<&impl IsA<Object>>, mode: PadMode, active: bool, ) -> Result<(), BoolError>

Invoke the default activate mode function of a ghost pad.

§pad

the Pad to activate or deactivate.

§parent

the parent of pad or None

§mode

the requested activation mode

§active

whether the pad should be active or not.

§Returns

true if the operation was successful.

source

pub fn internal_activate_mode_default<P: IsA<GhostPad>>( pad: &P, parent: Option<&impl IsA<Object>>, mode: PadMode, active: bool, ) -> Result<(), BoolError>

Invoke the default activate mode function of a proxy pad that is owned by a ghost pad.

§pad

the Pad to activate or deactivate.

§parent

the parent of pad or None

§mode

the requested activation mode

§active

whether the pad should be active or not.

§Returns

true if the operation was successful.

source

pub fn new(direction: PadDirection) -> Self

Creates a new GhostPad with an automatically generated name.

The Pad will be assigned the usual gst::Object generated unique name.

Use GhostPad::builder_from_template() to get a PadBuilder and define options. Create a new ghostpad without a target with the given direction. A target can be set on the ghostpad later with the GhostPadExt::set_target() function.

The created ghostpad will not have a padtemplate.

§name

the name of the new pad, or None to assign a default name.

§dir

the direction of the ghostpad

§Returns

a new Pad, or None in case of an error.

source

pub fn builder(direction: PadDirection) -> PadBuilder<Self>

Creates a PadBuilder with the specified PadDirection.

source

pub fn from_static_template(templ: &StaticPadTemplate) -> Self

Creates a new GhostPad from the StaticPadTemplate.

If the StaticPadTemplate has a specific name_template, i.e. if it’s not a wildcard-name containing %u, %s or %d, the GhostPad will automatically be named after the name_template.

Use GhostPad::builder_from_template() to get a PadBuilder and define options.

Use generated_name() to keep the gst::Object automatically generated unique name.

§Panics

Panics if the name_template is a wildcard-name.

source

pub fn builder_from_static_template( templ: &StaticPadTemplate, ) -> PadBuilder<Self>

Creates a new PadBuilder for a GhostPad from the StaticPadTemplate.

If the StaticPadTemplate has a specific name_template, i.e. if it’s not a wildcard-name containing %u, %s or %d, the GhostPad will automatically be named after the name_template.

Use PadBuilder::name or PadBuilder::maybe_name to specify a different name.

Use generated_name() to keep the gst::Object automatically generated unique name.

source

pub fn from_template(templ: &PadTemplate) -> Self

Creates a new GhostPad from the PadTemplate.

If the PadTemplate has a specific name_template, i.e. if it’s not a wildcard-name containing %u, %s or %d, the GhostPad will automatically be named after the name_template.

Use GhostPad::builder_from_template() to get a PadBuilder and define options.

Use generated_name() to keep the gst::Object automatically generated unique name.

§Panics

Panics if the name_template is a wildcard-name. Create a new ghostpad based on templ, without setting a target. The direction will be taken from the templ.

§name

the name of the new pad, or None to assign a default name

§templ

the PadTemplate to create the ghostpad from.

§Returns

a new Pad, or None in case of an error.

source

pub fn builder_from_template(templ: &PadTemplate) -> PadBuilder<Self>

Creates a new PadBuilder for a GhostPad from the PadTemplate.

If the PadTemplate has a specific name_template, i.e. if it’s not a wildcard-name containing %u, %s or %d, the GhostPad will automatically be named after the name_template.

Use PadBuilder::name or PadBuilder::maybe_name to specify a different name.

Use generated_name() to keep the gst::Object automatically generated unique name.

source

pub fn with_target<P: IsA<Pad> + IsA<Object>>( target: &P, ) -> Result<Self, BoolError>

Creates a new GhostPad from the specified target Pad.

The GhostPad will automatically be named after the target name.

Use GhostPad::builder_with_target() to get a PadBuilder and define options.

Use generated_name() to keep the gst::Object automatically generated unique name. Create a new ghostpad with target as the target. The direction will be taken from the target pad. target must be unlinked.

Will ref the target.

§name

the name of the new pad, or None to assign a default name

§target

the pad to ghost.

§Returns

a new Pad, or None in case of an error.

source

pub fn builder_with_target<P: IsA<Pad> + IsA<Object>>( target: &P, ) -> Result<PadBuilder<Self>, BoolError>

Creates a new PadBuilder for a GhostPad from the specified target Pad.

The GhostPad will automatically be named after the target name.

Use PadBuilder::name or PadBuilder::maybe_name to specify a different name.

Use generated_name() to keep the gst::Object automatically generated unique name.

source

pub fn from_template_with_target<P: IsA<Pad> + IsA<Object>>( templ: &PadTemplate, target: &P, ) -> Result<Self, BoolError>

Creates a new GhostPad from the PadTemplate with the specified target Pad.

If the PadTemplate has a specific name_template, i.e. if it’s not a wildcard-name containing %u, %s or %d, the GhostPad will automatically be named after the name_template.

If the name_template is a wildcard-name, then the target name is used, if it is compatible. Otherwise, a specific name must be provided using PadBuilder::name or PadBuilder::maybe_name.

Use generated_name() to keep the gst::Object automatically generated unique name. Create a new ghostpad with target as the target. The direction will be taken from the target pad. The template used on the ghostpad will be template.

Will ref the target.

§name

the name of the new pad, or None to assign a default name.

§target

the pad to ghost.

§templ

the PadTemplate to use on the ghostpad.

§Returns

a new Pad, or None in case of an error.

source

pub fn builder_from_template_with_target<P: IsA<Pad> + IsA<Object>>( templ: &PadTemplate, target: &P, ) -> Result<PadBuilder<Self>, BoolError>

Creates a new PadBuilder for a GhostPad from the PadTemplate with the specified target Pad.

If the PadTemplate has a specific name_template, i.e. if it’s not a wildcard-name containing %u, %s or %d, the GhostPad will automatically be named after the name_template.

If the name_template is a wildcard-name, then the target name is used, if it is compatible. Otherwise, a specific name must be provided using PadBuilder::name or PadBuilder::maybe_name.

Use generated_name() to keep the gst::Object automatically generated unique name.

Trait Implementations§

source§

impl Clone for GhostPad

source§

fn clone(&self) -> Self

Makes a clone of this shared reference.

This increments the strong reference count of the object. Dropping the object will decrement it again.

1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for GhostPad

source§

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

Formats the value using the given formatter. Read more
source§

impl HasParamSpec for GhostPad

§

type ParamSpec = ParamSpecObject

§

type SetValue = GhostPad

Preferred value to be used as setter for the associated ParamSpec.
§

type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, GhostPad>

source§

fn param_spec_builder() -> Self::BuilderFn

source§

impl Hash for GhostPad

source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Hashes the memory address of this object.

1.3.0 · source§

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

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

impl<T: GhostPadImpl> IsSubclassable<T> for GhostPad

source§

fn class_init(class: &mut Class<Self>)

Override the virtual methods of this class for the given subclass and do other class initialization. Read more
source§

fn instance_init(instance: &mut InitializingObject<T>)

Instance specific initialization. Read more
source§

impl Ord for GhostPad

source§

fn cmp(&self, other: &Self) -> Ordering

Comparison for two GObjects.

Compares the memory addresses of the provided objects.

1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl ParentClassIs for GhostPad

source§

impl<OT: ObjectType> PartialEq<OT> for GhostPad

source§

fn eq(&self, other: &OT) -> bool

Equality for two GObjects.

Two GObjects are equal if their memory addresses are equal.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<OT: ObjectType> PartialOrd<OT> for GhostPad

source§

fn partial_cmp(&self, other: &OT) -> Option<Ordering>

Partial comparison for two GObjects.

Compares the memory addresses of the provided objects.

1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

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

fn le(&self, other: &Rhs) -> bool

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

fn gt(&self, other: &Rhs) -> bool

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

fn ge(&self, other: &Rhs) -> bool

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

impl StaticType for GhostPad

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl Eq for GhostPad

source§

impl IsA<Object> for GhostPad

source§

impl IsA<Pad> for GhostPad

source§

impl IsA<ProxyPad> for GhostPad

source§

impl Send for GhostPad

source§

impl Sync for GhostPad

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Cast for T
where T: ObjectType,

source§

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

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

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

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

fn downcast<T>(self) -> Result<T, Self>
where T: ObjectType, Self: MayDowncastTo<T>,

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

fn downcast_ref<T>(&self) -> Option<&T>
where T: ObjectType, Self: MayDowncastTo<T>,

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

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

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 upcast will do many checks at compile-time already. downcast will perform the same checks at runtime as dynamic_cast, but will also ensure some amount of compile-time safety. Read more
source§

fn dynamic_cast_ref<T>(&self) -> Option<&T>
where T: ObjectType,

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
source§

unsafe fn unsafe_cast<T>(self) -> T
where T: ObjectType,

Casts to T unconditionally. Read more
source§

unsafe fn unsafe_cast_ref<T>(&self) -> &T
where T: ObjectType,

Casts to &T unconditionally. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(_: *const GList, _: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GList, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GPtrArray, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec( _: *const GPtrArray, _: usize, ) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GPtrArray, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *const GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(_: *const GSList, _: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GList, num: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec( ptr: *mut GPtrArray, num: usize, ) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GPtrArray, num: usize) -> Vec<T>

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

source§

unsafe fn from_glib_none_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_container_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

unsafe fn from_glib_full_num_as_vec(ptr: *mut GSList, num: usize) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GPtrArray) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *const GSList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(_: *const GSList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(_: *const GSList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GList) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GPtrArray) -> Vec<T>

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for T

source§

unsafe fn from_glib_none_as_vec(ptr: *mut GSList) -> Vec<T>

source§

unsafe fn from_glib_container_as_vec(ptr: *mut GSList) -> Vec<T>

source§

unsafe fn from_glib_full_as_vec(ptr: *mut GSList) -> Vec<T>

source§

impl<O> GObjectExtManualGst for O
where O: IsA<Object>,

source§

fn set_property_from_str(&self, name: &str, value: &str)

source§

impl<O> GhostPadExt for O
where O: IsA<GhostPad>,

source§

fn target(&self) -> Option<Pad>

Get the target pad of self. Unref target pad after usage. Read more
source§

fn set_target(&self, newtarget: Option<&impl IsA<Pad>>) -> Result<(), BoolError>

Set the new target of the ghostpad self. Any existing target is unlinked and links to the new target are established. if newtarget is None the target will be cleared. Read more
source§

impl<O> GstObjectExt for O
where O: IsA<Object>,

source§

fn add_control_binding( &self, binding: &impl IsA<ControlBinding>, ) -> Result<(), BoolError>

Attach the ControlBinding to the object. If there already was a ControlBinding for this property it will be replaced. Read more
source§

fn default_error(&self, error: &Error, debug: Option<&str>)

A default error function that uses g_printerr() to display the error message and the optional debug string.. Read more
source§

fn control_binding(&self, property_name: &str) -> Option<ControlBinding>

Gets the corresponding ControlBinding for the property. This should be unreferenced again after use. Read more
source§

fn control_rate(&self) -> Option<ClockTime>

Obtain the control-rate for this self. Audio processing Element objects will use this rate to sub-divide their processing loop and call sync_values() in between. The length of the processing segment should be up to control-rate nanoseconds. Read more
source§

fn name(&self) -> GString

Returns a copy of the name of self. Caller should g_free() the return value after usage. For a nameless object, this returns None, which you can safely g_free() as well. Read more
source§

fn parent(&self) -> Option<Object>

Returns the parent of self. This function increases the refcount of the parent object so you should gst_object_unref() it after usage. Read more
source§

fn path_string(&self) -> GString

Generates a string describing the path of self in the object hierarchy. Only useful (or used) for debugging. Read more
source§

fn value( &self, property_name: &str, timestamp: impl Into<Option<ClockTime>>, ) -> Option<Value>

Gets the value for the given controlled property at the requested time. Read more
source§

fn has_active_control_bindings(&self) -> bool

Check if the self has active controlled properties. Read more
source§

fn has_ancestor(&self, ancestor: &impl IsA<Object>) -> bool

Check if self has an ancestor ancestor somewhere up in the hierarchy. One can e.g. check if a Element is inside a Pipeline. Read more
source§

fn has_as_ancestor(&self, ancestor: &impl IsA<Object>) -> bool

Check if self has an ancestor ancestor somewhere up in the hierarchy. One can e.g. check if a Element is inside a Pipeline. Read more
source§

fn has_as_parent(&self, parent: &impl IsA<Object>) -> bool

Check if parent is the parent of self. E.g. a Element can check if it owns a given Pad. Read more
source§

fn remove_control_binding(&self, binding: &impl IsA<ControlBinding>) -> bool

Removes the corresponding ControlBinding. If it was the last ref of the binding, it will be disposed. Read more
source§

fn set_control_binding_disabled(&self, property_name: &str, disabled: bool)

This function is used to disable the control bindings on a property for some time, i.e. sync_values() will do nothing for the property. Read more
source§

fn set_control_bindings_disabled(&self, disabled: bool)

This function is used to disable all controlled properties of the self for some time, i.e. sync_values() will do nothing. Read more
source§

fn set_control_rate(&self, control_rate: impl Into<Option<ClockTime>>)

Change the control-rate for this self. Audio processing Element objects will use this rate to sub-divide their processing loop and call sync_values() in between. The length of the processing segment should be up to control-rate nanoseconds. Read more
source§

fn set_parent(&self, parent: &impl IsA<Object>) -> Result<(), BoolError>

Sets the parent of self to parent. The object’s reference count will be incremented, and any floating reference will be removed (see gst_object_ref_sink()). Read more
source§

fn suggest_next_sync(&self) -> Option<ClockTime>

Returns a suggestion for timestamps where buffers should be split to get best controller results. Read more
source§

fn sync_values(&self, timestamp: ClockTime) -> Result<(), BoolError>

Sets the properties of the object, according to the GstControlSources that (maybe) handle them and for the given timestamp. Read more
source§

fn unparent(&self)

Clear the parent of self, removing the associated reference. This function decreases the refcount of self. Read more
source§

fn connect_parent_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source§

impl<O> GstObjectExtManual for O
where O: IsA<Object>,

source§

fn connect_deep_notify<F: Fn(&Self, &Object, &ParamSpec) + Send + Sync + 'static>( &self, name: Option<&str>, f: F, ) -> SignalHandlerId

source§

fn set_object_flags(&self, flags: ObjectFlags)

source§

fn unset_object_flags(&self, flags: ObjectFlags)

source§

fn object_flags(&self) -> ObjectFlags

source§

fn g_value_array( &self, property_name: &str, timestamp: ClockTime, interval: ClockTime, values: &mut [Value], ) -> Result<(), BoolError>

source§

fn object_lock(&self) -> ObjectLockGuard<'_, Self>

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoClosureReturnValue for T
where T: Into<Value>,

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<U> IsSubclassableExt for U

source§

impl<T> ObjectExt for T
where T: ObjectType,

source§

fn is<U>(&self) -> bool
where U: StaticType,

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

fn type_(&self) -> Type

Returns the type of the object.
source§

fn object_class(&self) -> &Class<Object>

Returns the ObjectClass of the object. Read more
source§

fn class(&self) -> &Class<T>
where T: IsClass,

Returns the class of the object.
source§

fn class_of<U>(&self) -> Option<&Class<U>>
where U: IsClass,

Returns the class of the object in the given type T. Read more
source§

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

Returns the interface T of the object. Read more
source§

fn set_property(&self, property_name: &str, value: impl Into<Value>)

Sets the property property_name of the object to value value. Read more
source§

fn set_property_from_value(&self, property_name: &str, value: &Value)

Sets the property property_name of the object to value value. Read more
source§

fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])

Sets multiple properties of the object at once. Read more
source§

fn set_properties_from_value(&self, property_values: &[(&str, Value)])

Sets multiple properties of the object at once. Read more
source§

fn property<V>(&self, property_name: &str) -> V
where V: for<'b> FromValue<'b> + 'static,

Gets the property property_name of the object and cast it to the type V. Read more
source§

fn property_value(&self, property_name: &str) -> Value

Gets the property property_name of the object. Read more
source§

fn has_property(&self, property_name: &str, type_: Option<Type>) -> bool

Check if the object has a property property_name of the given type_. Read more
source§

fn property_type(&self, property_name: &str) -> Option<Type>

Get the type of the property property_name of this object. Read more
source§

fn find_property(&self, property_name: &str) -> Option<ParamSpec>

Get the ParamSpec of the property property_name of this object.
source§

fn list_properties(&self) -> PtrSlice<ParamSpec>

Return all ParamSpec of the properties of this object.
source§

fn freeze_notify(&self) -> PropertyNotificationFreezeGuard

Freeze all property notifications until the return guard object is dropped. Read more
source§

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

Set arbitrary data on this object with the given key. Read more
source§

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

Return previously set arbitrary data of this object with the given key. Read more
source§

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

Retrieve previously set arbitrary data of this object with the given key. Read more
source§

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

Set arbitrary data on this object with the given key. Read more
source§

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

Return previously set arbitrary data of this object with the given key. Read more
source§

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

Retrieve previously set arbitrary data of this object with the given key. Read more
source§

fn block_signal(&self, handler_id: &SignalHandlerId)

Block a given signal handler. Read more
source§

fn unblock_signal(&self, handler_id: &SignalHandlerId)

Unblock a given signal handler.
source§

fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)

Stop emission of the currently emitted signal.
source§

fn stop_signal_emission_by_name(&self, signal_name: &str)

Stop emission of the currently emitted signal by the (possibly detailed) signal name.
source§

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

Connect to the signal signal_name on this object. Read more
source§

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

Connect to the signal signal_id on this object. Read more
source§

fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value> + 'static,

Connect to the signal signal_name on this object. Read more
source§

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

Connect to the signal signal_id on this object. Read more
source§

unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
where F: Fn(&[Value]) -> Option<Value>,

Connect to the signal signal_name on this object. Read more
source§

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

Connect to the signal signal_id on this object. Read more
source§

fn connect_closure( &self, signal_name: &str, after: bool, closure: RustClosure, ) -> SignalHandlerId

Connect a closure to the signal signal_name on this object. Read more
source§

fn connect_closure_id( &self, signal_id: SignalId, details: Option<Quark>, after: bool, closure: RustClosure, ) -> SignalHandlerId

Connect a closure to the signal signal_id on this object. Read more
source§

fn watch_closure(&self, closure: &impl AsRef<Closure>)

Limits the lifetime of closure to the lifetime of the object. When the object’s reference count drops to zero, the closure will be invalidated. An invalidated closure will ignore any calls to invoke_with_values, or invoke when using Rust closures.
source§

fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> R

Emit signal by signal id. Read more
source§

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

Same as Self::emit but takes Value for the arguments.
source§

fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> R

Emit signal by its name. Read more
source§

fn emit_by_name_with_values( &self, signal_name: &str, args: &[Value], ) -> Option<Value>

Emit signal by its name. Read more
source§

fn emit_by_name_with_details<R>( &self, signal_name: &str, details: Quark, args: &[&dyn ToValue], ) -> R

Emit signal by its name with details. Read more
source§

fn emit_by_name_with_details_and_values( &self, signal_name: &str, details: Quark, args: &[Value], ) -> Option<Value>

Emit signal by its name with details. Read more
source§

fn emit_with_details<R>( &self, signal_id: SignalId, details: Quark, args: &[&dyn ToValue], ) -> R

Emit signal by signal id with details. Read more
source§

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

Emit signal by signal id with details. Read more
source§

fn disconnect(&self, handler_id: SignalHandlerId)

Disconnect a previously connected signal handler.
source§

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

Connect to the notify signal of the object. Read more
source§

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

Connect to the notify signal of the object. Read more
source§

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

Connect to the notify signal of the object. Read more
source§

fn notify(&self, property_name: &str)

Notify that the given property has changed its value. Read more
source§

fn notify_by_pspec(&self, pspec: &ParamSpec)

Notify that the given property has changed its value. Read more
source§

fn downgrade(&self) -> WeakRef<T>

Downgrade this object to a weak reference.
source§

fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>
where F: FnOnce() + Send + 'static,

Add a callback to be notified when the Object is disposed.
source§

fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>
where F: FnOnce() + 'static,

Add a callback to be notified when the Object is disposed. Read more
source§

fn bind_property<'a, 'f, 't, O>( &'a self, source_property: &'a str, target: &'a O, target_property: &'a str, ) -> BindingBuilder<'a, 'f, 't>
where O: ObjectType,

Bind property source_property on this object to the target_property on the target object. Read more
source§

fn ref_count(&self) -> u32

Returns the strong reference count of this object.
source§

unsafe fn run_dispose(&self)

Runs the dispose mechanism of the object. Read more
source§

impl<O> PadExt for O
where O: IsA<Pad>,

source§

fn activate_mode(&self, mode: PadMode, active: bool) -> Result<(), BoolError>

Activates or deactivates the given pad in mode via dispatching to the pad’s activatemodefunc. For use from within pad activation functions only. Read more
Checks if the source pad and the sink pad are compatible so they can be linked. Read more
source§

fn chain(&self, buffer: Buffer) -> Result<FlowSuccess, FlowError>

Chain a buffer to self. Read more
source§

fn chain_list(&self, list: BufferList) -> Result<FlowSuccess, FlowError>

Chain a bufferlist to self. Read more
source§

fn check_reconfigure(&self) -> bool

Check and clear the PadFlags::NEED_RECONFIGURE flag on self and return true if the flag was set. Read more
source§

fn create_stream_id( &self, parent: &impl IsA<Element>, stream_id: Option<&str>, ) -> GString

Creates a stream-id for the source Pad self by combining the upstream information with the optional stream_id of the stream of self. self must have a parent Element and which must have zero or one sinkpad. stream_id can only be None if the parent element of self has only a single source pad. Read more
source§

fn forward<P: FnMut(&Pad) -> bool>(&self, forward: P) -> bool

Calls forward for all internally linked pads of self. This function deals with dynamically changing internal pads and will make sure that the forward function is only called once for each pad. Read more
source§

fn allowed_caps(&self) -> Option<Caps>

Gets the capabilities of the allowed media types that can flow through self and its peer. Read more
source§

fn current_caps(&self) -> Option<Caps>

Gets the capabilities currently configured on self with the last EventType::Caps event. Read more
source§

fn direction(&self) -> PadDirection

Gets the direction of the pad. The direction of the pad is decided at construction time so this function does not take the LOCK. Read more
source§

fn last_flow_result(&self) -> Result<FlowSuccess, FlowError>

Gets the FlowReturn return from the last data passed by this pad.
source§

fn offset(&self) -> i64

Get the offset applied to the running time of self. self has to be a source pad. Read more
source§

fn pad_template(&self) -> Option<PadTemplate>

Gets the template for self. Read more
source§

fn pad_template_caps(&self) -> Caps

Gets the capabilities for self’s template. Read more
source§

fn parent_element(&self) -> Option<Element>

Gets the parent of self, cast to a Element. If a self has no parent or its parent is not an element, return None. Read more
source§

fn peer(&self) -> Option<Pad>

Gets the peer of self. This function refs the peer pad so you need to unref it after use. Read more
If there is a single internal link of the given pad, this function will return it. Otherwise, it will return NULL. Read more
source§

fn stream(&self) -> Option<Stream>

Returns the current Stream for the self, or None if none has been set yet, i.e. the pad has not received a stream-start event yet. Read more
source§

fn stream_id(&self) -> Option<GString>

Returns the current stream-id for the self, or None if none has been set yet, i.e. the pad has not received a stream-start event yet. Read more
source§

fn task_state(&self) -> TaskState

Get self task state. If no task is currently set, TaskState::Stopped is returned. Read more
source§

fn has_current_caps(&self) -> bool

Check if self has caps set on it with a EventType::Caps event. Read more
source§

fn is_active(&self) -> bool

Query if a pad is active Read more
source§

fn is_blocked(&self) -> bool

Checks if the pad is blocked or not. This function returns the last requested state of the pad. It is not certain that the pad is actually blocking at this point (see is_blocking()). Read more
source§

fn is_blocking(&self) -> bool

Checks if the pad is blocking or not. This is a guaranteed state of whether the pad is actually blocking on a Buffer or a Event. Read more
source§

fn is_linked(&self) -> bool

Checks if a self is linked to another pad or not. Read more
Links the source pad and the sink pad. Read more
Links the source pad and the sink pad. Read more
Links self to sink, creating any GhostPad’s in between as necessary. Read more
Links self to sink, creating any GhostPad’s in between as necessary. Read more
source§

fn mark_reconfigure(&self)

Mark a pad for needing reconfiguration. The next call to check_reconfigure() will return true after this call.
source§

fn needs_reconfigure(&self) -> bool

Check the PadFlags::NEED_RECONFIGURE flag on self and return true if the flag was set. Read more
source§

fn pause_task(&self) -> Result<(), BoolError>

Pause the task of self. This function will also wait until the function executed by the task is finished if this function is not called from the task function. Read more
source§

fn peer_query_accept_caps(&self, caps: &Caps) -> bool

Check if the peer of self accepts caps. If self has no peer, this function returns true. Read more
source§

fn peer_query_caps(&self, filter: Option<&Caps>) -> Caps

Gets the capabilities of the peer connected to this pad. Similar to query_caps(). Read more
source§

fn push(&self, buffer: Buffer) -> Result<FlowSuccess, FlowError>

Pushes a buffer to the peer of self. Read more
source§

fn push_list(&self, list: BufferList) -> Result<FlowSuccess, FlowError>

Pushes a buffer list to the peer of self. Read more
source§

fn query_accept_caps(&self, caps: &Caps) -> bool

Check if the given pad accepts the caps. Read more
source§

fn query_caps(&self, filter: Option<&Caps>) -> Caps

Gets the capabilities this pad can produce or consume. Note that this method doesn’t necessarily return the caps set by sending a gst_event_new_caps() - use current_caps() for that instead. gst_pad_query_caps returns all possible caps a pad can operate with, using the pad’s CAPS query function, If the query fails, this function will return filter, if not None, otherwise ANY. Read more
source§

fn set_active(&self, active: bool) -> Result<(), BoolError>

Activates or deactivates the given pad. Normally called from within core state change functions. Read more
source§

fn set_offset(&self, offset: i64)

Set the offset that will be applied to the running time of self. Upon next buffer, every sticky events (notably segment) will be pushed again with their running time adjusted. For that reason this is only reliable on source pads. Read more
source§

fn stop_task(&self) -> Result<(), BoolError>

Stop the task of self. This function will also make sure that the function executed by the task will effectively stop if not called from the GstTaskFunction. Read more
source§

fn store_sticky_event(&self, event: &Event) -> Result<FlowSuccess, FlowError>

Store the sticky event on self Read more
Unlinks the source pad from the sink pad. Will emit the unlinked signal on both pads. Read more
source§

fn use_fixed_caps(&self)

A helper function you can use that sets the FIXED_CAPS flag This way the default CAPS query will always return the negotiated caps or in case the pad is not negotiated, the padtemplate caps. Read more
source§

fn connect_linked<F: Fn(&Self, &Pad) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

Signals that a pad has been linked to the peer pad. Read more
source§

fn connect_unlinked<F: Fn(&Self, &Pad) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

Signals that a pad has been unlinked from the peer pad. Read more
source§

fn connect_caps_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source§

fn connect_offset_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId

source§

impl<O> PadExtManual for O
where O: IsA<Pad>,

source§

fn add_probe<F>(&self, mask: PadProbeType, func: F) -> Option<PadProbeId>
where F: Fn(&Self, &mut PadProbeInfo<'_>) -> PadProbeReturn + Send + Sync + 'static,

Be notified of different states of pads. The provided callback is called for every state that matches mask. Read more
source§

fn remove_probe(&self, id: PadProbeId)

Remove the probe with id from self. Read more
source§

fn pull_range(&self, offset: u64, size: u32) -> Result<Buffer, FlowError>

Pulls a buffer from the peer pad or fills up a provided buffer. Read more
source§

fn pull_range_fill( &self, offset: u64, buffer: &mut BufferRef, size: u32, ) -> Result<(), FlowError>

source§

fn range(&self, offset: u64, size: u32) -> Result<Buffer, FlowError>

When self is flushing this function returns FlowReturn::Flushing immediately and buffer is None. Read more
source§

fn range_fill( &self, offset: u64, buffer: &mut BufferRef, size: u32, ) -> Result<(), FlowError>

source§

fn peer_query(&self, query: &mut QueryRef) -> bool

Performs query() on the peer of self. Read more
source§

fn query(&self, query: &mut QueryRef) -> bool

Dispatches a query to a pad. The query should have been allocated by the caller via one of the type-specific allocation functions. The element that the pad belongs to is responsible for filling the query with an appropriate response, which should then be parsed with a type-specific query parsing function. Read more
source§

fn proxy_query_caps(&self, query: &mut QueryRef) -> bool

Calls PadExt::query_caps() for all internally linked pads of self and returns the intersection of the results. Read more
source§

fn proxy_query_accept_caps(&self, query: &mut QueryRef) -> bool

Checks if all internally linked pads of self accepts the caps in query and returns the intersection of the results. Read more
source§

fn push_event(&self, event: impl Into<Event>) -> bool

Sends the event to the peer of the given pad. This function is mainly used by elements to send events to their peer elements. Read more
source§

fn send_event(&self, event: impl Into<Event>) -> bool

Sends the event to the pad. This function can be used by applications to send events in the pipeline. Read more
source§

fn stream_lock(&self) -> StreamLock<'_>

source§

unsafe fn set_activate_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>) -> Result<(), LoggableError> + Send + Sync + 'static,

source§

unsafe fn set_activatemode_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, PadMode, bool) -> Result<(), LoggableError> + Send + Sync + 'static,

source§

unsafe fn set_chain_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, Buffer) -> Result<FlowSuccess, FlowError> + Send + Sync + 'static,

source§

unsafe fn set_chain_list_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, BufferList) -> Result<FlowSuccess, FlowError> + Send + Sync + 'static,

source§

unsafe fn set_event_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, Event) -> bool + Send + Sync + 'static,

source§

unsafe fn set_event_full_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, Event) -> Result<FlowSuccess, FlowError> + Send + Sync + 'static,

source§

unsafe fn set_getrange_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, u64, Option<&mut BufferRef>, u32) -> Result<PadGetRangeSuccess, FlowError> + Send + Sync + 'static,

source§

unsafe fn set_query_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, &mut QueryRef) -> bool + Send + Sync + 'static,

source§

fn start_task<F: FnMut() + Send + 'static>( &self, func: F, ) -> Result<(), BoolError>

Starts a task that repeatedly calls func with user_data. This function is mostly used in pad activation functions to start the dataflow. The GST_PAD_STREAM_LOCK of self will automatically be acquired before func is called. Read more
source§

fn peer_query_convert<U: SpecificFormattedValueFullRange>( &self, src_val: impl FormattedValue, ) -> Option<U>

Queries the peer pad of a given sink pad to convert src_val in src_format to dest_format. Read more
source§

fn peer_query_convert_generic( &self, src_val: impl FormattedValue, dest_format: Format, ) -> Option<GenericFormattedValue>

source§

fn peer_query_duration<T: SpecificFormattedValueIntrinsic>(&self) -> Option<T>

Queries the peer pad of a given sink pad for the total stream duration. Read more
source§

fn peer_query_duration_generic( &self, format: Format, ) -> Option<GenericFormattedValue>

source§

fn peer_query_position<T: SpecificFormattedValueIntrinsic>(&self) -> Option<T>

Queries the peer of a given sink pad for the stream position. Read more
source§

fn peer_query_position_generic( &self, format: Format, ) -> Option<GenericFormattedValue>

source§

fn query_convert<U: SpecificFormattedValueFullRange>( &self, src_val: impl FormattedValue, ) -> Option<U>

Queries a pad to convert src_val in src_format to dest_format. Read more
source§

fn query_convert_generic( &self, src_val: impl FormattedValue, dest_format: Format, ) -> Option<GenericFormattedValue>

source§

fn query_duration<T: SpecificFormattedValueIntrinsic>(&self) -> Option<T>

Queries a pad for the total stream duration. Read more
source§

fn query_duration_generic( &self, format: Format, ) -> Option<GenericFormattedValue>

source§

fn query_position<T: SpecificFormattedValueIntrinsic>(&self) -> Option<T>

Queries a pad for the stream position. Read more
source§

fn query_position_generic( &self, format: Format, ) -> Option<GenericFormattedValue>

source§

fn mode(&self) -> PadMode

source§

fn sticky_events_foreach<F: FnMut(&Event) -> ControlFlow<EventForeachAction, EventForeachAction>>( &self, func: F, )

Iterates all sticky events on self and calls foreach_func for every event. If foreach_func returns false the iteration is immediately stopped. Read more
source§

fn sticky_event<T: StickyEventType>(&self, idx: u32) -> Option<T::Owned>

Returns a new reference of the sticky event of type event_type from the event. Read more
source§

fn set_pad_flags(&self, flags: PadFlags)

source§

fn unset_pad_flags(&self, flags: PadFlags)

source§

fn pad_flags(&self) -> PadFlags

source§

impl<T> Property for T
where T: HasParamSpec,

§

type Value = T

source§

impl<T> PropertyGet for T
where T: HasParamSpec,

§

type Value = T

source§

fn get<R, F>(&self, f: F) -> R
where F: Fn(&<T as PropertyGet>::Value) -> R,

source§

impl<O> ProxyPadExt for O
where O: IsA<ProxyPad>,

source§

fn internal(&self) -> Option<ProxyPad>

Get the internal pad of self. Unref target pad after usage. Read more
source§

impl<T> StaticTypeExt for T
where T: StaticType,

source§

fn ensure_type()

Ensures that the type has been registered with the type system.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T> ToSendValue for T
where T: Send + ToValue + ?Sized,

source§

fn to_send_value(&self) -> SendValue

Returns a SendValue clone of self.
source§

impl<T> TransparentType for T

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T> TryFromClosureReturnValue for T
where T: for<'a> FromValue<'a> + StaticType + 'static,

source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<'a, T, C, E> FromValueOptional<'a> for T
where T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError<E>>, E: Error + Send + 'static,

source§

impl<Super, Sub> MayDowncastTo<Sub> for Super
where Super: IsA<Super>, Sub: IsA<Super>,