[][src]Trait gstreamer_editing_services::ClipExt

pub trait ClipExt: 'static {
    fn add_asset<P: IsA<Asset>>(
        &self,
        asset: &P
    ) -> Result<TrackElement, BoolError>;
fn find_track_element<P: IsA<Track>>(
        &self,
        track: Option<&P>,
        type_: Type
    ) -> Option<TrackElement>;
fn find_track_elements<P: IsA<Track>>(
        &self,
        track: Option<&P>,
        track_type: TrackType,
        type_: Type
    ) -> Vec<TrackElement>;
fn get_layer(&self) -> Option<Layer>;
fn get_supported_formats(&self) -> TrackType;
fn get_top_effect_index<P: IsA<BaseEffect>>(&self, effect: &P) -> i32;
fn get_top_effect_position<P: IsA<BaseEffect>>(&self, effect: &P) -> i32;
fn get_top_effects(&self) -> Vec<TrackElement>;
fn move_to_layer<P: IsA<Layer>>(&self, layer: &P) -> Result<(), BoolError>;
fn set_supported_formats(&self, supportedformats: TrackType);
fn set_top_effect_index<P: IsA<BaseEffect>>(
        &self,
        effect: &P,
        newindex: u32
    ) -> Result<(), BoolError>;
fn set_top_effect_priority<P: IsA<BaseEffect>>(
        &self,
        effect: &P,
        newpriority: u32
    ) -> Result<(), BoolError>;
fn split(&self, position: u64) -> Result<Clip, BoolError>;
fn connect_property_layer_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_property_supported_formats_notify<F: Fn(&Self) + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; }

Trait containing all Clip methods.

Implementors

Clip

Required methods

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

Extracts a TrackElement from asset and adds it to the self. Should only be called in order to add operations to a Clip, ni other cases TrackElement are added automatically when adding the Clip/Asset to a layer.

Takes a reference on track_element.

asset

a Asset with GES_TYPE_TRACK_ELEMENT as extractable_type

Returns

Created TrackElement or NULL if an error happened

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

Finds the TrackElement controlled by self that is used in track. You may optionally specify a GType to further narrow search criteria.

Note: If many objects match, then the one with the highest priority will be returned.

track

a Track or NULL

type_

a glib::Type indicating the type of track element you are looking for or G_TYPE_NONE if you do not care about the track type.

Returns

The TrackElement used by track, else None. Unref after usage

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

Finds all the TrackElement controlled by self that is used in track. You may optionally specify a GType to further narrow search criteria.

track

a Track or NULL

track_type

a TrackType indicating the type of tracks in which elements should be searched.

type_

a glib::Type indicating the type of track element you are looking for or G_TYPE_NONE if you do not care about the track type.

Returns

a glib::List of the TrackElement contained in self. The refcount of the objects will be increased. The user will have to unref each TrackElement and free the glib::List.

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

Get the Layer to which this clip belongs.

Returns

The Layer where this self is being used, or None if it is not used on any layer. The caller should unref it usage.

fn get_supported_formats(&self) -> TrackType

Get the formats supported by self.

Returns

The formats supported by self.

fn get_top_effect_index<P: IsA<BaseEffect>>(&self, effect: &P) -> i32

Gets the index position of an effect.

effect

The BaseEffect we want to get the top index from

Returns

The top index of the effect, -1 if something went wrong.

fn get_top_effect_position<P: IsA<BaseEffect>>(&self, effect: &P) -> i32

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

Get effects applied on self

Returns

a glib::List of the BaseEffect that are applied on self order by ascendant priorities. The refcount of the objects will be increased. The user will have to unref each BaseEffect and free the glib::List.

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

Moves self to layer. If self is not in any layer, it adds it to layer, else, it removes it from its current layer, and adds it to layer.

layer

the new Layer

Returns

true if self could be moved false otherwize

fn set_supported_formats(&self, supportedformats: TrackType)

Sets the formats supported by the file.

supportedformats

the TrackType defining formats supported by self

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

This is a convenience method that lets you set the index of a top effect.

effect

The BaseEffect to move

newindex

the new index at which to move the effect inside this Clip

Returns

true if effect was successfuly moved, false otherwise.

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

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

The function modifies self, and creates another Clip so we have two clips at the end, splitted at the time specified by position, as a position in the timeline (not in the clip to be split). For example, if ges_clip_split is called on a 4-second clip playing from 0:01.00 until 0:05.00, with a split position of 0:02.00, this will result in one clip of 1 second and one clip of 3 seconds, not in two clips of 2 seconds.

The newly created clip will be added to the same layer as self is in. This implies that self must be in a Layer for the operation to be possible.

This method supports clips playing at a different tempo than one second per second. For example, splitting a clip with a Effect 'pitch tempo=1.5' four seconds after it starts, will set the inpoint of the new clip to six seconds after that of the clip to split. For this, the rate-changing property must be registered using EffectClass::register_rate_property; for the 'pitch' plugin, this is already done.

position

a gst::ClockTime representing the timeline position at which to split

Returns

The newly created Clip resulting from the splitting or None if the clip can't be split.

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

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

Loading content...

Implementors

impl<O: IsA<Clip>> ClipExt for O[src]

Loading content...