pub struct Timeline { /* private fields */ }
Expand description

Timeline is the central object for any multimedia timeline.

A timeline is composed of a set of Track-s and a set of Layer-s, which are added to the timeline using TimelineExt::add_track() and TimelineExt::append_layer(), respectively.

The contained tracks define the supported types of the timeline and provide the media output. Essentially, each track provides an additional source gst::Pad.

Most usage of a timeline will likely only need a single AudioTrack and/or a single VideoTrack. You can create such a timeline with new_audio_video(). After this, you are unlikely to need to work with the tracks directly.

A timeline’s layers contain Clip-s, which in turn control the creation of TrackElement-s, which are added to the timeline’s tracks. See select-tracks-for-object if you wish to have more control over which track a clip’s elements are added to.

The layers are ordered, with higher priority layers having their content prioritised in the tracks. This ordering can be changed using TimelineExt::move_layer().

§Editing

See TimelineElement for the various ways the elements of a timeline can be edited.

If you change the timing or ordering of a timeline’s TimelineElement-s, then these changes will not actually be taken into account in the output of the timeline’s tracks until the TimelineExt::commit() method is called. This allows you to move its elements around, say, in response to an end user’s mouse dragging, with little expense before finalising their effect on the produced data.

§Overlaps and Auto-Transitions

There are certain restrictions placed on how Source-s may overlap in a Track that belongs to a timeline. These will be enforced by GES, so the user will not need to keep track of them, but they should be aware that certain edits will be refused as a result if the overlap rules would be broken.

Consider two Source-s, A and B, with start times startA and startB, and end times endA and endB, respectively. The start time refers to their start, and the end time is their start + duration. These two sources overlap if:

  • they share the same track (non None), which belongs to the timeline;
  • they share the same GES_TIMELINE_ELEMENT_LAYER_PRIORITY; and
  • startA < endB and startB < endA .

Note that when startA = endB or startB = endA then the two sources will touch at their edges, but are not considered overlapping.

If, in addition, startA < startB < endA, then we can say that the end of A overlaps the start of B.

If, instead, startA <= startB and endA >= endB, then we can say that A fully overlaps B.

The overlap rules for a timeline are that:

  1. One source cannot fully overlap another source.
  2. A source can only overlap the end of up to one other source at its start.
  3. A source can only overlap the start of up to one other source at its end.

The last two rules combined essentially mean that at any given timeline position, only up to two Source-s may overlap at that position. So triple or more overlaps are not allowed.

If you switch on auto-transition, then at any moment when the end of one source (the first source) overlaps the start of another (the second source), a TransitionClip will be automatically created for the pair in the same layer and it will cover their overlap. If the two elements are edited in a way such that the end of the first source no longer overlaps the start of the second, the transition will be automatically removed from the timeline. However, if the two sources still overlap at the same edges after the edit, then the same transition object will be kept, but with its timing and layer adjusted accordingly.

NOTE: if you know what you are doing and want to be in full control of the timeline layout, you can disable the edit APIs with ges_timeline_disable_edit_apis.

§Saving

To save/load a timeline, you can use the TimelineExt::load_from_uri() and TimelineExt::save_to_uri() methods that use the default format.

§Playing

A timeline is a gst::Bin with a source gst::Pad for each of its tracks, which you can fetch with TimelineExt::pad_for_track(). You will likely want to link these to some compatible sink gst::Element-s to be able to play or capture the content of the timeline.

You can use a Pipeline to easily preview/play the timeline’s content, or render it to a file.

§Properties

§auto-transition

Whether to automatically create a transition whenever two Source-s overlap in a track of the timeline. See auto-transition if you want this to only happen in some layers.

Readable | Writeable

§duration

The current duration (in nanoseconds) of the timeline. A timeline ‘starts’ at time 0, so this is the maximum end time of all of its TimelineElement-s.

Readable

§snapping-distance

The distance (in nanoseconds) at which a TimelineElement being moved within the timeline should snap one of its Source-s with another Source-s edge. See EditMode for which edges can snap during an edit. 0 means no snapping.

Readable | Writeable

Bin

§async-handling

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.

Readable | Writeable

§message-forward

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 GstMessage.

Readable | Writeable

Object

§name

Readable | Writeable | Construct

§parent

The parent of the object. Please note, that when changing the ‘parent’ property, we don’t emit notify and deep-notify signals due to locking issues. In some cases one can use element-added or element-removed signals on the parent to achieve a similar effect.

Readable | Writeable

§Signals

§commited

This signal will be emitted once the changes initiated by TimelineExt::commit() have been executed in the backend. Use TimelineExt::commit_sync() if you do not want to have to connect to this signal.

§group-added

Will be emitted after the group is added to to the timeline. This can happen when grouping with ges_container_group, or by adding containers to a newly created group.

Note that this should not be emitted whilst a timeline is being loaded from its Project asset. You should connect to the project’s loaded signal if you want to know which groups were created for the timeline.

§group-removed

Will be emitted after the group is removed from the timeline through ges_container_ungroup. Note that group will no longer contain its former children, these are held in children.

Note that if a group is emptied, then it will no longer belong to the timeline, but this signal will not be emitted in such a case.

§layer-added

Will be emitted after the layer is added to the timeline.

Note that this should not be emitted whilst a timeline is being loaded from its Project asset. You should connect to the project’s loaded signal if you want to know which layers were created for the timeline.

§layer-removed

