|  |  |  | GStreamer Editing Services 0.10.0.4 Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | ||||
| GESTimelineObjectGESTimelineObject — Base Class for objects in a GESTimelineLayer | 
#include <ges/ges.h>
                    GESTimelineObject;
                    GESTimelineObjectClass;
GESTrackObject *    (*GESCreateTrackObjectFunc)         (GESTimelineObject *object,
                                                         GESTrack *track);
gboolean            (*GESCreateTrackObjectsFunc)        (GESTimelineObject *object,
                                                         GESTrack *track);
gboolean            (*GESFillTrackObjectFunc)           (GESTimelineObject *object,
                                                         GESTrackObject *trobject,
                                                         GstElement *gnlobj);
void                ges_timeline_object_set_inpoint     (GESTimelineObject *object,
                                                         guint64 inpoint);
void                ges_timeline_object_set_start       (GESTimelineObject *object,
                                                         guint64 start);
void                ges_timeline_object_set_duration    (GESTimelineObject *object,
                                                         guint64 duration);
GESTimelineLayer *  ges_timeline_object_get_layer       (GESTimelineObject *object);
GESTrackObject *    ges_timeline_object_find_track_object
                                                        (GESTimelineObject *object,
                                                         GESTrack *track,
                                                         GType type);
gboolean            ges_timeline_object_add_track_object
                                                        (GESTimelineObject *object,
                                                         GESTrackObject *trobj);
GObject +----GInitiallyUnowned +----GESTimelineObject +----GESTimelineSource +----GESTimelineOperation
"duration" guint64 : Read / Write "height" guint : Read "in-point" guint64 : Read / Write "layer" GESTimelineLayer* : Read "priority" guint : Read / Write "start" guint64 : Read / Write
A GESTimelineObject is a 'natural' object which controls one or more GESTrackObject(s) in one or more GESTrack(s).
Keeps a reference to the GESTrackObject(s) it created and sets/updates their properties.
typedef struct _GESTimelineObject GESTimelineObject;
The GESTimelineObject base class.
typedef struct {
  GESCreateTrackObjectFunc create_track_object;
  GESCreateTrackObjectsFunc create_track_objects;
  /* FIXME : might need a release_track_object */
  GESFillTrackObjectFunc  fill_track_object;
  gboolean need_fill_track;
} GESTimelineObjectClass;
Subclasses can override the create_track_object and fill_track_object methods.
| GESCreateTrackObjectFunc  | method to create a single GESTrackObject for a given GESTrack. | 
| GESCreateTrackObjectsFunc  | method to create multiple GESTrackObjects for a GESTrack. | 
| GESFillTrackObjectFunc  | method to fill an associated GESTrackObject. | 
| gboolean  | Set to TRUE if fill_track_objectneeds to be called. | 
GESTrackObject * (*GESCreateTrackObjectFunc) (GESTimelineObject *object,GESTrack *track);
Creates the 'primary' track object for this object.
Subclasses should implement this method if they only provide a single GESTrackObject per track.
If the subclass needs to create more than one GESTrackObject for a given track, then it should implement the 'create_track_objects' method instead.
The implementer of this function shall return the proper GESTrackObject
that should be controlled by object for the given track.
The returned GESTrackObject will be automatically added to the list of objects controlled by the GESTimelineObject.
| 
 | a GESTimelineObject | 
| 
 | a GESTrack | 
| Returns : | the GESTrackObject to be used, or NULLif it can't provide one
for the giventrack. | 
gboolean (*GESCreateTrackObjectsFunc) (GESTimelineObject *object,GESTrack *track);
Create all track objects this object handles for this type of track.
Subclasses should implement this method if they potentially need to return more than one GESTrackObject(s) for a given GESTrack.
For each object created, the subclass must call
ges_timeline_object_add_track_object() with the newly created object
and provided track.
| 
 | a GESTimelineObject | 
| 
 | a GESTrack | 
| Returns : | TRUEon successFALSEon failure. | 
gboolean (*GESFillTrackObjectFunc) (GESTimelineObject *object,GESTrackObject *trobject,GstElement *gnlobj);
A function that will be called when the GNonLin object of a corresponding track object needs to be filled.
The implementer of this function shall add the proper GstElement to gnlobj
using gst_bin_add().
| 
 | the GESTimelineObject controlling the track object | 
| 
 | the GESTrackObject | 
| 
 | the GNonLin object that needs to be filled. | 
| Returns : | TRUE if the implementer succesfully filled the gnlobj, else FALSE. | 
void ges_timeline_object_set_inpoint (GESTimelineObject *object,guint64 inpoint);
Set the in-point, that is the moment at which the object will start
outputting data from its contents.
| 
 | a GESTimelineObject | 
| 
 | the in-point in GstClockTime | 
void ges_timeline_object_set_start (GESTimelineObject *object,guint64 start);
Set the position of the object in its containing layer
| 
 | a GESTimelineObject | 
| 
 | the position in GstClockTime | 
void ges_timeline_object_set_duration (GESTimelineObject *object,guint64 duration);
Set the duration of the object
| 
 | a GESTimelineObject | 
| 
 | the duration in GstClockTime | 
GESTimelineLayer *  ges_timeline_object_get_layer       (GESTimelineObject *object);
Note: The reference count of the returned GESTimelineLayer will be increased, The user is responsible for unreffing it.
| 
 | a GESTimelineObject | 
| Returns : | The GESTimelineLayer where this objectis being used, NULL if 
it is not used on any layer. [transfer full] | 
GESTrackObject * ges_timeline_object_find_track_object (GESTimelineObject *object,GESTrack *track,GType type);
Finds the GESTrackObject controlled by object that is used in track. You
may optionally specify a GType to further narrow search criteria.
Note: The reference count of the returned GESTrackObject will be increased, unref when done with it.
| 
 | a GESTimelineObject | 
| 
 | a GESTrack or NULL | 
| 
 | a GType indicating the type of track object you are looking
for or G_TYPE_NONEif you do not care about the track type. | 
| Returns : | The GESTrackObject used by track, else NULL. [transfer full] | 
gboolean ges_timeline_object_add_track_object (GESTimelineObject *object,GESTrackObject *trobj);
Add a track object to the timeline object. Should only be called by subclasses implementing the create_track_objects (plural) vmethod.
Takes a reference on trobj.
| 
 | a GESTimelineObject | 
| 
 | the GESTrackObject | 
| Returns : | TRUEon success,FALSEon failure. | 
"duration" property"duration" guint64 : Read / Write
The duration (in nanoseconds) which will be used in the container GESTrack starting from 'in-point'.
Default value: 18446744073709551615
"height" property"height" guint : Read
The span of layer priorities which this object occupies.
Default value: 1
"in-point" property"in-point" guint64 : Read / Write
The in-point at which this GESTimelineObject will start outputting data from its contents (in nanoseconds).
Ex : an in-point of 5 seconds means that the first outputted buffer will be the one located 5 seconds in the controlled resource.
Default value: 0
"layer" property"layer" GESTimelineLayer* : Read
The GESTimelineLayer where this object is being used.
"priority" property"priority" guint : Read / Write
The layer priority of the timeline object.
Default value: 0
"start" property"start" guint64 : Read / Write
The position of the object in the GESTimelineLayer (in nanoseconds).
Default value: 0