Struct gstreamer_editing_services::Clip

source ·
pub struct Clip { /* private fields */ }
Expand description

Clip-s are the core objects of a Layer. Each clip may exist in a single layer but may control several TrackElement-s that span several Track-s. A clip will ensure that all its children share the same start and duration in their tracks, which will match the start and duration of the clip itself. Therefore, changing the timing of the clip will change the timing of the children, and a change in the timing of a child will change the timing of the clip and subsequently all its siblings. As such, a clip can be treated as a singular object in its layer.

For most uses of a Timeline, it is often sufficient to only interact with Clip-s directly, which will take care of creating and organising the elements of the timeline’s tracks.

§Core Children

In more detail, clips will usually have some core TrackElement children, which are created by the clip when it is added to a layer in a timeline. The type and form of these core children will depend on the clip’s subclass. You can use TrackElementExt::is_core() to determine whether a track element is considered such a core track element. Note, if a core track element is part of a clip, it will always be treated as a core child of the clip. You can connect to the child-added signal to be notified of their creation.

When a child is added to a clip, the timeline will select its tracks using select-tracks-for-object. Note that it may be the case that the child will still have no set track after this process. For example, if the timeline does not have a track of the corresponding track-type. A clip can safely contain such children, which may have their track set later, although they will play no functioning role in the timeline in the meantime.

If a clip may create track elements with various track-type(s), such as a UriClip, but you only want it to create a subset of these types, you should set the supported-formats of the clip to the subset of types. This should be done before adding the clip to a layer.

If a clip will produce several core elements of the same track-type, you should connect to the timeline’s select-tracks-for-object signal to coordinate which tracks each element should land in. Note, no two core children within a clip can share the same Track, so you should not select the same track for two separate core children. Provided you stick to this rule, it is still safe to select several tracks for the same core child, the core child will be copied into the additional tracks. You can manually add the child to more tracks later using ClipExt::add_child_to_track(). If you do not wish to use a core child, you can always select no track.

The in-point of the clip will control the in-point of its core children to be the same value if their has-internal-source is set to true.

The max-duration of the clip is the minimum max-duration of its core children. If you set its value to anything other than its current value, this will also set the max-duration of all its core children to the same value if their has-internal-source is set to true. As a special case, whilst a clip does not yet have any core children, its max-duration may be set to indicate what its value will be once they are created.

§Effects

Some subclasses (SourceClip and BaseEffectClip) may also allow their objects to have additional non-core BaseEffect-s elements as children. These are additional effects that are applied to the output data of the core elements. They can be added to the clip using ClipExt::add_top_effect(), which will take care of adding the effect to the timeline’s tracks. The new effect will be placed between the clip’s core track elements and its other effects. As such, the newly added effect will be applied to any source data before the other existing effects. You can change the ordering of effects using ClipExt::set_top_effect_index().

Tracks are selected for top effects in the same way as core children. If you add a top effect to a clip before it is part of a timeline, and later add the clip to a timeline, the track selection for the top effects will occur just after the track selection for the core children. If you add a top effect to a clip that is already part of a timeline, the track selection will occur immediately. Since a top effect must be applied on top of a core child, if you use select-tracks-for-object, you should ensure that the added effects are destined for a Track that already contains a core child.

In addition, if the core child in the track is not active, then neither can any of its effects be active. Therefore, if a core child is made in-active, all of the additional effects in the same track will also become in-active. Similarly, if an effect is set to be active, then the core child will also become active, but other effects will be left alone. Finally, if an active effect is added to the track of an in-active core child, it will become in-active as well. Note, in contrast, setting a core child to be active, or an effect to be in-active will not change the other children in the same track.

§Time Effects

Some effects also change the timing of their data (see BaseEffect for what counts as a time effect). Note that a BaseEffectClip will refuse time effects, but a Source will allow them.

When added to a clip, time effects may adjust the timing of other children in the same track. Similarly, when changing the order of effects, making them (in)-active, setting their time property values or removing time effects. These can cause the duration-limit to change in value. However, if such an operation would ever cause the duration to shrink such that a clip’s Source is totally overlapped in the timeline, the operation would be prevented. Note that the same can happen when adding non-time effects with a finite max-duration.