Will be emitted after the layer is removed from the timeline.

§select-element-track

Simplified version of select-tracks-for-object which only allows track_element to be added to a single Track.

§select-tracks-for-object

This will be emitted whenever the timeline needs to determine which tracks a clip’s children should be added to. The track element will be added to each of the tracks given in the return. If a track element is selected to go into multiple tracks, it will be copied into the additional tracks, under the same clip. Note that the copy will not keep its properties or state in sync with the original.

Connect to this signal once if you wish to control which element should be added to which track. Doing so will overwrite the default behaviour, which adds track_element to all tracks whose track-type includes the track_element’s track-type.

Note that under the default track selection, if a clip would produce multiple core children of the same TrackType, it will choose one of the core children arbitrarily to place in the corresponding tracks, with a warning for the other core children that are not placed in the track. For example, this would happen for a UriClip that points to a file that contains multiple audio streams. If you wish to choose the stream, you could connect to this signal, and use, say, UriSourceAssetExt::stream_info() to choose which core source to add.

When a clip is first added to a timeline, its core elements will be created for the current tracks in the timeline if they have not already been created. Then this will be emitted for each of these core children to select which tracks, if any, they should be added to. It will then be called for any non-core children in the clip.

In addition, if a new track element is ever added to a clip in a timeline (and it is not already part of a track) this will be emitted to select which tracks the element should be added to.

Finally, as a special case, if a track is added to the timeline after it already contains clips, then it will request the creation of the clips’ core elements of the corresponding type, if they have not already been created, and this signal will be emitted for each of these newly created elements. In addition, this will also be released for all other track elements in the timeline’s clips that have not yet been assigned a track. However, in this final case, the timeline will only check whether the newly added track appears in the track list. If it does appear, the track element will be added to the newly added track. All other tracks in the returned track list are ignored.

In this latter case, track elements that are already part of a track will not be asked if they want to be copied into the new track. If you wish to do this, you can use ClipExt::add_child_to_track().

Note that the returned GPtrArray should own a new reference to each of its contained Track. The timeline will set the GDestroyNotify free function on the GPtrArray to dereference the elements.

§snapping-ended

Will be emitted whenever a snapping event ends. After a snap event has started (see snapping-started), it can later end because either another timeline edit has occurred (which may or may not have created a new snapping event), or because the timeline has been committed.

§snapping-started

Will be emitted whenever an element’s movement invokes a snapping event during an edit (usually of one of its ancestors) because its start or end point lies within the snapping-distance of another element’s start or end point.

See EditMode to see what can snap during an edit.

Note that only up to one snapping-started signal will be emitted per element edit within a timeline.

§track-added

Will be emitted after the track is added to the timeline.

Note that this should not be emitted whilst a timeline is being loaded from its Project asset. You should connect to the project’s loaded signal if you want to know which tracks were created for the timeline.

§track-removed

Will be emitted after the track is removed from the timeline.

Bin

§deep-element-added

Will be emitted after the element was added to sub_bin.

§deep-element-removed

Will be emitted after the element was removed from sub_bin.

§do-latency

Will be emitted when the bin needs to perform latency calculations. This signal is only emitted for toplevel bins or when async-handling is enabled.

Only one signal handler is invoked. If no signals are connected, the default handler is invoked, which will query and distribute the lowest possible latency to all sinks.

Connect to this signal if the default latency calculations are not sufficient, like when you need different latencies for different sinks in the same pipeline.

§element-added

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

§element-removed

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

Element

§no-more-pads

This signals that the element will not generate more dynamic pads. Note that this signal will usually be emitted from the context of the streaming thread.

§pad-added

a new gst::Pad has been added to the element. Note that this signal will usually be emitted from the context of the streaming thread. Also keep in mind that if you add new elements to the pipeline in the signal handler you will need to set them to the desired target state with [ElementExtManual::set_state()][crate::gst::prelude::ElementExtManual::set_state()] or [ElementExtManual::sync_state_with_parent()][crate::gst::prelude::ElementExtManual::sync_state_with_parent()].

§pad-removed

a gst::Pad has been removed from the element

Object

§deep-notify

The deep notify signal is used to be notified of property changes. It is typically attached to the toplevel bin to receive notifications from all the elements contained in that bin.

Detailed

ChildProxy

§child-added

Will be emitted after the object was added to the child_proxy.

§child-removed

Will be emitted after the object was removed from the child_proxy.

MetaContainer

§notify-meta

This is emitted for a meta container whenever the metadata under one of its fields changes, is set for the first time, or is removed. In the latter case, value will be None.

Detailed

§Implements

TimelineExt, [trait@gst::prelude::BinExt], gst::prelude::ElementExt, gst::prelude::GstObjectExt, [trait@glib::ObjectExt], gst::prelude::ChildProxyExt, ExtractableExt, MetaContainerExt

Implementations§

source§

impl Timeline

source

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

source

pub fn new() -> Timeline

Creates a new empty timeline.

§Returns

The new timeline.

source

pub fn new_audio_video() -> Timeline

Creates a new timeline containing a single AudioTrack and a single VideoTrack.

§Returns

The new timeline.

source

pub fn from_uri(uri: &str) -> Result<Timeline, Error>

Creates a timeline from the given URI.

§uri

The URI to load from

§Returns

A new timeline if the uri was loaded successfully, or None if the uri could not be loaded.

Trait Implementations§

source§

