[−][src]Trait gstreamer_editing_services::prelude::TimelineExt
Required methods
fn add_layer<P: IsA<Layer>>(&self, layer: &P) -> Result<(), BoolError>
Add the layer to the timeline. The reference to the layer will be stolen
by the self.
layer
the Layer to add
Returns
true if the layer was properly added, else false.
fn add_track<P: IsA<Track>>(&self, track: &P) -> Result<(), BoolError>
Add a track to the timeline. The reference to the track will be stolen by the pipeline.
track
the Track to add
Returns
true if the track was properly added, else false.
fn append_layer(&self) -> Layer
Append a newly created Layer to self
Note that you do not own any reference to the returned layer.
Returns
The newly created Layer, or the last (empty)
Layer of self.
fn commit(&self) -> bool
Commit all the pending changes of the clips contained in the
self.
When changes happen in a timeline, they are not directly executed in the non-linear engine. Call this method once you are done with a set of changes and want it to be executed.
The Timeline::commited signal will be emitted when the (possibly updated)
gst::Pipeline is ready to output data again, except if the state of the
timeline was gst::State::Ready or gst::State::Null.
Note that all the pending changes will automatically be executed when the
timeline goes from gst::State::Ready to gst::State::Paused, which usually is
triggered by corresponding state changes in a containing Pipeline.
You should not try to change the state of the timeline, seek it or add
tracks to it during a commit operation, that is between a call to this
function and after receiving the Timeline::commited signal.
See TimelineExt::commit_sync if you don't want to bother with waiting
for the signal.
Returns
true if pending changes were commited or false if nothing needed
to be commited
fn commit_sync(&self) -> bool
Commit all the pending changes of the GESClips contained in the
self.
Will return once the update is complete, that is when the
(possibly updated) gst::Pipeline is ready to output data again, or if the
state of the timeline was gst::State::Ready or gst::State::Null.
This function will wait for any pending state change of the timeline by
calling gst::ElementExt::get_state with a GST_CLOCK_TIME_NONE timeout, you
should not try to change the state from another thread before this function
has returned.
See TimelineExt::commit for more information.
Returns
true if pending changes were commited or false if nothing needed
to be commited
fn get_auto_transition(&self) -> bool
Gets whether transitions are automatically added when objects overlap or not.
Returns
true if transitions are automatically added, else false.
fn get_duration(&self) -> ClockTime
fn get_element(&self, name: &str) -> Option<TimelineElement>
fn get_groups(&self) -> Vec<Group>
Get the list of Group present in the Timeline.
Returns
the list of
Group that contain clips present in the timeline's layers.
Must not be changed.
fn get_layer(&self, priority: u32) -> Option<Layer>
Retrieve the layer with priority as a priority
priority
The priority of the layer to find
Returns
A Layer or None if no layer with
priority was found
Since 1.6
fn get_layers(&self) -> Vec<Layer>
Get the list of Layer present in the Timeline.
Returns
the list of
Layer present in the Timeline sorted by priority.
The caller should unref each Layer once he is done with them.
fn get_pad_for_track<P: IsA<Track>>(&self, track: &P) -> Option<Pad>
Search the gst::Pad corresponding to the given self's track.
track
The Track
Returns
The corresponding gst::Pad if it is
found, or None if there is an error.
fn get_snapping_distance(&self) -> ClockTime
Gets the configured snapping distance of the timeline. See the documentation of the property snapping_distance for more information.
Returns
The snapping_distance property of the timeline
fn get_track_for_pad<P: IsA<Pad>>(&self, pad: &P) -> Option<Track>
Search the Track corresponding to the given self's pad.
pad
The gst::Pad
Returns
The corresponding Track if it is
found, or None if there is an error.
fn get_tracks(&self) -> Vec<Track>
Returns the list of Track used by the Timeline.
Returns
A list of Track.
The caller should unref each track once he is done with them.
fn is_empty(&self) -> bool
fn load_from_uri(&self, uri: &str) -> Result<(), Error>
Loads the contents of URI into the given timeline.
uri
The URI to load from
Returns
true if the timeline was loaded successfully, or false if the uri
could not be loaded.
fn move_layer<P: IsA<Layer>>(
&self,
layer: &P,
new_layer_priority: u32
) -> Result<(), BoolError>
&self,
layer: &P,
new_layer_priority: u32
) -> Result<(), BoolError>
Moves layer at new_layer_priority meaning that layer
we land at that position in the stack of layers inside
the timeline. If new_layer_priority is superior than the number
of layers present in the time, it will move to the end of the
stack of layers.
Feature: v1_16
layer
The layer to move at new_layer_priority
new_layer_priority
The index at which layer should land
fn paste_element<P: IsA<TimelineElement>>(
&self,
element: &P,
position: ClockTime,
layer_priority: i32
) -> Option<TimelineElement>
&self,
element: &P,
position: ClockTime,
layer_priority: i32
) -> Option<TimelineElement>
Paste element inside the timeline. element must have been
created using ges_timeline_element_copy with deep=TRUE set,
i.e. it must be a deep copy, otherwise it will fail.
element
The TimelineElement to paste
position
The position in the timeline the element should
be pasted to, meaning it will become the start of element
layer_priority
The Layer to which the element should be pasted to.
-1 means paste to the same layer from which the element has been copied from.
Returns
Shallow copy of the element pasted
fn remove_layer<P: IsA<Layer>>(&self, layer: &P) -> Result<(), BoolError>
Removes the layer from the timeline. The reference that the self holds on
the layer will be dropped. If you wish to use the layer after calling this
method, you need to take a reference before calling.
layer
the Layer to remove
Returns
true if the layer was properly removed, else false.
fn remove_track<P: IsA<Track>>(&self, track: &P) -> Result<(), BoolError>
Remove the track from the self. The reference stolen when adding the
track will be removed. If you wish to use the track after calling this
function you must ensure that you have a reference to it.
track
the Track to remove
Returns
true if the track was properly removed, else false.
fn save_to_uri<P: IsA<Asset>>(
&self,
uri: &str,
formatter_asset: Option<&P>,
overwrite: bool
) -> Result<(), Error>
&self,
uri: &str,
formatter_asset: Option<&P>,
overwrite: bool
) -> Result<(), Error>
Saves the timeline to the given location
uri
The location to save to
formatter_asset
The formatter asset to use or None. If None,
will try to save in the same format as the one from which the timeline as been loaded
or default to the formatter with highest rank
overwrite
true to overwrite file if it exists
Returns
true if the timeline was successfully saved to the given location,
else false.
fn set_auto_transition(&self, auto_transition: bool)
Sets the layer to the given auto_transition. See the documentation of the
property auto_transition for more information.
auto_transition
whether the auto_transition is active
fn set_snapping_distance(&self, snapping_distance: ClockTime)
Sets the snapping_distance of the timeline. See the documentation of the
property snapping_distance for more information.
snapping_distance
whether the snapping_distance is active
fn connect_commited<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
This signal will be emitted once the changes initiated by TimelineExt::commit
have been executed in the backend. Use TimelineExt::commit_sync if you
don't need to do anything in the meantime.
fn connect_group_added<F: Fn(&Self, &Group) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_layer_added<F: Fn(&Self, &Layer) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Will be emitted after a new layer is added to the timeline.
layer
the Layer that was added to the timeline
fn connect_layer_removed<F: Fn(&Self, &Layer) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Will be emitted after the layer was removed from the timeline.
layer
the Layer that was removed from the timeline
fn connect_snapping_ended<F: Fn(&Self, &TrackElement, &TrackElement, u64) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Will be emitted when the 2 TrackElement ended to snap
obj1
the first TrackElement that was snapping.
obj2
the second TrackElement that was snapping.
position
the position where the two objects finally snapping.
fn connect_snapping_started<F: Fn(&Self, &TrackElement, &TrackElement, u64) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Will be emitted when the 2 TrackElement first snapped
obj1
the first TrackElement that was snapping.
obj2
the second TrackElement that was snapping.
position
the position where the two objects finally snapping.
fn connect_track_added<F: Fn(&Self, &Track) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Will be emitted after the track was added to the timeline.
track
the Track that was added to the timeline
fn connect_track_removed<F: Fn(&Self, &Track) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Will be emitted after the track was removed from the timeline.
track
the Track that was removed from the timeline
fn connect_property_auto_transition_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_duration_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_snapping_distance_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Implementors
impl<O: IsA<Timeline>> TimelineExt for O[src]
fn add_layer<P: IsA<Layer>>(&self, layer: &P) -> Result<(), BoolError>[src]
fn add_track<P: IsA<Track>>(&self, track: &P) -> Result<(), BoolError>[src]
fn append_layer(&self) -> Layer[src]
fn commit(&self) -> bool[src]
fn commit_sync(&self) -> bool[src]
fn get_auto_transition(&self) -> bool[src]
fn get_duration(&self) -> ClockTime[src]
fn get_element(&self, name: &str) -> Option<TimelineElement>[src]
fn get_groups(&self) -> Vec<Group>[src]
fn get_layer(&self, priority: u32) -> Option<Layer>[src]
fn get_layers(&self) -> Vec<Layer>[src]
fn get_pad_for_track<P: IsA<Track>>(&self, track: &P) -> Option<Pad>[src]
fn get_snapping_distance(&self) -> ClockTime[src]
fn get_track_for_pad<P: IsA<Pad>>(&self, pad: &P) -> Option<Track>[src]
fn get_tracks(&self) -> Vec<Track>[src]
fn is_empty(&self) -> bool[src]
fn load_from_uri(&self, uri: &str) -> Result<(), Error>[src]
fn move_layer<P: IsA<Layer>>(
&self,
layer: &P,
new_layer_priority: u32
) -> Result<(), BoolError>[src]
&self,
layer: &P,
new_layer_priority: u32
) -> Result<(), BoolError>
fn paste_element<P: IsA<TimelineElement>>(
&self,
element: &P,
position: ClockTime,
layer_priority: i32
) -> Option<TimelineElement>[src]
&self,
element: &P,
position: ClockTime,
layer_priority: i32
) -> Option<TimelineElement>
fn remove_layer<P: IsA<Layer>>(&self, layer: &P) -> Result<(), BoolError>[src]
fn remove_track<P: IsA<Track>>(&self, track: &P) -> Result<(), BoolError>[src]
fn save_to_uri<P: IsA<Asset>>(
&self,
uri: &str,
formatter_asset: Option<&P>,
overwrite: bool
) -> Result<(), Error>[src]
&self,
uri: &str,
formatter_asset: Option<&P>,
overwrite: bool
) -> Result<(), Error>
fn set_auto_transition(&self, auto_transition: bool)[src]
fn set_snapping_distance(&self, snapping_distance: ClockTime)[src]
fn connect_commited<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId[src]
fn connect_group_added<F: Fn(&Self, &Group) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_layer_added<F: Fn(&Self, &Layer) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_layer_removed<F: Fn(&Self, &Layer) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_snapping_ended<F: Fn(&Self, &TrackElement, &TrackElement, u64) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_snapping_started<F: Fn(&Self, &TrackElement, &TrackElement, u64) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_track_added<F: Fn(&Self, &Track) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_track_removed<F: Fn(&Self, &Track) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_auto_transition_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_duration_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_snapping_distance_notify<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId[src]
&self,
f: F
) -> SignalHandlerId