Therefore, when working with time effects, you should – more so than usual – not assume that setting the properties of the clip’s children will succeed. In particular, you should use TimelineElementExt::set_child_property_full() when setting the time properties.

If you wish to preserve the internal duration of a source in a clip during these time effect operations, you can do something like the following.

⚠️ The following code is in c ⚠️

void
do_time_effect_change (GESClip * clip)
{
  GList *tmp, *children;
  GESTrackElement *source;
  GstClockTime source_outpoint;
  GstClockTime new_end;
  GError *error = NULL;

  // choose some active source in a track to preserve the internal
  // duration of
  source = ges_clip_get_track_element (clip, NULL, GES_TYPE_SOURCE);

  // note its current internal end time
  source_outpoint = ges_clip_get_internal_time_from_timeline_time (
        clip, source, GES_TIMELINE_ELEMENT_END (clip), NULL);

  // handle invalid out-point

  // stop the children's control sources from clamping when their
  // out-point changes with a change in the time effects
  children = ges_container_get_children (GES_CONTAINER (clip), FALSE);

  for (tmp = children; tmp; tmp = tmp->next)
    ges_track_element_set_auto_clamp_control_sources (tmp->data, FALSE);

  // add time effect, or set their children properties, or move them around
  ...
  // user can make sure that if a time effect changes one source, we should
  // also change the time effect for another source. E.g. if
  // "GstVideorate::rate" is set to 2.0, we also set "GstPitch::rate" to
  // 2.0

  // Note the duration of the clip may have already changed if the
  // duration-limit of the clip dropped below its current value

  new_end = ges_clip_get_timeline_time_from_internal_time (
        clip, source, source_outpoint, &error);
  // handle error

  if (!ges_timeline_elemnet_edit_full (GES_TIMELINE_ELEMENT (clip),
        -1, GES_EDIT_MODE_TRIM, GES_EDGE_END, new_end, &error))
    // handle error

  for (tmp = children; tmp; tmp = tmp->next)
    ges_track_element_set_auto_clamp_control_sources (tmp->data, TRUE);

  g_list_free_full (children, gst_object_unref);
  gst_object_unref (source);
}

This is an Abstract Base Class, you cannot instantiate it.

§Properties

§duration-limit

The maximum duration that can be currently set for the clip, taking into account the in-point, max-duration, active, and track properties of its children, as well as any time effects. If there is no limit, this will be set to GST_CLOCK_TIME_NONE.

Note that whilst a clip has no children in any tracks, the limit will be unknown, and similarly set to GST_CLOCK_TIME_NONE.

If the duration-limit would ever go below the current duration of the clip due to a change in the above variables, its duration will be set to the new limit.

Readable

§layer

The layer this clip lies in.

If you want to connect to this property’s notify signal, you should connect to it with g_signal_connect_after() since the signal emission may be stopped internally.

Readable

§supported-formats

The TrackType-s that the clip supports, which it can create TrackElement-s for. Note that this can be a combination of TrackType flags to indicate support for several track-type elements.

Readable | Writeable | Construct

Container

§height

The span of the container’s children’s priority values, which is the number of integers that lie between (inclusive) the minimum and maximum priorities found amongst the container’s children (maximum - minimum + 1).

Readable

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

§Implements

ClipExt, GESContainerExt, TimelineElementExt, [trait@glib::ObjectExt], ExtractableExt, MetaContainerExt, [TimelineElementExtManual][trait@crate::prelude::TimelineElementExtManual]

GLib type: GObject with reference counted clone semantics.

Implementations§

source§

impl Clip

source

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

Trait Implementations§

source§

impl Clone for Clip

source§

fn clone(&self) -> Self

Makes a clone of this shared reference.

This increments the strong reference count of the object. Dropping the object will decrement it again.

1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for Clip

source§

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

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

impl HasParamSpec for Clip

§

