Trait gstreamer::prelude::GstBinExt[][src]

pub trait GstBinExt: 'static {
Show methods fn add<P: IsA<Element>>(&self, element: &P) -> 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<P: IsA<Element>>(&self, element: &P) -> 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;
}

Trait containing all Bin methods.

Implementors

crate::Bin, crate::Pipeline

Required methods

fn add<P: IsA<Element>>(&self, element: &P) -> Result<(), BoolError>[src]

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 crate::prelude::ElementExt::set_state(), or use crate::prelude::ElementExt::sync_state_with_parent(). The bin or pipeline will not take care of this for you.

MT safe.

element

the crate::Element to add

Returns

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

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

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 [crate::prelude::GstObjectExt::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, None.

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

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 [Self::iterate_all_by_interface()]. This function recurses into child bins.

MT safe. Caller owns returned reference.

iface

the crate::glib::Type of an interface

Returns

A crate::Element inside the bin implementing the interface

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

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

Returns None if no element with the given name is found in the bin.

MT safe. Caller owns returned reference.

name

the element name to search for

Returns

the crate::Element with the given name, or None

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

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

Returns None if:

  • no element with the given name is found in the bin

MT safe. Caller owns returned reference.

name

the element name to search for

Returns

the crate::Element with the given name, or None

fn suppressed_flags(&self) -> ElementFlags[src]

This is supported on crate feature v1_10 only.

Return the suppressed flags of the bin.

MT safe.

Returns

the bin’s suppressed crate::ElementFlags.

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

Query self for the current latency using and reconfigures this latency to all the elements with a LATENCY event.

This method is typically called on the pipeline when a crate::MessageType::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.

fn remove<P: IsA<Element>>(&self, element: &P) -> Result<(), BoolError>[src]

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 [crate::prelude::GstObjectExt::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.

MT safe.

element

the crate::Element to remove

Returns

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

fn set_suppressed_flags(&self, flags: ElementFlags)[src]

This is supported on crate feature v1_10 only.

Suppress the given flags on the bin. crate::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.

MT safe.

flags

the crate::ElementFlags to suppress

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

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

Returns

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

fn is_async_handling(&self) -> bool[src]

fn set_async_handling(&self, async_handling: bool)[src]

fn is_message_forward(&self) -> bool[src]

fn set_message_forward(&self, message_forward: bool)[src]

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

This is supported on crate feature v1_10 only.

Will be emitted after the element was added to sub_bin.

sub_bin

the crate::Bin the element was added to

element

the crate::Element that was added to sub_bin

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

This is supported on crate feature v1_10 only.

Will be emitted after the element was removed from sub_bin.

sub_bin

the crate::Bin the element was removed from

element

the crate::Element that was removed from sub_bin

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

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

element

the crate::Element that was added to the bin

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

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

element

the crate::Element that was removed from the bin

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

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

Loading content...

Implementors

impl<O: IsA<Bin>> GstBinExt for O[src]

fn add<P: IsA<Element>>(&self, element: &P) -> Result<(), BoolError>[src]

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

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

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

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

fn suppressed_flags(&self) -> ElementFlags[src]

This is supported on crate feature v1_10 only.

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

fn remove<P: IsA<Element>>(&self, element: &P) -> Result<(), BoolError>[src]

fn set_suppressed_flags(&self, flags: ElementFlags)[src]

This is supported on crate feature v1_10 only.

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

fn is_async_handling(&self) -> bool[src]

fn set_async_handling(&self, async_handling: bool)[src]

fn is_message_forward(&self) -> bool[src]

fn set_message_forward(&self, message_forward: bool)[src]

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

This is supported on crate feature v1_10 only.

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

This is supported on crate feature v1_10 only.

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

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

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

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

Loading content...