Crate gstreamer_editing_services[][src]

Re-exports

pub use ffi;
pub use gio;
pub use glib;
pub use gst;
pub use gst_base;
pub use gst_pbutils;

Modules

prelude

Structs

Asset

A crate::Asset in the GStreamer Editing Services represents a resources that can be used. In particular, any class that implements the crate::Extractable interface may have some associated assets with a corresponding [crate::Asset:extractable-type], from which its objects can be extracted using crate::prelude::AssetExt::extract(). Some examples would be crate::Clip, [crate::Formatter] and crate::TrackElement.

BaseEffect

A crate::BaseEffect is some operation that applies an effect to the data it receives.

BaseTransitionClip

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

Clip

crate::Clip-s are the core objects of a crate::Layer. Each clip may exist in a single layer but may control several crate::TrackElement-s that span several crate::Track-s. A clip will ensure that all its children share the same [crate::TimelineElement:start] and [crate::TimelineElement:duration] in their tracks, which will match the [crate::TimelineElement:start] and [crate::TimelineElement: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.

Container

A crate::Container is a timeline element that controls other crate::TimelineElement-s, which are its children. In particular, it is responsible for maintaining the relative [crate::TimelineElement:start] and [crate::TimelineElement:duration] times of its children. Therefore, if a container is temporally adjusted or moved to a new layer, it may accordingly adjust and move its children. Similarly, a change in one of its children may prompt the parent to correspondingly change its siblings.

Effect

Currently we only support effects with N sinkpads and one single srcpad. Apart from gesaudiomixer and gescompositor which can be used as effects and where sinkpads will be requested as needed based on the timeline topology GES will always request at most one sinkpad per effect (when required).

Extractable

A crate::glib::object::Object that implements the crate::Extractable interface can be extracted from a crate::Asset using crate::prelude::AssetExt::extract().

Group

A crate::Group controls one or more crate::Container-s (usually crate::Clip-s, but it can also control other crate::Group-s). Its children must share the same crate::Timeline, but can otherwise lie in separate crate::Layer-s and have different timings.

Layer

crate::Layer-s are responsible for collecting and ordering crate::Clip-s.

OperationClip

Operations are any kind of object that both outputs AND consumes data.

Pipeline

A crate::Pipeline can take an audio-video crate::Timeline and conveniently link its crate::Track-s to an internal playsink element, for preview/playback, and an internal encodebin element, for rendering. You can switch between these modes using crate::prelude::GESPipelineExt::set_mode().

PipelineFlags

The various modes a crate::Pipeline can be configured to.

Project

The crate::Project is used to control a set of crate::Asset and is a crate::Asset with GES_TYPE_TIMELINE as extractable_type itself. That means that you can extract crate::Timeline from a project as followed:

Timeline

crate::Timeline is the central object for any multimedia timeline.

TimelineElement

A crate::TimelineElement will have some temporal extent in its corresponding [crate::TimelineElement:timeline], controlled by its [crate::TimelineElement:start] and [crate::TimelineElement:duration]. This determines when its content will be displayed, or its effect applied, in the timeline. Several objects may overlap within a given crate::Timeline, in which case their [crate::TimelineElement:priority] is used to determine their ordering in the timeline. Priority is mostly handled internally by crate::Layer-s and crate::Clip-s.

Track

A crate::Track acts an output source for a crate::Timeline. Each one essentially provides an additional crate::gst::Pad for the timeline, with [crate::Track:restriction-caps] capabilities. Internally, a track wraps an nlecomposition filtered by a capsfilter.

TrackElement

A crate::TrackElement is a crate::TimelineElement that specifically belongs to a single crate::Track of its [crate::TimelineElement:timeline]. Its [crate::TimelineElement:start] and [crate::TimelineElement: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 [crate::prelude::TrackElementExt::get_nleobject()], and its [crate::TimelineElement:start], [crate::TimelineElement:duration], [crate::TimelineElement:in-point], [crate::TimelineElement:priority] and [crate::TrackElement: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.

TrackType

Types of content handled by a track. If the content is not one of [Self::Audio], [Self::Video] or [Self::Text], the user of the crate::Track must set the type to [Self::Custom].

TransitionClip

Creates an object that mixes together the two underlying objects, A and B. The A object is assumed to have a higher prioirity (lower number) than the B object. At the transition in point, only A will be visible, and by the end only B will be visible.

UriClip

Represents all the output streams from a particular uri. It is assumed that the URI points to a file of some type.

UriClipAsset

Implements

UriSourceAsset

Asset to create a stream specific [crate::Source] for a media file.

Enums

Edge

The edges of an object contain in a crate::Timeline or crate::Track

EditMode

When a single timeline element is edited within its timeline at some position, using crate::prelude::TimelineElementExt::edit(), depending on the edit mode, its [crate::TimelineElement:start], [crate::TimelineElement:duration] or [crate::TimelineElement:in-point] will be adjusted accordingly. In addition, any clips may change [crate::Clip:layer].

VideoStandardTransitionType

Constants

NONE_ASSET
NONE_BASE_EFFECT
NONE_BASE_TRANSITION_CLIP
NONE_CLIP
NONE_CONTAINER
NONE_EFFECT
NONE_EXTRACTABLE
NONE_GROUP
NONE_LAYER
NONE_OPERATION_CLIP
NONE_PIPELINE
NONE_PROJECT
NONE_TIMELINE
NONE_TIMELINE_ELEMENT
NONE_TRACK
NONE_TRACK_ELEMENT
NONE_TRANSITION_CLIP
NONE_URI_CLIP
NONE_URI_CLIP_ASSET
NONE_URI_SOURCE_ASSET

Functions

deinit
init

Type Definitions

FrameNumber