type ParamSpec = ParamSpecObject

§

type SetValue = Clip

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

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

source§

fn param_spec_builder() -> Self::BuilderFn

source§

impl Hash for Clip

source§

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

Hashes the memory address of this object.

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 Clip

source§

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

Comparison for two GObjects.

Compares the memory addresses of the provided objects.

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 Clip

source§

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

source§

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

Equality for two GObjects.

Two GObjects are equal if their memory addresses are equal.

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 Clip

source§

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

Partial comparison for two GObjects.

Compares the memory addresses of the provided objects.

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 Clip

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl Eq for Clip

source§

impl IsA<Clip> for BaseEffectClip

source§

impl IsA<Clip> for BaseTransitionClip

source§

impl IsA<Clip> for EffectClip

source§

impl IsA<Clip> for OperationClip

source§

impl IsA<Clip> for OverlayClip

source§

impl IsA<Clip> for SourceClip

source§

impl IsA<Clip> for TestClip

source§

impl IsA<Clip> for TextOverlayClip

source§

impl IsA<Clip> for TitleClip

source§

impl IsA<Clip> for TransitionClip

source§

impl IsA<Clip> for UriClip

source§

impl IsA<Container> for Clip

source§

impl IsA<Extractable> for Clip

source§

impl IsA<MetaContainer> for Clip

source§

impl IsA<TimelineElement> for Clip

Auto Trait Implementations§

§

impl Freeze for Clip

§

impl RefUnwindSafe for Clip

§

impl !Send for Clip

§

impl !Sync for Clip

§

impl Unpin for Clip

§

impl UnwindSafe for Clip

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> ClipExt for O
where O: IsA<Clip>,

source§

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

Extracts a TrackElement from an asset and adds it to the clip. This can be used to add effects that derive from the asset to the clip, but this method is not intended to be used to create the core elements of the clip. Read more
source§

fn add_child_to_track( &self, child: &impl IsA<TrackElement>, track: &impl IsA<Track>, ) -> Result<TrackElement, Error>

Adds the track element child of the clip to a specific track. Read more
source§

fn add_top_effect( &self, effect: &impl IsA<BaseEffect>, index: i32, ) -> Result<(), Error>

Add a top effect to a clip at the given index. Read more
source§

fn find_track_element( &self, track: Option<&impl IsA<Track>>, type_: Type, ) -> Option<TrackElement>

Finds an element controlled by the clip. If track is given, then only the track elements in track are searched for. If type_ is given, then this function searches for a track element of the given type_. Read more
source§

fn find_track_elements( &self, track: Option<&impl IsA<Track>>, track_type: TrackType, type_: Type, ) -> Vec<TrackElement>

Finds the TrackElement-s controlled by the clip that match the given criteria. If track is given as None and track_type is given as TrackType::UNKNOWN, then the search will match all elements in any track, including those with no track, and of any track-type. Otherwise, if track is not None, but track_type is TrackType::UNKNOWN, then only the track elements in track are searched for. Otherwise, if track_type is not TrackType::UNKNOWN, but track is None, then only the track elements whose track-type matches track_type are searched for. Otherwise, when both are given, the track elements that match either criteria are searched for. Therefore, if you wish to only find elements in a specific track, you should give the track as track, but you should not give the track’s track-type as track_type because this would also select elements from other tracks of the same type. Read more
source§

fn duration_limit(&self) -> ClockTime

Gets the duration-limit of the clip. Read more
source§

fn internal_time_from_timeline_time( &self, child: &impl IsA<TrackElement>, timeline_time: impl Into<Option<ClockTime>>, ) -> Result<Option<ClockTime>, Error>

Convert the timeline time to an internal source time of the child. This will take any time effects placed on the clip into account (see BaseEffect for what time effects are supported, and how to declare them in GES). Read more
source§

fn layer(&self) -> Option<Layer>

Gets the layer of the clip. Read more
source§

fn supported_formats(&self) -> TrackType

Gets the supported-formats of the clip. Read more
source§

