[][src]Struct gstreamer_editing_services::TimelineElement

pub struct TimelineElement(_, _);

A TimelineElement will have some temporal extent in its corresponding TimelineElement:timeline, controlled by its TimelineElement:start and TimelineElement:duration. This determines when its content will be displayed, or its effect applied, in the timeline. Several objects may overlap within a given Timeline, in which case their TimelineElement:priority is used to determine their ordering in the timeline. Priority is mostly handled internally by Layer-s and Clip-s.

A timeline element can have a TimelineElement:parent, such as a Clip, which is responsible for controlling its timing.

Editing

Elements can be moved around in their TimelineElement:timeline by setting their TimelineElement:start and TimelineElement:duration using TimelineElementExt::set_start and TimelineElementExt::set_duration. Additionally, which parts of the underlying content are played in the timeline can be adjusted by setting the TimelineElement:in-point using TimelineElementExt::set_inpoint. The library also provides TimelineElementExt::edit, with various EditMode-s, which can adjust these properties in a convenient way, as well as introduce similar changes in neighbouring or later elements in the timeline.

However, a timeline may refuse a change in these properties if they would place the timeline in an unsupported configuration. See Timeline for its overlap rules.

Additionally, an edit may be refused if it would place one of the timing properties out of bounds (such as a negative time value for TimelineElement:start, or having insufficient internal content to last for the desired TimelineElement:duration).

Time Coordinates

There are three main sets of time coordinates to consider when using timeline elements:

You can determine the timeline time for a given internal source time in a Track in a Clip using ClipExt::get_timeline_time_from_internal_time, and vice versa using ClipExt::get_internal_time_from_timeline_time, for the purposes of editing and setting timings properties.

Children Properties

If a timeline element owns another gst::Object and wishes to expose some of its properties, it can do so by registering the property as one of the timeline element's children properties using TimelineElementExt::add_child_property. The registered property of the child can then be read and set using the TimelineElementExt::get_child_property and TimelineElementExt::set_child_property methods, respectively. Some sub-classed objects will be created with pre-registered children properties; for example, to expose part of an underlying gst::Element that is used internally. The registered properties can be listed with TimelineElementExt::list_children_properties.

Implements

TimelineElementExt, glib::object::ObjectExt, ExtractableExt, TimelineElementExtManual

Trait Implementations

impl Clone for TimelineElement[src]

impl Debug for TimelineElement[src]

impl Eq for TimelineElement[src]

impl Hash for TimelineElement[src]

impl IsA<Extractable> for TimelineElement[src]

impl IsA<TimelineElement> for BaseEffect[src]

impl IsA<TimelineElement> for BaseTransitionClip[src]

impl IsA<TimelineElement> for Clip[src]

impl IsA<TimelineElement> for Container[src]

impl IsA<TimelineElement> for Effect[src]

impl IsA<TimelineElement> for Group[src]

impl IsA<TimelineElement> for OperationClip[src]

impl IsA<TimelineElement> for TrackElement[src]

impl IsA<TimelineElement> for TransitionClip[src]

impl IsA<TimelineElement> for UriClip[src]

impl Ord for TimelineElement[src]

impl<T: ObjectType> PartialEq<T> for TimelineElement[src]

impl<T: ObjectType> PartialOrd<T> for TimelineElement[src]

impl StaticType for TimelineElement[src]

Auto Trait Implementations

impl RefUnwindSafe for TimelineElement

impl !Send for TimelineElement

impl !Sync for TimelineElement

impl Unpin for TimelineElement

impl UnwindSafe for TimelineElement

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<Super, Sub> CanDowncast<Sub> for Super where
    Sub: IsA<Super>,
    Super: IsA<Super>, 
[src]

impl<T> Cast for T where
    T: ObjectType
[src]

impl<T> From<T> for T[src]

impl<O> GObjectExtManualGst for O where
    O: IsA<Object>, 
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ObjectExt for T where
    T: ObjectType
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *const GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *const GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToValue for T where
    T: SetValue + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.