Struct gstreamer_editing_services::TimelineElement [−][src]
pub struct TimelineElement(_);
A crate::TimelineElement will have some temporal extent in its
corresponding [crate::TimelineElement:timeline], controlled by its
[crate::TimelineElement:start] and [crate::TimelineElement:duration]. This
determines when its content will be displayed, or its effect applied,
in the timeline. Several objects may overlap within a given
crate::Timeline, in which case their [crate::TimelineElement:priority] is used
to determine their ordering in the timeline. Priority is mostly handled
internally by crate::Layer-s and crate::Clip-s.
A timeline element can have a [crate::TimelineElement:parent],
such as a crate::Clip, which is responsible for controlling its timing.
Editing
Elements can be moved around in their [crate::TimelineElement:timeline] by
setting their [crate::TimelineElement:start] and
[crate::TimelineElement:duration] using crate::prelude::TimelineElementExt::set_start()
and crate::prelude::TimelineElementExt::set_duration(). Additionally, which parts of
the underlying content are played in the timeline can be adjusted by
setting the [crate::TimelineElement:in-point] using
crate::prelude::TimelineElementExt::set_inpoint(). The library also provides
crate::prelude::TimelineElementExt::edit(), with various crate::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
crate::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
[crate::TimelineElement:start], or having insufficient internal
content to last for the desired [crate::TimelineElement:duration]).
Time Coordinates
There are three main sets of time coordinates to consider when using timeline elements:
- Timeline coordinates: these are the time coordinates used in the
output of the timeline in its
crate::Track-s. Each track share the same coordinates, so there is only one set of coordinates for the timeline. These extend indefinitely from 0. The times used for editing (including setting [crate::TimelineElement:start] and [crate::TimelineElement:duration]) use these coordinates, since these define when an element is present and for how long the element lasts for in the timeline. - Internal source coordinates: these are the time coordinates used
internally at the element’s output. This is only really defined for
crate::TrackElement-s, where it refers to time coordinates used at the final source pad of the wrappedcrate::gst::Element-s. However, these coordinates may also be used in acrate::Clipin reference to its children. In particular, these are the coordinates used for [crate::TimelineElement:in-point] and [crate::TimelineElement:max-duration]. - Internal sink coordinates: these are the time coordinates used
internally at the element’s input. A [
crate::Source] has no input, so these would be undefined. Otherwise, for mostcrate::TrackElement-s these will be the same set of coordinates as the internal source coordinates because the element does not change the timing internally. Onlycrate::BaseEffectcan support elements where these are different. Seecrate::BaseEffectfor more information.
You can determine the timeline time for a given internal source time
in a crate::Track in a crate::Clip using
[crate::prelude::ClipExt::get_timeline_time_from_internal_time()], and vice versa using
[crate::prelude::ClipExt::get_internal_time_from_timeline_time()], for the purposes of
editing and setting timings properties.
Children Properties
If a timeline element owns another crate::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
[crate::prelude::TimelineElementExt::add_child_property()]. The registered property of
the child can then be read and set using the
[crate::prelude::TimelineElementExt::get_child_property()] and
[crate::prelude::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 crate::gst::Element
that is used internally. The registered properties can be listed with
[crate::prelude::TimelineElementExt::list_children_properties()].
This is an Abstract Base Class, you cannot instantiate it.
Implements
crate::prelude::TimelineElementExt, glib::object::ObjectExt, crate::prelude::ExtractableExt, crate::prelude::TimelineElementExtManual
Trait Implementations
impl Clone for TimelineElement[src]
impl Clone for TimelineElement[src]fn clone(&self) -> TimelineElement[src]
fn clone(&self) -> TimelineElement[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]Performs copy-assignment from source. Read more
impl Debug for TimelineElement[src]
impl Debug for TimelineElement[src]impl Hash for TimelineElement[src]
impl Hash for TimelineElement[src]impl Ord for TimelineElement[src]
impl Ord for TimelineElement[src]impl ParentClassIs for TimelineElement[src]
impl ParentClassIs for TimelineElement[src]impl<T: ObjectType> PartialEq<T> for TimelineElement[src]
impl<T: ObjectType> PartialEq<T> for TimelineElement[src]impl<T: ObjectType> PartialOrd<T> for TimelineElement[src]
impl<T: ObjectType> PartialOrd<T> for TimelineElement[src]fn partial_cmp(&self, other: &T) -> Option<Ordering>[src]
fn partial_cmp(&self, other: &T) -> Option<Ordering>[src]This method returns an ordering between self and other values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl StaticType for TimelineElement[src]
impl StaticType for TimelineElement[src]fn static_type() -> Type[src]
fn static_type() -> Type[src]Returns the type identifier of Self.
impl Eq 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 StructuralEq 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> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> Cast for T where
T: ObjectType, [src]
impl<T> Cast for T where
T: ObjectType, [src]fn upcast<T>(self) -> T where
Self: IsA<T>,
T: ObjectType, [src]
fn upcast<T>(self) -> T where
Self: IsA<T>,
T: ObjectType, [src]Upcasts an object to a superclass or interface T. Read more
fn upcast_ref<T>(&self) -> &T where
Self: IsA<T>,
T: ObjectType, [src]
fn upcast_ref<T>(&self) -> &T where
Self: IsA<T>,
T: ObjectType, [src]Upcasts an object to a reference of its superclass or interface T. Read more
fn downcast<T>(self) -> Result<T, Self> where
Self: CanDowncast<T>,
T: ObjectType, [src]
fn downcast<T>(self) -> Result<T, Self> where
Self: CanDowncast<T>,
T: ObjectType, [src]Tries to downcast to a subclass or interface implementor T. Read more
fn downcast_ref<T>(&self) -> Option<&T> where
Self: CanDowncast<T>,
T: ObjectType, [src]
fn downcast_ref<T>(&self) -> Option<&T> where
Self: CanDowncast<T>,
T: ObjectType, [src]Tries to downcast to a reference of its subclass or interface implementor T. Read more
fn dynamic_cast<T>(self) -> Result<T, Self> where
T: ObjectType, [src]
fn dynamic_cast<T>(self) -> Result<T, Self> where
T: ObjectType, [src]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 downcast and upcast will do many checks at compile-time already. Read more
fn dynamic_cast_ref<T>(&self) -> Option<&T> where
T: ObjectType, [src]
fn dynamic_cast_ref<T>(&self) -> Option<&T> where
T: ObjectType, [src]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
unsafe fn unsafe_cast<T>(self) -> T where
T: ObjectType, [src]
unsafe fn unsafe_cast<T>(self) -> T where
T: ObjectType, [src]Casts to T unconditionally. Read more
unsafe fn unsafe_cast_ref<T>(&self) -> &T where
T: ObjectType, [src]
unsafe fn unsafe_cast_ref<T>(&self) -> &T where
T: ObjectType, [src]Casts to &T unconditionally. Read more
impl<O> GObjectExtManualGst for O where
O: IsA<Object>, [src]
impl<O> GObjectExtManualGst for O where
O: IsA<Object>, [src]pub fn set_property_from_str(&self, name: &str, value: &str)[src]
impl<T> ObjectExt for T where
T: ObjectType, [src]
impl<T> ObjectExt for T where
T: ObjectType, [src]pub fn is<U>(&self) -> bool where
U: StaticType, [src]
pub fn is<U>(&self) -> bool where
U: StaticType, [src]Returns true if the object is an instance of (can be cast to) T.
pub fn type_(&self) -> Type[src]
pub fn object_class(&self) -> &Class<Object>[src]
pub fn class(&self) -> &Class<T> where
T: IsClass, [src]
T: IsClass,
pub fn class_of<U>(&self) -> Option<&Class<U>> where
U: IsClass, [src]
U: IsClass,
pub fn interface<U>(&self) -> Option<InterfaceRef<'_, U>> where
U: IsInterface, [src]
U: IsInterface,
pub fn set_properties(
&self,
property_values: &[(&str, &dyn ToValue)]
) -> Result<(), BoolError>[src]
&self,
property_values: &[(&str, &dyn ToValue)]
) -> Result<(), BoolError>
pub fn set_properties_from_value(
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>[src]
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>
pub fn set_property<'a, N, V>(
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
V: ToValue,
N: Into<&'a str>, [src]
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
V: ToValue,
N: Into<&'a str>,
pub fn set_property_from_value<'a, N>(
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>, [src]
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>,
pub fn property<'a, N>(&self, property_name: N) -> Result<Value, BoolError> where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>> where
QD: 'static, [src]
pub unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>> where
QD: 'static, [src]Safety Read more
pub unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD> where
QD: 'static, [src]
pub unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD> where
QD: 'static, [src]Safety Read more
pub unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>> where
QD: 'static, [src]
pub unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>> where
QD: 'static, [src]Safety Read more
pub unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD> where
QD: 'static, [src]
pub unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD> where
QD: 'static, [src]Safety Read more
pub fn block_signal(&self, handler_id: &SignalHandlerId)[src]
pub fn unblock_signal(&self, handler_id: &SignalHandlerId)[src]
pub fn stop_signal_emission(&self, signal_name: &str)[src]
pub fn disconnect(&self, handler_id: SignalHandlerId)[src]
pub fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec) + Send + Sync, [src]
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
pub fn connect_notify_local<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec), [src]
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec),
pub unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec), [src]
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
pub fn notify<'a, N>(&self, property_name: N) where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub fn notify_by_pspec(&self, pspec: &ParamSpec)[src]
pub fn has_property<'a, N>(&self, property_name: N, type_: Option<Type>) -> bool where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub fn property_type<'a, N>(&self, property_name: N) -> Option<Type> where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
N: Into<&'a str>, [src]
N: Into<&'a str>,
pub fn list_properties(&self) -> Vec<ParamSpec, Global>[src]
pub fn connect<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
N: Into<&'a str>, [src]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
N: Into<&'a str>,
pub fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static, [src]
pub fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static, [src]Same as connect but takes a SignalId instead of a signal name.
pub fn connect_local<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static,
N: Into<&'a str>, [src]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static,
N: Into<&'a str>,
pub fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static, [src]
pub fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static, [src]Same as connect_local but takes a SignalId instead of a signal name.
pub unsafe fn connect_unsafe<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>,
N: Into<&'a str>, [src]
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>,
N: Into<&'a str>,
pub unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>, [src]
pub unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>, [src]Same as connect_unsafe but takes a SignalId instead of a signal name.
pub fn emit(
&self,
signal_id: SignalId,
args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError>[src]
pub fn emit(
&self,
signal_id: SignalId,
args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError>[src]Emit signal by signal id.
pub fn emit_with_details(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError>[src]
pub fn emit_with_details(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError>[src]Emit signal with details by signal id.
pub fn emit_by_name<'a, N>(
&self,
signal_name: N,
args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError> where
N: Into<&'a str>, [src]
pub fn emit_by_name<'a, N>(
&self,
signal_name: N,
args: &[&dyn ToValue]
) -> Result<Option<Value>, BoolError> where
N: Into<&'a str>, [src]Emit signal by it’s name.
pub fn downgrade(&self) -> WeakRef<T>[src]
pub fn bind_property<'a, O, N, M>(
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>, [src]
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>,
pub fn ref_count(&self) -> u32[src]
pub fn emit_with_values(
&self,
signal_id: SignalId,
args: &[Value]
) -> Result<Option<Value>, BoolError>[src]
pub fn emit_with_values(
&self,
signal_id: SignalId,
args: &[Value]
) -> Result<Option<Value>, BoolError>[src]Same as emit but takes Value for the arguments.
impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> ToSendValue for T where
T: Send + ToValue + ?Sized, [src]
impl<T> ToSendValue for T where
T: Send + ToValue + ?Sized, [src]pub fn to_send_value(&self) -> SendValue[src]
pub fn to_send_value(&self) -> SendValue[src]Returns a SendValue clone of self.
impl<Super, Sub> CanDowncast<Sub> for Super where
Sub: IsA<Super>,
Super: IsA<Super>, [src]
Sub: IsA<Super>,
Super: IsA<Super>,
impl<'a, T, C> FromValueOptional<'a> for T where
C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,
T: FromValue<'a, Checker = C>, [src]
C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,
T: FromValue<'a, Checker = C>,