fn timeline_time_from_internal_time( &self, child: &impl IsA<TrackElement>, internal_time: impl Into<Option<ClockTime>>, ) -> Result<Option<ClockTime>, Error>

Convert the internal source time from the child to a timeline time. This will take any time effects placed on the clip into account (see BaseEffect for what time effects are supported, and how to declare them in GES). Read more
source§

fn timeline_time_from_source_frame( &self, frame_number: FrameNumber, ) -> Result<Option<ClockTime>, Error>

Convert the source frame number to a timeline time. This acts the same as timeline_time_from_internal_time() using the core children of the clip and using the frame number to specify the internal position, rather than a timestamp. Read more
source§

fn top_effect_index(&self, effect: &impl IsA<BaseEffect>) -> i32

Gets the internal index of an effect in the clip. The index of effects in a clip will run from 0 to n-1, where n is the total number of effects. If two effects share the same track, the effect with the numerically lower index will be applied to the source data after the other effect, i.e. output data will always flow from a higher index effect to a lower index effect. Read more
source§

fn top_effect_position(&self, effect: &impl IsA<BaseEffect>) -> i32

source§

fn top_effects(&self) -> Vec<TrackElement>

Gets the BaseEffect-s that have been added to the clip. The returned list is ordered by their internal index in the clip. See top_effect_index(). Read more
source§

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

See move_to_layer_full(), which also gives an error. Read more
source§

fn move_to_layer_full(&self, layer: &impl IsA<Layer>) -> Result<(), Error>

Moves a clip to a new layer. If the clip already exists in a layer, it is first removed from its current layer before being added to the new layer. Read more
source§

fn remove_top_effect(&self, effect: &impl IsA<BaseEffect>) -> Result<(), Error>

Remove a top effect from the clip. Read more
source§

fn set_supported_formats(&self, supportedformats: TrackType)

Sets the supported-formats of the clip. This should normally only be called by subclasses, which should be responsible for updating its value, rather than the user. Read more
source§

fn set_top_effect_index( &self, effect: &impl IsA<BaseEffect>, newindex: u32, ) -> Result<(), BoolError>

See set_top_effect_index_full(), which also gives an error. Read more
source§

fn set_top_effect_index_full( &self, effect: &impl IsA<BaseEffect>, newindex: u32, ) -> Result<(), Error>

Set the index of an effect within the clip. See top_effect_index(). The new index must be an existing index of the clip. The effect is moved to the new index, and the other effects may be shifted in index accordingly to otherwise maintain the ordering. Read more
source§

fn set_top_effect_priority( &self, effect: &impl IsA<BaseEffect>, newpriority: u32, ) -> Result<(), BoolError>

source§

fn split(&self, position: u64) -> Result<Clip, BoolError>

See split_full(), which also gives an error. Read more
source§

fn split_full(&self, position: u64) -> Result<Option<Clip>, Error>

Splits a clip at the given timeline position into two clips. The clip must already have a layer. Read more
source§

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

source§

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

source§

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

source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> GESContainerExt for O
where O: IsA<Container>,

source§

fn add(&self, child: &impl IsA<TimelineElement>) -> Result<(), BoolError>

Adds a timeline element to the container. The element will now be a child of the container (and the container will be the parent of the added element), which means that it is now controlled by the container. This may change the properties of the child or the container, depending on the subclass. Read more
source§

fn edit( &self, layers: &[Layer], new_layer_priority: i32, mode: EditMode, edge: Edge, position: u64, ) -> Result<(), BoolError>

👎Deprecated: Since 1.18
Edits the container within its timeline. Read more
source§

fn children(&self, recursive: bool) -> Vec<TimelineElement>

Get the list of timeline elements contained in the container. If recursive is true, and the container contains other containers as children, then their children will be added to the list, in addition to themselves, and so on. Read more
source§

fn remove(&self, child: &impl IsA<TimelineElement>) -> Result<(), BoolError>

Removes a timeline element from the container. The element will no longer be controlled by the container. Read more
source§

fn ungroup(self, recursive: bool) -> Vec<Container>

