Trait gstreamer::prelude::GstBinExt

source ·
pub trait GstBinExt: IsA<Bin> + Sealed + 'static {
Show 20 methods // Provided methods fn add(&self, element: &impl IsA<Element>) -> Result<(), BoolError> { ... } fn find_unlinked_pad(&self, direction: PadDirection) -> Option<Pad> { ... } fn by_interface(&self, iface: Type) -> Option<Element> { ... } fn by_name(&self, name: &str) -> Option<Element> { ... } fn by_name_recurse_up(&self, name: &str) -> Option<Element> { ... } fn suppressed_flags(&self) -> ElementFlags { ... } fn recalculate_latency(&self) -> Result<(), BoolError> { ... } fn remove(&self, element: &impl IsA<Element>) -> Result<(), BoolError> { ... } fn set_suppressed_flags(&self, flags: ElementFlags) { ... } fn sync_children_states(&self) -> Result<(), BoolError> { ... } fn is_async_handling(&self) -> bool { ... } fn set_async_handling(&self, async_handling: bool) { ... } fn is_message_forward(&self) -> bool { ... } fn set_message_forward(&self, message_forward: bool) { ... } fn connect_deep_element_added<F: Fn(&Self, &Bin, &Element) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_deep_element_removed<F: Fn(&Self, &Bin, &Element) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_element_added<F: Fn(&Self, &Element) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_element_removed<F: Fn(&Self, &Element) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_async_handling_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId { ... } fn connect_message_forward_notify<F: Fn(&Self) + Send + Sync + 'static>( &self, f: F, ) -> SignalHandlerId { ... }
}
Expand description

Trait containing all Bin methods.

§Implementors

Bin, Pipeline

Provided Methods§

source

fn add(&self, element: &impl IsA<Element>) -> Result<(), BoolError>

Adds the given element to the bin. Sets the element’s parent, and thus takes ownership of the element. An element can only be added to one bin.

If the element’s pads are linked to other pads, the pads will be unlinked before the element is added to the bin.

When you add an element to an already-running pipeline, you will have to take care to set the state of the newly-added element to the desired state (usually PLAYING or PAUSED, same you set the pipeline to originally) with ElementExt::set_state(), or use ElementExt::sync_state_with_parent(). The bin or pipeline will not take care of this for you.

§element

the Element to add

§Returns

true if the element could be added, false if the bin does not want to accept the element.

source

fn find_unlinked_pad(&self, direction: PadDirection) -> Option<Pad>

Recursively looks for elements with an unlinked pad of the given direction within the specified bin and returns an unlinked pad if one is found, or None otherwise. If a pad is found, the caller owns a reference to it and should use gst_object_unref() on the pad when it is not needed any longer.

§direction

whether to look for an unlinked source or sink pad

§Returns

unlinked pad of the given direction.

source

fn by_interface(&self, iface: Type) -> Option<Element>

Looks for an element inside the bin that implements the given interface. If such an element is found, it returns the element. You can cast this element to the given interface afterwards. If you want all elements that implement the interface, use GstBinExtManual::iterate_all_by_interface(). This function recurses into child bins.

§iface

the GType of an interface

§Returns

A Element inside the bin implementing the interface

source

fn by_name(&self, name: &str) -> Option<Element>

Gets the element with the given name from a bin. This function recurses into child bins.

§name

the element name to search for

§Returns

the Element with the given name

source

fn by_name_recurse_up(&self, name: &str) -> Option<Element>

Gets the element with the given name from this bin. If the element is not found, a recursion is performed on the parent bin.

§name

the element name to search for

§Returns

the Element with the given name

source

fn suppressed_flags(&self) -> ElementFlags

§Returns

the bin’s suppressed ElementFlags.

source

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

Queries self for the current latency and reconfigures this latency on all the elements using a LATENCY event.

This method is typically called on the pipeline when a GST_MESSAGE_LATENCY is posted on the bus.

This function simply emits the do-latency signal so any custom latency calculations will be performed.

§Returns

true if the latency could be queried and reconfigured.

source

fn remove(&self, element: &impl IsA<Element>) -> Result<(), BoolError>

Removes the element from the bin, unparenting it as well. Unparenting the element means that the element will be dereferenced, so if the bin holds the only reference to the element, the element will be freed in the process of removing it from the bin. If you want the element to still exist after removing, you need to call gst_object_ref() before removing it from the bin.

If the element’s pads are linked to other pads, the pads will be unlinked before the element is removed from the bin.

§element

the Element to remove

§Returns

true if the element could be removed, false if the bin does not want to remove the element.

source

fn set_suppressed_flags(&self, flags: ElementFlags)

Suppresses the given flags on the bin. ElementFlags of a child element are propagated when it is added to the bin. When suppressed flags are set, those specified flags will not be propagated to the bin.

§flags

the ElementFlags to suppress

source

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

Synchronizes the state of every child of self with the state of self. See also ElementExt::sync_state_with_parent().

§Returns

true if syncing the state was successful for all children, otherwise false.

source

fn is_async_handling(&self) -> bool

If set to true, the bin will handle asynchronous state changes. This should be used only if the bin subclass is modifying the state of its children on its own.

source

fn set_async_handling(&self, async_handling: bool)

If set to true, the bin will handle asynchronous state changes. This should be used only if the bin subclass is modifying the state of its children on its own.

source

fn is_message_forward(&self) -> bool

Forward all children messages, even those that would normally be filtered by the bin. This can be interesting when one wants to be notified of the EOS state of individual elements, for example.

The messages are converted to an ELEMENT message with the bin as the source. The structure of the message is named GstBinForwarded and contains a field named message that contains the original forwarded Message.

source

fn set_message_forward(&self, message_forward: bool)

Forward all children messages, even those that would normally be filtered by the bin. This can be interesting when one wants to be notified of the EOS state of individual elements, for example.

The messages are converted to an ELEMENT message with the bin as the source. The structure of the message is named GstBinForwarded and contains a field named message that contains the original forwarded Message.

source

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

Will be emitted after the element was added to sub_bin.

§sub_bin

the Bin the element was added to

§element

the Element that was added to sub_bin

source

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

Will be emitted after the element was removed from sub_bin.

§sub_bin

the Bin the element was removed from

§element

the Element that was removed from sub_bin

source

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

Will be emitted after the element was added to the bin.

§element

the Element that was added to the bin

source

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

Will be emitted after the element was removed from the bin.

§element

the Element that was removed from the bin

source

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

source

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

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<O: IsA<Bin>> GstBinExt for O