Struct gstreamer_editing_services::TrackElement
source · #[repr(transparent)]pub struct TrackElement { /* private fields */ }
Expand description
A TrackElement
is a TimelineElement
that specifically belongs
to a single Track
of its timeline
. Its
start
and duration
specify its
temporal extent in the track. Specifically, a track element wraps some
nleobject, such as an nlesource
or nleoperation
, which can be
retrieved with TrackElementExt::nleobject()
, and its
start
, duration
,
in-point
, priority
and
active
properties expose the corresponding nleobject
properties. When a track element is added to a track, its nleobject is
added to the corresponding nlecomposition
that the track wraps.
Most users will not have to work directly with track elements since a
Clip
will automatically create track elements for its timeline’s
tracks and take responsibility for updating them. The only track
elements that are not automatically created by clips, but a user is
likely to want to create, are Effect
-s.
Control Bindings for Children Properties
You can set up control bindings for a track element child property
using TrackElementExt::set_control_source()
. A
GstTimedValueControlSource
should specify the timed values using the
internal source coordinates (see TimelineElement
). By default,
these will be updated to lie between the in-point
and out-point of the element. This can be switched off by setting
auto-clamp-control-sources
to false
.
This is an Abstract Base Class, you cannot instantiate it.
Properties
active
Whether the effect of the element should be applied in its
track
. If set to false
, it will not be used in
the output of the track.
Readable | Writeable
auto-clamp-control-sources
Whether the control sources on the element (see
TrackElementExt::set_control_source()
) will be automatically
updated whenever the in-point
or out-point of the
element change in value.
See TrackElementExt::clamp_control_source()
for how this is done
per control source.
Default value: true
Readable | Writeable
has-internal-source
This property is used to determine whether the ‘internal time’
properties of the element have any meaning. In particular, unless
this is set to true
, the in-point
and
max-duration
can not be set to any value other
than the default 0 and GST_CLOCK_TIME_NONE
, respectively.
If an element has some internal timed source gst::Element
that it
reads stream data from as part of its function in a Track
, then
you’ll likely want to set this to true
to allow the
in-point
and max-duration
to
be set.
The default value is determined by the GESTrackElementClass
default_has_internal_source
class property. For most
GESSourceClass
-es, this will be true
, with the exception of those
that have a potentially static source, such as GESImageSourceClass
and GESTitleSourceClass
. Otherwise, this will usually be false
.
For most Operation
-s you will likely want to leave this set to
false
. The exception may be for an operation that reads some stream
data from some private internal source as part of manipulating the
input data from the usual linked upstream TrackElement
.
For example, you may want to set this to true
for a
TrackType::VIDEO
operation that wraps a textoverlay
that reads
from a subtitle file and places its text on top of the received video
data. The in-point
of the element would be used
to shift the initial seek time on the textoverlay
away from 0, and
the max-duration
could be set to reflect the
time at which the subtitle file runs out of data.
Note that GES can not support track elements that have both internal content and manipulate the timing of their data streams (time effects).
Readable | Writeable
track
The track that this element belongs to, or None
if it does not
belong to a track.
Readable
track-type
The track type of the element, which determines the type of track the
element can be added to (see track-type
). This should
correspond to the type of data that the element can produce or
process.
Readable | Writeable | Construct
TimelineElement
duration
The duration that the element is in effect for in the timeline (a time difference in nanoseconds using the time coordinates of the timeline). For example, for a source element, this would determine for how long it should output its internal content for. For an operation element, this would determine for how long its effect should be applied to any source content.
Readable | Writeable
in-point
The initial offset to use internally when outputting content (in nanoseconds, but in the time coordinates of the internal content).
For example, for a VideoUriSource
that references some media
file, the “internal content” is the media file data, and the
in-point would correspond to some timestamp in the media file.
When playing the timeline, and when the element is first reached at
timeline-time start
, it will begin outputting the
data from the timestamp in-point onwards, until it reaches the
end of its duration
in the timeline.
For elements that have no internal content, this should be kept as 0.
Readable | Writeable
max-duration
The full duration of internal content that is available (a time difference in nanoseconds using the time coordinates of the internal content).
This will act as a cap on the in-point
of the
element (which is in the same time coordinates), and will sometimes
be used to limit the duration
of the element in
the timeline.
For example, for a VideoUriSource
that references some media
file, this would be the length of the media file.
For elements that have no internal content, or whose content is
indefinite, this should be kept as GST_CLOCK_TIME_NONE
.
Readable | Writeable | Construct
name
The name of the element. This should be unique within its timeline.
Readable | Writeable | Construct
parent
The parent container of the element.
Readable | Writeable
priority
The priority of the element.
Readable | Writeable
serialize
Whether the element should be serialized.
Readable | Writeable
start
The starting position of the element in the timeline (in nanoseconds and in the time coordinates of the timeline). For example, for a source element, this would determine the time at which it should start outputting its internal content. For an operation element, this would determine the time at which it should start applying its effect to any source content.
Readable | Writeable
timeline
The timeline that the element lies within.
Readable | Writeable
Signals
control-binding-added
This is emitted when a control binding is added to a child property of the track element.
control-binding-removed
This is emitted when a control binding is removed from a child property of the track element.
TimelineElement
child-property-added
Emitted when the element has a new child property registered. See
TimelineElementExt::add_child_property()
.
Note that some GES elements will be automatically created with
pre-registered children properties. You can use
TimelineElementExt::list_children_properties()
to list these.
child-property-removed
Emitted when the element has a child property unregistered. See
TimelineElementExt::remove_child_property()
.
deep-notify
Emitted when a child of the element has one of its registered
properties set. See TimelineElementExt::add_child_property()
.
Note that unlike notify
, a child property name can not be
used as a signal detail.
Detailed
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
TrackElementExt
, TimelineElementExt
, glib::ObjectExt
, ExtractableExt
, MetaContainerExt
, [TimelineElementExtManual
][trait@crate::prelude::TimelineElementExtManual]
Implementations§
source§impl TrackElement
impl TrackElement
pub const NONE: Option<&'static TrackElement> = None
Trait Implementations§
source§impl Clone for TrackElement
impl Clone for TrackElement
source§impl Debug for TrackElement
impl Debug for TrackElement
source§impl HasParamSpec for TrackElement
impl HasParamSpec for TrackElement
type ParamSpec = ParamSpecObject
§type SetValue = TrackElement
type SetValue = TrackElement
type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, TrackElement>
fn param_spec_builder() -> Self::BuilderFn
source§impl Hash for TrackElement
impl Hash for TrackElement
source§impl Ord for TrackElement
impl Ord for TrackElement
source§impl ParentClassIs for TrackElement
impl ParentClassIs for TrackElement
type Parent = TimelineElement
source§impl<OT: ObjectType> PartialEq<OT> for TrackElement
impl<OT: ObjectType> PartialEq<OT> for TrackElement
source§impl<OT: ObjectType> PartialOrd<OT> for TrackElement
impl<OT: ObjectType> PartialOrd<OT> for TrackElement
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl StaticType for TrackElement
impl StaticType for TrackElement
source§fn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for TrackElement
impl IsA<Extractable> for TrackElement
impl IsA<MetaContainer> for TrackElement
impl IsA<TimelineElement> for TrackElement
impl IsA<TrackElement> for AudioSource
impl IsA<TrackElement> for AudioTestSource
impl IsA<TrackElement> for AudioTransition
impl IsA<TrackElement> for AudioUriSource
impl IsA<TrackElement> for BaseEffect
impl IsA<TrackElement> for Effect
impl IsA<TrackElement> for ImageSource
impl IsA<TrackElement> for MultiFileSource
impl IsA<TrackElement> for Operation
impl IsA<TrackElement> for Source
impl IsA<TrackElement> for TextOverlay
impl IsA<TrackElement> for TitleSource
impl IsA<TrackElement> for Transition
impl IsA<TrackElement> for VideoSource
impl IsA<TrackElement> for VideoTestSource
impl IsA<TrackElement> for VideoTransition
impl IsA<TrackElement> for VideoUriSource
Auto Trait Implementations§
impl RefUnwindSafe for TrackElement
impl !Send for TrackElement
impl !Sync for TrackElement
impl Unpin for TrackElement
impl UnwindSafe for TrackElement
Blanket Implementations§
source§impl<T> Cast for Twhere
T: ObjectType,
impl<T> Cast for Twhere
T: ObjectType,
source§fn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
T
. Read moresource§fn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
T
. Read moresource§fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: CanDowncast<T>,
T
. Read moresource§fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: CanDowncast<T>,
T
. Read moresource§fn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
fn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
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 moresource§fn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
fn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
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 moresource§unsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
unsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
T
unconditionally. Read moresource§unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
&T
unconditionally. Read moresource§impl<O> GObjectExtManualGst for Owhere
O: IsA<Object>,
impl<O> GObjectExtManualGst for Owhere
O: IsA<Object>,
fn set_property_from_str(&self, name: &str, value: &str)
source§impl<T> IntoClosureReturnValue for Twhere
T: Into<Value>,
impl<T> IntoClosureReturnValue for Twhere
T: Into<Value>,
fn into_closure_return_value(self) -> Option<Value>
source§impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
fn parent_class_init<T>(class: &mut Class<U>)where
T: ObjectSubclass,
<U as ParentClassIs>::Parent: IsSubclassable<T>,
fn parent_instance_init<T>(instance: &mut InitializingObject<T>)where
T: ObjectSubclass,
<U as ParentClassIs>::Parent: IsSubclassable<T>,
source§impl<T> ObjectExt for Twhere
T: ObjectType,
impl<T> ObjectExt for Twhere
T: ObjectType,
source§fn is<U>(&self) -> boolwhere
U: StaticType,
fn is<U>(&self) -> boolwhere
U: StaticType,
true
if the object is an instance of (can be cast to) T
.source§fn object_class(&self) -> &Class<Object>
fn object_class(&self) -> &Class<Object>
ObjectClass
of the object. Read moresource§fn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
fn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
T
. Read moresource§fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
T
of the object. Read moresource§fn set_property_from_value(&self, property_name: &str, value: &Value)
fn set_property_from_value(&self, property_name: &str, value: &Value)
source§fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
source§fn set_properties_from_value(&self, property_values: &[(&str, Value)])
fn set_properties_from_value(&self, property_values: &[(&str, Value)])
source§fn property<V>(&self, property_name: &str) -> Vwhere
V: for<'b> FromValue<'b> + 'static,
fn property<V>(&self, property_name: &str) -> Vwhere
V: for<'b> FromValue<'b> + 'static,
property_name
of the object and cast it to the type V. Read moresource§fn property_value(&self, property_name: &str) -> Value
fn property_value(&self, property_name: &str) -> Value
property_name
of the object. Read moresource§fn property_type(&self, property_name: &str) -> Option<Type>
fn property_type(&self, property_name: &str) -> Option<Type>
property_name
of this object. Read moresource§fn find_property(&self, property_name: &str) -> Option<ParamSpec>
fn find_property(&self, property_name: &str) -> Option<ParamSpec>
ParamSpec
of the property property_name
of this object.source§fn list_properties(&self) -> PtrSlice<ParamSpec>
fn list_properties(&self) -> PtrSlice<ParamSpec>
ParamSpec
of the properties of this object.source§fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
source§unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
key
. Read moresource§unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
key
. Read moresource§unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
key
. Read moresource§unsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
unsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
key
. Read moresource§unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
key
. Read moresource§unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
key
. Read moresource§fn block_signal(&self, handler_id: &SignalHandlerId)
fn block_signal(&self, handler_id: &SignalHandlerId)
source§fn unblock_signal(&self, handler_id: &SignalHandlerId)
fn unblock_signal(&self, handler_id: &SignalHandlerId)
source§fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
source§fn stop_signal_emission_by_name(&self, signal_name: &str)
fn stop_signal_emission_by_name(&self, signal_name: &str)
source§fn connect<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
fn connect<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
signal_name
on this object. Read moresource§fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
signal_id
on this object. Read moresource§fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
signal_name
on this object. Read moresource§fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
signal_id
on this object. Read moresource§unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
signal_name
on this object. Read moresource§unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
signal_id
on this object. Read moresource§fn connect_closure(
&self,
signal_name: &str,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure(
&self,
signal_name: &str,
after: bool,
closure: RustClosure
) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_closure_id(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure_id(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
closure: RustClosure
) -> SignalHandlerId
signal_id
on this object. Read moresource§fn watch_closure(&self, closure: &impl AsRef<Closure>)
fn watch_closure(&self, closure: &impl AsRef<Closure>)
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]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
source§fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
Self::emit
but takes Value
for the arguments.source§fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
source§fn emit_by_name_with_values(
&self,
signal_name: &str,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_values(
&self,
signal_name: &str,
args: &[Value]
) -> Option<Value>
source§fn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
source§fn emit_by_name_with_details_and_values(
&self,
signal_name: &str,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_details_and_values(
&self,
signal_name: &str,
details: Quark,
args: &[Value]
) -> Option<Value>
source§fn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
source§fn emit_with_details_and_values(
&self,
signal_id: SignalId,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_with_details_and_values(
&self,
signal_id: SignalId,
details: Quark,
args: &[Value]
) -> Option<Value>
source§fn disconnect(&self, handler_id: SignalHandlerId)
fn disconnect(&self, handler_id: SignalHandlerId)
source§fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + Send + Sync + 'static,
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + Send + Sync + 'static,
notify
signal of the object. Read moresource§fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + 'static,
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + 'static,
notify
signal of the object. Read moresource§unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec),
unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec),
notify
signal of the object. Read more