impl Clone for Timeline

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for Timeline

source§

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

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

impl Default for Timeline

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl HasParamSpec for Timeline

§

type ParamSpec = ParamSpecObject

§

type SetValue = Timeline

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

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

source§

fn param_spec_builder() -> Self::BuilderFn

source§

impl Hash for Timeline

source§

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

Feeds this value into the given Hasher. Read more
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 Ord for Timeline

source§

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

This method returns an Ordering between self and other. Read more
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 Timeline

§

type Parent = Bin

source§

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

source§

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

This method tests for self and other values to be equal, and is used by ==.
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 Timeline

source§

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

This method returns an ordering between self and other values if one exists. Read more
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 Timeline

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl Eq for Timeline

source§

impl IsA<Bin> for Timeline

source§

impl IsA<ChildProxy> for Timeline

source§

impl IsA<Element> for Timeline

source§

impl IsA<Extractable> for Timeline

source§

impl IsA<MetaContainer> for Timeline

source§

impl IsA<Object> for Timeline

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<O> ChildProxyExt for O
where O: IsA<ChildProxy>,

source§

fn child_added(&self, child: &impl IsA<Object>, name: &str)

Emits the child-added signal. Read more
source§

fn child_removed(&self, child: &impl IsA<Object>, name: &str)

Emits the child-removed signal. Read more
source§

fn child_by_index(&self, index: u32) -> Option<Object>

Fetches a child by its number. Read more
source§

fn child_by_name(&self, name: &str) -> Option<Object>

Looks up a child element by the given name. Read more
source§

fn child_by_name_recurse(&self, name: &str) -> Option<Object>

Looks up a child element by the given full-path name. Read more
source§

fn children_count(&self) -> u32

Gets the number of child objects this parent contains. Read more
source§

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

Will be emitted after the object was added to the child_proxy. Read more
source§

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

Will be emitted after the object was removed from the child_proxy. Read more
source§

impl<O> ChildProxyExtManual for O
where O: IsA<ChildProxy>,

source§

fn lookup(&self, name: &str) -> Result<(Object, ParamSpec), BoolError>

Looks up which object and GParamSpec would be effected by the given name. Read more
source§

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

Gets a single property using the GstChildProxy mechanism. You are responsible for freeing it by calling [glib::Value::unset()][crate::glib::Value::unset()] Read more
source§

fn child_property_value(&self, name: &str) -> Value

source§

fn set_child_property(&self, name: &str, value: impl Into<Value>)

Sets a single property using the GstChildProxy mechanism. Read more
source§

fn set_child_property_from_value(&self, name: &str, value: &Value)

source§

impl<O> ElementExt for O
where O: IsA<Element>,

source§

fn abort_state(&self)

Abort the state change of the element. This function is used by elements that do asynchronous state changes and find out something is wrong. Read more
source§

fn add_pad(&self, pad: &impl IsA<Pad>) -> Result<(), BoolError>

Adds a pad (link point) to self. pad’s parent will be set to self; see GstObjectExt::set_parent() for refcounting information. Read more
source§

fn change_state( &self, transition: StateChange ) -> Result<StateChangeSuccess, StateChangeError>

Perform transition on self. Read more
source§

fn continue_state( &self, ret: impl Into<StateChangeReturn> ) -> Result<StateChangeSuccess, StateChangeError>

Commit the state change of the element and proceed to the next pending state if any. This function is used by elements that do asynchronous state changes. The core will normally call this method automatically when an element returned StateChangeReturn::Success from the state change function. Read more
source§

fn create_all_pads(&self)

Creates a pad for each pad template that is always available. This function is only useful during object initialization of subclasses of Element.
source§

fn decorate_stream_id(&self, stream_id: &str) -> GString

Creates a stream-id for self by combining the upstream information with the stream_id. Read more
source§

fn foreach_pad<P>(&self, func: P) -> bool
where P: FnMut(&Element, &Pad) -> bool,

Call func with user_data for each of self’s pads. func will be called exactly once for each pad that exists at the time of this call, unless one of the calls to func returns false in which case we will stop iterating pads and return early. If new pads are added or pads are removed while pads are being iterated, this will not be taken into account until next time this function is used. Read more
source§

fn foreach_sink_pad<P>(&self, func: P) -> bool
where P: FnMut(&Element, &Pad) -> bool,

Call func with user_data for each of self’s sink pads. func will be called exactly once for each sink pad that exists at the time of this call, unless one of the calls to func returns false in which case we will stop iterating pads and return early. If new sink pads are added or sink pads are removed while the sink pads are being iterated, this will not be taken into account until next time this function is used. Read more
source§

fn foreach_src_pad<P>(&self, func: P) -> bool
where P: FnMut(&Element, &Pad) -> bool,

Call func with user_data for each of self’s source pads. func will be called exactly once for each source pad that exists at the time of this call, unless one of the calls to func returns false in which case we will stop iterating pads and return early. If new source pads are added or source pads are removed while the source pads are being iterated, this will not be taken into account until next time this function is used. Read more
source§

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

Returns the base time of the element. The base time is the absolute time of the clock when this element was last put to PLAYING. Subtracting the base time from the clock time gives the running time of the element. Read more
source§

fn bus(&self) -> Option<Bus>

Returns the bus of the element. Note that only a Pipeline will provide a bus for the application. Read more
source§

fn clock(&self) -> Option<Clock>