Ungroups the container by splitting it into several containers containing various children of the original. The rules for how the container splits depends on the subclass. A Group will simply split into its children. A Clip will split into one Clip per TrackType it overlaps with (so an audio-video clip will split into an audio clip and a video clip), where each clip contains all the TrackElement-s from the original clip with a matching track-type. Read more
source§

fn height(&self) -> u32

The span of the container’s children’s priority values, which is the number of integers that lie between (inclusive) the minimum and maximum priorities found amongst the container’s children (maximum - minimum + 1).
source§

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

Will be emitted after a child is added to the container. Usually, you should connect with g_signal_connect_after() since the signal may be stopped internally. Read more
source§

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

Will be emitted after a child is removed from the container. Read more
source§

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

source§

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

source§

fn set_property_from_str(&self, name: &str, value: &str)

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<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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> TimelineElementExt for O
where O: IsA<TimelineElement>,

source§

fn add_child_property( &self, pspec: impl AsRef<ParamSpec>, child: &impl IsA<Object>, ) -> Result<(), BoolError>

Register a property of a child of the element to allow it to be written with set_child_property() and read with child_property(). A change in the property will also appear in the deep-notify signal. Read more
source§

fn copy(&self, deep: bool) -> TimelineElement

source§

fn edit( &self, layers: &[Layer], new_layer_priority: i64, mode: EditMode, edge: Edge, position: u64, ) -> bool

See edit_full(), which also gives an error. Read more
source§

fn edit_full( &self, new_layer_priority: i64, mode: EditMode, edge: Edge, position: u64, ) -> Result<(), Error>

Edits the element within its timeline by adjusting its start, duration or in-point, and potentially doing the same for other elements in the timeline. See EditMode for details about each edit mode. An edit may fail if it would place one of these properties out of bounds, or if it would place the timeline in an unsupported configuration. Read more
source§

fn child_property(&self, property_name: &str) -> Option<Value>

Gets the property of a child of the element. Read more
source§

fn child_property_by_pspec(&self, pspec: impl AsRef<ParamSpec>) -> Value

Gets the property of a child of the element. Specifically, the property corresponding to the pspec used in add_child_property() is copied into value. Read more
source§

fn duration(&self) -> ClockTime

Gets the duration for the element. Read more
source§

fn inpoint(&self) -> ClockTime

Gets the in-point for the element. Read more
source§

fn layer_priority(&self) -> u32

Gets the priority of the layer the element is in. A Group may span several layers, so this would return the highest priority (numerically, the smallest) amongst them. Read more
source§

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

Gets the max-duration for the element. Read more
source§

fn name(&self) -> Option<GString>

Gets the name for the element. Read more
source§

fn natural_framerate(&self) -> Option<(i32, i32)>

Get the “natural” framerate of self. This is to say, for example for a VideoUriSource the framerate of the source. Read more
source§

fn parent(&self) -> Option<TimelineElement>

Gets the parent for the element. Read more
source§

fn priority(&self) -> u32

Gets the priority for the element. Read more
source§

fn start(&self) -> ClockTime

Gets the start for the element. Read more
source§

fn timeline(&self) -> Option<Timeline>

Gets the timeline for the element. Read more
source§

fn toplevel_parent(&self) -> TimelineElement

Gets the toplevel parent of the element. Read more
source§

fn track_types(&self) -> TrackType

Gets the track types that the element can interact with, i.e. the type of Track it can exist in, or will create TrackElement-s for. Read more
source§

fn list_children_properties(&self) -> Vec<ParamSpec>

Get a list of children properties of the element, which is a list of all the specifications passed to add_child_property(). Read more
source§

fn lookup_child(&self, prop_name: &str) -> Option<(Object, ParamSpec)>

Looks up a child property of the element. Read more
source§

fn paste(&self, paste_position: ClockTime) -> Result<TimelineElement, BoolError>

Paste an element inside the same timeline and layer as self. self must be the return of ges_timeline_element_copy() with deep=TRUE, and it should not be changed before pasting. self 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 stay within the same timeline and layer, at both the point of copying and pasting. Read more
source§

