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 Asset in the GStreamer Editing Services represents a resources that can be used. In particular, any class that implements the Extractable interface may have some associated assets with a corresponding property::Asset::extractable-type, from which its objects can be extracted using AssetExt::extract(). Some examples would be Clip, GESFormatter and TrackElement.

BaseEffect

A 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

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 property::TimelineElement::start and property::TimelineElement::duration in their tracks, which will match the property::TimelineElement::start and property::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 Container is a timeline element that controls other TimelineElement-s, which are its children. In particular, it is responsible for maintaining the relative property::TimelineElement::start and property::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 glib::Object that implements the Extractable interface can be extracted from a Asset using AssetExt::extract().

Group

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

Layer

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

OperationClip

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

Pipeline

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

PipelineFlags

The various modes a Pipeline can be configured to.

Project

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

Timeline

Timeline is the central object for any multimedia timeline.

TimelineElement

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

Track

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

TrackElement

A TrackElement is a TimelineElement that specifically belongs to a single Track of its property::TimelineElement::timeline. Its property::TimelineElement::start and property::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 TrackElementExt::nleobject(), and its property::TimelineElement::start, property::TimelineElement::duration, property::TimelineElement::in-point, property::TimelineElement::priority and property::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 AUDIO, VIDEO or TEXT, the user of the Track must set the type to 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 GESSource for a media file.

Enums

Edge

The edges of an object contain in a Timeline or Track

EditMode

When a single timeline element is edited within its timeline at some position, using TimelineElementExt::edit(), depending on the edit mode, its property::TimelineElement::start, property::TimelineElement::duration or property::TimelineElement::in-point will be adjusted accordingly. In addition, any clips may change property::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