Gets the currently configured clock of the element. This is the clock as was last set with set_clock(). Read more
source§

fn compatible_pad( &self, pad: &impl IsA<Pad>, caps: Option<&Caps> ) -> Option<Pad>

Looks for an unlinked pad to which the given pad can link. It is not guaranteed that linking the pads will work, though it should work in most cases. Read more
source§

fn compatible_pad_template( &self, compattempl: &PadTemplate ) -> Option<PadTemplate>

Retrieves a pad template from self that is compatible with compattempl. Pads from compatible templates can be linked together. Read more
source§

fn context(&self, context_type: &str) -> Option<Context>

Gets the context with context_type set on the element or NULL. Read more
source§

fn contexts(&self) -> Vec<Context>

Gets the contexts set on the element. Read more
source§

fn factory(&self) -> Option<ElementFactory>

Retrieves the factory that was used to create this element. Read more
source§

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

Returns the start time of the element. The start time is the running time of the clock when this element was last put to PAUSED. Read more
source§

fn state( &self, timeout: impl Into<Option<ClockTime>> ) -> (Result<StateChangeSuccess, StateChangeError>, State, State)

Gets the state of the element. Read more
source§

fn static_pad(&self, name: &str) -> Option<Pad>

Retrieves a pad from self by name. This version only retrieves already-existing (i.e. ‘static’) pads. Read more
source§

fn is_locked_state(&self) -> bool

Checks if the state of an element is locked. If the state of an element is locked, state changes of the parent don’t affect the element. This way you can leave currently unused elements inside bins. Just lock their state before changing the state from State::Null. Read more
source§

fn lost_state(&self)

Brings the element to the lost state. The current state of the element is copied to the pending state so that any call to state() will return StateChangeReturn::Async. Read more
source§

fn no_more_pads(&self)

Use this function to signal that the element does not expect any more pads to show up in the current pipeline. This function should be called whenever pads have been added by the element itself. Elements with PadPresence::Sometimes pad templates use this in combination with autopluggers to figure out that the element is done initializing its pads. Read more
source§

fn post_message(&self, message: Message) -> Result<(), BoolError>

Post a message on the element’s Bus. This function takes ownership of the message; if you want to access the message after this call, you should add an additional reference before calling. Read more
source§

fn provide_clock(&self) -> Option<Clock>

Get the clock provided by the given element. Read more
source§

fn release_request_pad(&self, pad: &impl IsA<Pad>)

Makes the element free the previously requested pad as obtained with request_pad(). Read more
source§

fn remove_pad(&self, pad: &impl IsA<Pad>) -> Result<(), BoolError>

Removes pad from self. pad will be destroyed if it has not been referenced elsewhere using GstObjectExt::unparent(). Read more
source§

fn request_pad( &self, templ: &PadTemplate, name: Option<&str>, caps: Option<&Caps> ) -> Option<Pad>

Retrieves a request pad from the element according to the provided template. Pad templates can be looked up using ElementFactory::static_pad_templates(). Read more
source§

fn set_base_time(&self, time: ClockTime)

Set the base time of an element. See base_time(). Read more
source§

fn set_bus(&self, bus: Option<&Bus>)

Sets the bus of the element. Increases the refcount on the bus. For internal use only, unless you’re testing elements. Read more
source§

fn set_clock(&self, clock: Option<&impl IsA<Clock>>) -> Result<(), BoolError>

Sets the clock for the element. This function increases the refcount on the clock. Any previously set clock on the object is unreffed. Read more
source§

fn set_context(&self, context: &Context)

Sets the context of the element. Increases the refcount of the context. Read more
source§

fn set_locked_state(&self, locked_state: bool) -> bool

Locks the state of an element, so state changes of the parent don’t affect this element anymore. Read more
source§

fn set_start_time(&self, time: impl Into<Option<ClockTime>>)

Set the start time of an element. The start time of the element is the running time of the element when it last went to the PAUSED state. In READY or after a flushing seek, it is set to 0. Read more
source§

fn set_state( &self, state: State ) -> Result<StateChangeSuccess, StateChangeError>

Sets the state of the element. This function will try to set the requested state by going through all the intermediary states and calling the class’s state change function for each. Read more
source§

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

Tries to change the state of the element to the same as its parent. If this function returns false, the state of element is undefined. Read more
Unlinks all source pads of the source element with all sink pads of the sink element to which they are linked. Read more
Unlinks the two named pads of the source and destination elements. Read more
source§

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

This signals that the element will not generate more dynamic pads. Note that this signal will usually be emitted from the context of the streaming thread.
source§

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

a new Pad has been added to the element. Note that this signal will usually be emitted from the context of the streaming thread. Also keep in mind that if you add new elements to the pipeline in the signal handler you will need to set them to the desired target state with set_state() or sync_state_with_parent(). Read more
source§

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

a Pad has been removed from the element Read more
source§

impl<O> ElementExtManual for O
where O: IsA<Element>,

source§

fn element_class(&self) -> &Class<Element>

source§

fn current_state(&self) -> State

source§

fn pending_state(&self) -> State

source§

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

Performs a query on the given element. Read more
source§

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

Sends an event to an element. If the element doesn’t implement an event handler, the event will be pushed on a random linked sink pad for downstream events or a random linked source pad for upstream events. Read more
source§

fn metadata<'a>(&self, key: &str) -> Option<&'a str>

Get metadata with key in klass. Read more
source§

