GESTrack

GESTrack — Composition of objects

Synopsis

#include <ges/ges.h>

                    GESTrack;
GstElement *        (*GESCreateElementForGapFunc)       (GESTrack *track);
GESTrack *          ges_track_audio_raw_new             (void);
GESTrack *          ges_track_video_raw_new             (void);
GESTrack *          ges_track_new                       (GESTrackType type,
                                                         GstCaps *caps);
gboolean            ges_track_add_element               (GESTrack *track,
                                                         GESTrackElement *object);
gboolean            ges_track_remove_element            (GESTrack *track,
                                                         GESTrackElement *object);
void                ges_track_set_caps                  (GESTrack *track,
                                                         const GstCaps *caps);
const GstCaps *     ges_track_get_caps                  (GESTrack *track);
gboolean            ges_track_enable_update             (GESTrack *track,
                                                         gboolean enabled);
GList *             ges_track_get_elements              (GESTrack *track);
gboolean            ges_track_is_updating               (GESTrack *track);
void                ges_track_set_create_element_for_gap_func
                                                        (GESTrack *track,
                                                         GESCreateElementForGapFunc func);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstElement
                     +----GstBin
                           +----GESTrack

Implemented Interfaces

GESTrack implements GstChildProxy and GESMetaContainer.

Properties

  "caps"                     GstCaps*              : Read / Write / Construct
  "duration"                 guint64               : Read
  "track-type"               GESTrackType          : Read / Write / Construct Only

Signals

  "track-element-added"                            : Run First
  "track-element-removed"                          : Run First

Description

Corresponds to one output format (i.e. audio OR video).

Contains the compatible TrackElement(s).

Wraps GNonLin's 'gnlcomposition' element.

Details

GESTrack

typedef struct {
  /* READ-ONLY */
  GESTrackType type;
} GESTrack;

GESTrackType type;

a GESTrackType indicting the basic type of the track.

GESCreateElementForGapFunc ()

GstElement *        (*GESCreateElementForGapFunc)       (GESTrack *track);

A function that will be called to create the GstElement that will be used as a source to fill the gaps in track.

track :

the GESTrack

Returns :

A GstElement (must be a source) that will be used to fill the gaps (periods of time in track that containes no source).

ges_track_audio_raw_new ()

GESTrack *          ges_track_audio_raw_new             (void);

Creates a new GESTrack of type GES_TRACK_TYPE_AUDIO and with generic raw audio caps ("audio/x-raw");

Returns :

A new GESTrack.

ges_track_video_raw_new ()

GESTrack *          ges_track_video_raw_new             (void);

Creates a new GESTrack of type GES_TRACK_TYPE_VIDEO and with generic raw video caps ("video/x-raw");

Returns :

A new GESTrack.

ges_track_new ()

GESTrack *          ges_track_new                       (GESTrackType type,
                                                         GstCaps *caps);

Creates a new GESTrack with the given type and caps.

The newly created track will steal a reference to the caps. If you wish to use those caps elsewhere, you will have to take an extra reference.

type :

The type of track

caps :

The caps to restrict the output of the track to. [transfer full]

Returns :

A new GESTrack.

ges_track_add_element ()

gboolean            ges_track_add_element               (GESTrack *track,
                                                         GESTrackElement *object);

Adds the given object to the track. Sets the object's controlling track, and thus takes ownership of the object.

An object can only be added to one track.

track :

a GESTrack

object :

the GESTrackElement to add. [transfer full]

Returns :

TRUE if the object was properly added. FALSE if the track does not want to accept the object.

ges_track_remove_element ()

gboolean            ges_track_remove_element            (GESTrack *track,
                                                         GESTrackElement *object);

Removes the object from the track and unparents it. Unparenting it means the reference owned by track on the object will be removed. If you wish to use the object after this function, make sure you call g_object_ref() before removing it from the track.

track :

a GESTrack

object :

the GESTrackElement to remove

Returns :

TRUE if the object was removed, else FALSE if the track could not remove the object (like if it didn't belong to the track).

ges_track_set_caps ()

void                ges_track_set_caps                  (GESTrack *track,
                                                         const GstCaps *caps);

Sets the given caps on the track.

track :

a GESTrack

caps :

the GstCaps to set

ges_track_get_caps ()

const GstCaps *     ges_track_get_caps                  (GESTrack *track);

Get the GstCaps this track is configured to output.

track :

a GESTrack

Returns :

The GstCaps this track is configured to output.

ges_track_enable_update ()

gboolean            ges_track_enable_update             (GESTrack *track,
                                                         gboolean enabled);

Control whether the track is updated for every change happening within.

Users will want to use this method with FALSE before doing lots of changes, and then call again with TRUE for the changes to take effect in one go.

track :

a GESTrack

enabled :

Whether the track should update on every change or not.

Returns :

TRUE if the update status could be changed, else FALSE.

ges_track_get_elements ()

GList *             ges_track_get_elements              (GESTrack *track);

Gets the GESTrackElement contained in track

track :

a GESTrack

Returns :

the list of GESTrackElement present in the Track sorted by priority and start. [transfer full][element-type GESTrackElement]

ges_track_is_updating ()

gboolean            ges_track_is_updating               (GESTrack *track);

Get whether the track is updated for every change happening within or not.

track :

a GESTrack

Returns :

TRUE if track is updating on every changes, else FALSE.

ges_track_set_create_element_for_gap_func ()

void                ges_track_set_create_element_for_gap_func
                                                        (GESTrack *track,
                                                         GESCreateElementForGapFunc func);

Sets the function that should be used to create the GstElement used to fill gaps. To avoid to provide such a function we advice you to use the ges_track_audio_raw_new and ges_track_video_raw_new constructor when possible.

track :

a GESTrack

func :

The GESCreateElementForGapFunc that will be used to create GstElement to fill gaps. [scope notified]

Property Details

The "caps" property

  "caps"                     GstCaps*              : Read / Write / Construct

Caps used to filter/choose the output stream. This is generally set to a generic set of caps like 'video/x-raw' for raw video.

Default value: GST_CAPS_ANY.


The "duration" property

  "duration"                 guint64               : Read

Current duration of the track

Default value: O

Default value: 1000000000


The "track-type" property

  "track-type"               GESTrackType          : Read / Write / Construct Only

Type of stream the track outputs. This is used when creating the GESTrack to specify in generic terms what type of content will be outputted.

It also serves as a 'fast' way to check what type of data will be outputted from the GESTrack without having to actually check the GESTrack's caps property.

Default value: GES_TRACK_TYPE_CUSTOM

Signal Details

The "track-element-added" signal

void                user_function                      (GESTrack        *object,
                                                        GESTrackElement *effect,
                                                        gpointer         user_data)      : Run First

Will be emitted after a track element was added to the track.

object :

the GESTrack

effect :

the GESTrackElement that was added.

user_data :

user data set when the signal handler was connected.

Since 0.10.2


The "track-element-removed" signal

void                user_function                      (GESTrack        *object,
                                                        GESTrackElement *effect,
                                                        gpointer         user_data)      : Run First

Will be emitted after a track element was removed from the track.

object :

the GESTrack

effect :

the GESTrackElement that was removed.

user_data :

user data set when the signal handler was connected.

Since 0.10.2