fn remove_child_property( &self, pspec: impl AsRef<ParamSpec>, ) -> Result<(), BoolError>

Remove a child property from the element. pspec should be a specification that was passed to add_child_property(). The corresponding property will no longer be registered as a child property for the element. Read more
source§

fn ripple(&self, start: ClockTime) -> Result<(), BoolError>

Edits the start time of an element within its timeline in ripple mode. See edit() with EditMode::Ripple and Edge::None. Read more
source§

fn ripple_end(&self, end: ClockTime) -> Result<(), BoolError>

Edits the end time of an element within its timeline in ripple mode. See edit() with EditMode::Ripple and Edge::End. Read more
source§

fn roll_end(&self, end: ClockTime) -> Result<(), BoolError>

Edits the end time of an element within its timeline in roll mode. See edit() with EditMode::Roll and Edge::End. Read more
source§

fn roll_start(&self, start: ClockTime) -> Result<(), BoolError>

Edits the start time of an element within its timeline in roll mode. See edit() with EditMode::Roll and Edge::Start. Read more
source§

fn set_child_property( &self, property_name: &str, value: &Value, ) -> Result<(), BoolError>

See set_child_property_full(), which also gives an error. Read more
source§

fn set_child_property_by_pspec( &self, pspec: impl AsRef<ParamSpec>, value: &Value, )

Sets the property of a child of the element. Specifically, the property corresponding to the pspec used in add_child_property() is set to value. Read more
source§

fn set_child_property_full( &self, property_name: &str, value: &Value, ) -> Result<(), Error>

Sets the property of a child of the element. Read more
source§

fn set_duration(&self, duration: impl Into<Option<ClockTime>>) -> bool

Sets duration for the element. Read more
source§

fn set_inpoint(&self, inpoint: ClockTime) -> bool

Sets in-point for the element. If the new in-point is above the current max-duration of the element, this method will fail. Read more
source§

fn set_max_duration(&self, maxduration: impl Into<Option<ClockTime>>) -> bool

Sets max-duration for the element. If the new maximum duration is below the current in-point of the element, this method will fail. Read more
source§

fn set_name(&self, name: Option<&str>) -> Result<(), BoolError>

Sets the name for the element. If None is given for name, then the library will instead generate a new name based on the type name of the element, such as the name “uriclip3” for a UriClip, and will set that name instead. Read more
source§

fn set_parent( &self, parent: &impl IsA<TimelineElement>, ) -> Result<(), BoolError>

Sets the parent for the element. Read more
source§

fn set_priority(&self, priority: u32) -> bool

👎Deprecated: Since 1.10
Sets the priority of the element within the containing layer. Read more
source§

fn set_start(&self, start: ClockTime) -> bool

Sets start for the element. If the element has a parent, this will also move its siblings with the same shift. Read more
source§

fn set_timeline(&self, timeline: &impl IsA<Timeline>) -> Result<(), BoolError>

Sets the timeline of the element. Read more
source§

fn trim(&self, start: ClockTime) -> Result<(), BoolError>

Edits the start time of an element within its timeline in trim mode. See edit() with EditMode::Trim and Edge::Start. Read more
source§

fn in_point(&self) -> u64

The initial offset to use internally when outputting content (in nanoseconds, but in the time coordinates of the internal content). Read more
source§

fn set_in_point(&self, in_point: u64)

The initial offset to use internally when outputting content (in nanoseconds, but in the time coordinates of the internal content). Read more
source§

fn is_serialize(&self) -> bool

Whether the element should be serialized.
source§

fn set_serialize(&self, serialize: bool)

Whether the element should be serialized.
source§

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

Emitted when the element has a new child property registered. See add_child_property(). Read more
source§

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

Emitted when the element has a child property unregistered. See remove_child_property(). Read more
source§

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

Emitted when a child of the element has one of its registered properties set. See add_child_property(). Note that unlike notify, a child property name can not be used as a signal detail. Read more
source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

👎Deprecated: Since 1.10
source§

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

source§

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

source§

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