fn pad_template(&self, name: &str) -> Option<PadTemplate>

Retrieves a padtemplate from self with the given name. Read more
source§

fn pad_template_list(&self) -> List<PadTemplate>

Retrieves a list of the pad templates associated with self. The list must not be modified by the calling code. Read more
source§

fn message_full<T>( &self, type_: ElementMessageType, code: T, message: Option<&str>, debug: Option<&str>, file: &str, function: &str, line: u32 )

Post an error, warning or info message on the bus from inside an element. Read more
source§

fn set_element_flags(&self, flags: ElementFlags)

source§

fn unset_element_flags(&self, flags: ElementFlags)

source§

fn element_flags(&self) -> ElementFlags

source§

fn message_full_with_details<T>( &self, type_: ElementMessageType, code: T, message: Option<&str>, debug: Option<&str>, file: &str, function: &str, line: u32, structure: Structure )

Post an error, warning or info message on the bus from inside an element. Read more
source§

fn post_error_message(&self, msg: ErrorMessage)

source§

fn iterate_pads(&self) -> Iterator<Pad>

Retrieves an iterator of self’s pads. The iterator should be freed after usage. Also more specialized iterators exists such as iterate_src_pads() or iterate_sink_pads(). Read more
source§

fn iterate_sink_pads(&self) -> Iterator<Pad>

Retrieves an iterator of self’s sink pads. Read more
source§

fn iterate_src_pads(&self) -> Iterator<Pad>

Retrieves an iterator of self’s source pads. Read more
source§

fn pads(&self) -> Vec<Pad>

source§

fn sink_pads(&self) -> Vec<Pad>

source§

fn src_pads(&self) -> Vec<Pad>

source§

fn num_pads(&self) -> u16

source§

fn num_sink_pads(&self) -> u16

source§

fn num_src_pads(&self) -> u16

source§

fn add_property_deep_notify_watch( &self, property_name: Option<&str>, include_value: bool ) -> NotifyWatchId

property_name Read more
source§

fn add_property_notify_watch( &self, property_name: Option<&str>, include_value: bool ) -> NotifyWatchId

property_name Read more
source§

fn remove_property_notify_watch(&self, watch_id: NotifyWatchId)

watch_id Read more
source§

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

Queries an element 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>(&self) -> Option<T>

Queries an element (usually top-level pipeline or playbin element) for the total stream duration in nanoseconds. This query will only work once the pipeline is prerolled (i.e. reached PAUSED or PLAYING state). The application will receive an ASYNC_DONE message on the pipeline bus when that is the case. Read more
source§

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

source§

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

Queries an element (usually top-level pipeline or playbin element) for the stream position in nanoseconds. This will be a value between 0 and the stream duration (if the stream duration is known). This query will usually only work once the pipeline is prerolled (i.e. reached PAUSED or PLAYING state). The application will receive an ASYNC_DONE message on the pipeline bus when that is the case. Read more
source§

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

source§

fn seek<V>( &self, rate: f64, flags: SeekFlags, start_type: SeekType, start: V, stop_type: SeekType, stop: impl CompatibleFormattedValue<V> ) -> Result<(), BoolError>
where V: FormattedValue,

Sends a seek event to an element. See gst_event_new_seek() for the details of the parameters. The seek event is sent to the element using send_event(). Read more
source§

fn seek_simple( &self, seek_flags: SeekFlags, seek_pos: impl FormattedValue ) -> Result<(), BoolError>

Simple API to perform a seek on the given element, meaning it just seeks to the given position relative to the start of the stream. For more complex operations like segment seeks (e.g. for looping) or changing the playback rate or seeking relative to the last configured playback segment you should use seek(). Read more
source§

fn call_async<F>(&self, func: F)
where F: FnOnce(&Self) + Send + 'static,

Calls func from another thread and passes user_data to it. This is to be used for cases when a state change has to be performed from a streaming thread, directly via ElementExt::set_state() or indirectly e.g. via SEEK events. Read more
source§

fn call_async_future<F, T>( &self, func: F ) -> Pin<Box<dyn Future<Output = T> + Send>>
where F: FnOnce(&Self) -> T + Send + 'static, T: Send + 'static,

source§

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

Returns the running time of the element. The running time is the element’s clock time minus its base time. Will return GST_CLOCK_TIME_NONE if the element has no clock, or if its base time has not been set. Read more
source§

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

Returns the current clock time of the element, as in, the time of the element’s clock, or GST_CLOCK_TIME_NONE if there is no clock. Read more
source§

fn request_pad_simple(&self, name: &str) -> Option<Pad>

The name of this function is confusing to people learning GStreamer. request_pad_simple() aims at making it more explicit it is a simplified ElementExt::request_pad(). Read more
Links self to dest. The link must be from source to destination; the other direction will not be tried. The function looks for existing pads that aren’t linked yet. It will request new pads if necessary. Such pads need to be released manually when unlinking. If multiple links are possible, only one is established. Read more
Links self to dest using the given caps as filtercaps. The link must be from source to destination; the other direction will not be tried. The function looks for existing pads that aren’t linked yet. It will request new pads if necessary. If multiple links are possible, only one is established. Read more
Links the two named pads of the source and destination elements. Side effect is that if one of the pads has no parent, it becomes a child of the parent of the other element. If they have different parents, the link fails. Read more
Links the two named pads of the source and destination elements. Side effect is that if one of the pads has no parent, it becomes a child of the parent of the other element. If they have different parents, the link fails. If caps is not None, makes sure that the caps of the link is a subset of caps. Read more
Links the two named pads of the source and destination elements. Side effect is that if one of the pads has no parent, it becomes a child of the parent of the other element. If they have different parents, the link fails. Read more
source§

impl<O> ExtractableExt for O
where O: IsA<Extractable>,

source§

fn asset(&self) -> Option<Asset>

Get the asset that has been set on the extractable object. Read more
source§

fn id(&self) -> GString

Gets the id of some associated asset. It may be the case that the object has no set asset, or even that such an asset does not yet exist in the GES cache. Instead, this will return the asset id that is compatible with the current state of the object, as determined by the Extractable implementer. If it was indeed extracted from an asset, this should return the same as its corresponding asset id. Read more
source§

fn set_asset(&self, asset: &impl IsA<Asset>) -> Result<(), BoolError>

Sets the asset for this extractable object. 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> GstBinExt for O
where O: IsA<Bin>,

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. Read more
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. Read more
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. Read more
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. Read more
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. Read more
source§

fn suppressed_flags(&self) -> ElementFlags

Returns Read more
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. Read more
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. Read more
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. Read more
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(). Read more
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. Read more
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. Read more
source§

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

Will be emitted after the element was added to sub_bin. Read more
source§

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

Will be emitted after the element was removed from sub_bin. Read more
source§

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

Will be emitted after the element was added to the bin. Read more
source§

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

Will be emitted after the element was removed from the bin. Read more
source§

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

source§

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

source§

impl<O> GstBinExtManual for O
where O: IsA<Bin>,

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>(&self, f: F) -> SignalHandlerId
where F: Fn(&Self) + Send + Sync + 'static,

source§

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

source§

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

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<U> IsSubclassableExt for U

source§

impl<O> MetaContainerExt for O
where O: IsA<MetaContainer>,

source§

fn add_metas_from_string(&self, str: &str) -> bool

Deserializes the given string, and adds and sets the found fields and their values on the container. The string should be the return of metas_to_string(). Read more
source§

fn check_meta_registered(&self, meta_item: &str) -> Option<(MetaFlag, Type)>

Checks whether the specified field has been registered as static, and gets the registered type and flags of the field, as used in register_meta() and register_static_meta(). Read more
source§

fn foreach<P: FnMut(&MetaContainer, &str, &Value)>(&self, func: P)

Calls the given function on each of the meta container’s set metadata fields. Read more
source§

fn boolean(&self, meta_item: &str) -> Option<bool>

Gets the current boolean value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn date(&self, meta_item: &str) -> Option<Date>

Gets the current date value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn date_time(&self, meta_item: &str) -> Option<DateTime>

Gets the current date time value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn double(&self, meta_item: &str) -> Option<f64>

Gets the current double value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn float(&self, meta_item: &str) -> Option<f32>

Gets the current float value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn int(&self, meta_item: &str) -> Option<i32>

Gets the current int value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn int64(&self, meta_item: &str) -> Option<i64>

Gets the current int64 value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn marker_list(&self, key: &str) -> Option<MarkerList>

Gets the current marker list value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn meta(&self, key: &str) -> Option<Value>

Gets the current value of the specified field of the meta container. Read more
source§

fn string(&self, meta_item: &str) -> Option<GString>

Gets the current string value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn uint(&self, meta_item: &str) -> Option<u32>

Gets the current uint value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn uint64(&self, meta_item: &str) -> Option<u64>

Gets the current uint64 value of the specified field of the meta container. If the field does not have a set value, or it is of the wrong type, the method will fail. Read more
source§

fn metas_to_string(&self) -> GString

Serializes the set metadata fields of the meta container to a string. Read more
source§

fn register_meta(&self, flags: MetaFlag, meta_item: &str, value: &Value) -> bool

Sets the value of the specified field of the meta container to the given value, and registers the field to only hold a value of the same type. After calling this, only values of the same type as value can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_boolean( &self, flags: MetaFlag, meta_item: &str, value: bool ) -> bool

Sets the value of the specified field of the meta container to the given boolean value, and registers the field to only hold a boolean typed value. After calling this, only boolean values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_date( &self, flags: MetaFlag, meta_item: &str, value: &Date ) -> bool

Sets the value of the specified field of the meta container to the given date value, and registers the field to only hold a date typed value. After calling this, only date values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_date_time( &self, flags: MetaFlag, meta_item: &str, value: &DateTime ) -> bool

Sets the value of the specified field of the meta container to the given date time value, and registers the field to only hold a date time typed value. After calling this, only date time values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_double( &self, flags: MetaFlag, meta_item: &str, value: f64 ) -> bool

Sets the value of the specified field of the meta container to the given double value, and registers the field to only hold a double typed value. After calling this, only double values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_float( &self, flags: MetaFlag, meta_item: &str, value: f32 ) -> bool

Sets the value of the specified field of the meta container to the given float value, and registers the field to only hold a float typed value. After calling this, only float values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_int( &self, flags: MetaFlag, meta_item: &str, value: i32 ) -> bool

Sets the value of the specified field of the meta container to the given int value, and registers the field to only hold an int typed value. After calling this, only int values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_int64( &self, flags: MetaFlag, meta_item: &str, value: i64 ) -> bool

Sets the value of the specified field of the meta container to the given int64 value, and registers the field to only hold an int64 typed value. After calling this, only int64 values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_string( &self, flags: MetaFlag, meta_item: &str, value: &str ) -> bool

Sets the value of the specified field of the meta container to the given string value, and registers the field to only hold a string typed value. After calling this, only string values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_uint( &self, flags: MetaFlag, meta_item: &str, value: u32 ) -> bool

Sets the value of the specified field of the meta container to the given uint value, and registers the field to only hold a uint typed value. After calling this, only uint values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_meta_uint64( &self, flags: MetaFlag, meta_item: &str, value: u64 ) -> bool

Sets the value of the specified field of the meta container to the given uint64 value, and registers the field to only hold a uint64 typed value. After calling this, only uint64 values can be set for this field. The given flags can be set to make this field only readable after calling this method. Read more
source§

fn register_static_meta( &self, flags: MetaFlag, meta_item: &str, type_: Type ) -> bool

Registers a static metadata field on the container to only hold the specified type. After calling this, setting a value under this field can only succeed if its type matches the registered type of the field. Read more
source§

fn set_boolean(&self, meta_item: &str, value: bool) -> bool

Sets the value of the specified field of the meta container to the given boolean value. Read more
source§

fn set_date(&self, meta_item: &str, value: &Date) -> bool

Sets the value of the specified field of the meta container to the given date value. Read more
source§

fn set_date_time(&self, meta_item: &str, value: &DateTime) -> bool

Sets the value of the specified field of the meta container to the given date time value. Read more
source§

fn set_double(&self, meta_item: &str, value: f64) -> bool

Sets the value of the specified field of the meta container to the given double value. Read more
source§

fn set_float(&self, meta_item: &str, value: f32) -> bool

Sets the value of the specified field of the meta container to the given float value. Read more
source§

fn set_int(&self, meta_item: &str, value: i32) -> bool

Sets the value of the specified field of the meta container to the given int value. Read more
source§

fn set_int64(&self, meta_item: &str, value: i64) -> bool

Sets the value of the specified field of the meta container to the given int64 value. Read more
source§

fn set_marker_list(&self, meta_item: &str, list: &MarkerList) -> bool

Sets the value of the specified field of the meta container to the given marker list value. Read more
source§

fn set_meta(&self, meta_item: &str, value: Option<&Value>) -> bool

Sets the value of the specified field of the meta container to a copy of the given value. If the given value is None, the field given by meta_item is removed and true is returned. Read more
source§

fn set_string(&self, meta_item: &str, value: &str) -> bool

Sets the value of the specified field of the meta container to the given string value. Read more
source§

fn set_uint(&self, meta_item: &str, value: u32) -> bool

Sets the value of the specified field of the meta container to the given uint value. Read more
source§

fn set_uint64(&self, meta_item: &str, value: u64) -> bool

Sets the value of the specified field of the meta container to the given uint64 value. Read more
source§

fn connect_notify_meta<F: Fn(&Self, &str, Option<&Value>) + 'static>( &self, detail: Option<&str>, f: F ) -> SignalHandlerId

This is emitted for a meta container whenever the metadata under one of its fields changes, is set for the first time, or is removed. In the latter case, value will be None. Read more
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<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<T> StaticTypeExt for T
where T: StaticType,

source§

fn ensure_type()

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

impl<O> TimelineExt for O
where O: IsA<Timeline>,

source§

fn add_layer(&self, layer: &impl IsA<Layer>) -> Result<(), BoolError>

👎Deprecated: Since 1.18
Add a layer to the timeline. Read more
source§

fn add_track(&self, track: &impl IsA<Track>) -> Result<(), BoolError>

Add a track to the timeline. Read more
source§

fn append_layer(&self) -> Layer

Append a newly created layer to the timeline. The layer will be added at the lowest priority (numerically, the highest). Read more
source§

fn commit(&self) -> bool

Commit all the pending changes of the clips contained in the timeline. Read more
source§

fn commit_sync(&self) -> bool

Commit all the pending changes of the clips contained in the timeline and wait for the changes to complete. Read more
source§

fn disable_edit_apis(&self, disable_edit_apis: bool)

WARNING: When using that mode, GES won’t guarantee the coherence of the timeline. You need to ensure that the rules described in the Overlaps and auto transitions section are respected any time the timeline is commited (otherwise playback will most probably fail in different ways). Read more
source§

fn freeze_commit(&self)

Freezes the timeline from being committed. This is usually needed while the timeline is being rendered to ensure that not change to the timeline are taken into account during that moment. Once the rendering is done, you should call ges_timeline_thaw_commit so that committing becomes possible again and any call to commit() that happened during the rendering is actually taken into account.
source§

fn is_auto_transition(&self) -> bool

Gets auto-transition for the timeline. Read more
source§

fn duration(&self) -> ClockTime

Get the current duration of the timeline Read more
source§

fn is_edit_apis_disabled(&self) -> bool

Returns Read more
source§

fn element(&self, name: &str) -> Option<TimelineElement>

Gets the element contained in the timeline with the given name. Read more
source§

fn frame_at(&self, timestamp: ClockTime) -> FrameNumber

This method allows you to convert a timeline GstClockTime into its corresponding GESFrameNumber in the timeline’s output. Read more
source§

fn frame_time(&self, frame_number: FrameNumber) -> Option<ClockTime>

This method allows you to convert a timeline output frame number into a timeline GstClockTime. For example, this time could be used to seek to a particular frame in the timeline’s output, or as the edit position for an element within the timeline. Read more
source§

fn groups(&self) -> Vec<Group>

Get the list of Group-s present in the timeline. Read more
source§

fn layer(&self, priority: u32) -> Option<Layer>

Retrieve the layer whose index in the timeline matches the given priority. Read more
source§

fn layers(&self) -> Vec<Layer>

Get the list of Layer-s present in the timeline. Read more
source§

fn pad_for_track(&self, track: &impl IsA<Track>) -> Option<Pad>

Search for the gst::Pad corresponding to the given timeline’s track. You can link to this pad to receive the output data of the given track. Read more
source§

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

Gets the snapping-distance for the timeline. Read more
source§

fn track_for_pad(&self, pad: &impl IsA<Pad>) -> Option<Track>

Search for the Track corresponding to the given timeline’s pad. Read more
source§

fn tracks(&self) -> Vec<Track>

Get the list of Track-s used by the timeline. Read more
source§

fn is_empty(&self) -> bool

Check whether the timeline is empty or not. Read more
source§

fn load_from_uri(&self, uri: &str) -> Result<(), Error>

Loads the contents of URI into the timeline. Read more
source§

fn move_layer( &self, layer: &impl IsA<Layer>, new_layer_priority: u32 ) -> Result<(), BoolError>

Moves a layer within the timeline to the index given by new_layer_priority. An index of 0 corresponds to the layer with the highest priority in a timeline. If new_layer_priority is greater than the number of layers present in the timeline, it will become the lowest priority layer. Read more
source§

fn paste_element( &self, element: &impl IsA<TimelineElement>, position: ClockTime, layer_priority: i32 ) -> Option<TimelineElement>

Paste an element inside the timeline. element must be the return of ges_timeline_element_copy() with deep=TRUE, and it should not be changed before pasting. element itself is not placed in the timeline, instead a new element is created, alike to the originally copied element. Note that the originally copied element must also lie within self, at both the point of copying and pasting. Read more
source§

fn remove_layer(&self, layer: &impl IsA<Layer>) -> Result<(), BoolError>

Removes a layer from the timeline. Read more
source§

fn remove_track(&self, track: &impl IsA<Track>) -> Result<(), BoolError>

Remove a track from the timeline. Read more
source§

fn save_to_uri( &self, uri: &str, formatter_asset: Option<&impl IsA<Asset>>, overwrite: bool ) -> Result<(), Error>

Saves the timeline to the given location. If formatter_asset is None, the method will attempt to save in the same format the timeline was loaded from, before defaulting to the formatter with highest rank. Read more
source§

fn set_auto_transition(&self, auto_transition: bool)

Sets auto-transition for the timeline. This will also set the corresponding auto-transition for all of the timeline’s layers to the same value. See LayerExt::set_auto_transition() if you wish to set the layer’s auto-transition individually. Read more
source§

fn set_snapping_distance(&self, snapping_distance: ClockTime)

Sets snapping-distance for the timeline. This new value will only effect future snappings and will not be used to snap the current element positions within the timeline. Read more
source§

fn thaw_commit(&self)

Thaw the timeline so that comiting becomes possible again and any call to commit() that happened during the rendering is actually taken into account.
source§

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

This signal will be emitted once the changes initiated by commit() have been executed in the backend. Use commit_sync() if you do not want to have to connect to this signal.
source§

fn connect_group_added<F: Fn(&Self, &Group) + 'static>( &self, f: F ) -> SignalHandlerId

Will be emitted after the group is added to to the timeline. This can happen when grouping with ges_container_group, or by adding containers to a newly created group. Read more
source§

fn connect_layer_added<F: Fn(&Self, &Layer) + 'static>( &self, f: F ) -> SignalHandlerId

Will be emitted after the layer is added to the timeline. Read more
source§

fn connect_layer_removed<F: Fn(&Self, &Layer) + 'static>( &self, f: F ) -> SignalHandlerId

Will be emitted after the layer is removed from the timeline. Read more
source§

fn connect_select_element_track<F: Fn(&Self, &Clip, &TrackElement) -> Option<Track> + 'static>( &self, f: F ) -> SignalHandlerId

Simplified version of select-tracks-for-object which only allows track_element to be added to a single Track. Read more
source§

fn connect_snapping_ended<F: Fn(&Self, &TrackElement, &TrackElement, u64) + 'static>( &self, f: F ) -> SignalHandlerId

Will be emitted whenever a snapping event ends. After a snap event has started (see snapping-started), it can later end because either another timeline edit has occurred (which may or may not have created a new snapping event), or because the timeline has been committed. Read more
source§

fn connect_snapping_started<F: Fn(&Self, &TrackElement, &TrackElement, u64) + 'static>( &self, f: F ) -> SignalHandlerId

Will be emitted whenever an element’s movement invokes a snapping event during an edit (usually of one of its ancestors) because its start or end point lies within the snapping-distance of another element’s start or end point. Read more
source§

fn connect_track_added<F: Fn(&Self, &Track) + 'static>( &self, f: F ) -> SignalHandlerId

Will be emitted after the track is added to the timeline. Read more
source§

fn connect_track_removed<F: Fn(&Self, &Track) + 'static>( &self, f: F ) -> SignalHandlerId

Will be emitted after the track is removed from the timeline. Read more
source§

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

source§

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

source§

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

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> 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>,