ges_init
</SECTION>
+<SECTION>
+<FILE>ges-utils</FILE>
+<TITLE>Utilities</TITLE>
+
+</SECTION>
+
<SECTION>
<FILE>ges-track</FILE>
<TITLE>GESTrack</TITLE>
GstElement * gnlobj,
gpointer user_data);
+/**
+ * GESCustomTimelineSource:
+ *
+ */
struct _GESCustomTimelineSource {
GESTimelineSource parent;
+ /*< private >*/
FillTrackObjectUserFunc filltrackobjectfunc;
gpointer user_data;
};
+/**
+ * GESCustomTimelineSourceClass:
+ * @parent_class: parent class
+ *
+ */
+
struct _GESCustomTimelineSourceClass {
GESTimelineSourceClass parent_class;
};
* @short_description: High-level #GESTimelineLayer
*
* #GESSimpleTimelineLayer allows using #GESTimelineObject(s) with a list-like
- * API.
+ * API. Clients can add any type of GESTimelineObject to a
+ * GESSimpleTimelineLayer, and the layer will automatically compute the
+ * appropriate start times.
+
+ * Users should be aware that GESTimelineTransition objects are considered to
+ * have a negative duration for the purposes of positioning GESTimelineSource
+ * objects (i.e., adding a GESTimelineTransition creates an overlap between
+ * the two adjacent sources
*/
#include "ges-internal.h"
* Adds the object at the given position in the layer. The position is where
* the object will be inserted. To put the object before all objects, use
* position 0. To put after all objects, use position -1.
+ *
+ * When adding transitions, it is important that the adjacent objects
+ * (objects at position, and position + 1) be (1) A derivative of
+ * GESTimelineSource or other non-transition, and (2) have a duration at least
+ * as long as the duration of the transition.
*
* The layer will steal a reference to the provided object.
*
#define GES_SIMPLE_TIMELINE_LAYER_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_SIMPLE_TIMELINE_LAYER, GESSimpleTimelineLayerClass))
+/**
+ * GESSimpleTimelineLayer:
+ *
+ */
+
struct _GESSimpleTimelineLayer {
GESTimelineLayer parent;
gboolean adding_object;
};
+/**
+ * GESSimpleTimelineLayerClass:
+ * @parent_class: parent class
+ *
+ */
+
struct _GESSimpleTimelineLayerClass {
GESTimelineLayerClass parent_class;
+ /*< private >*/
};
GType ges_simple_timeline_layer_get_type (void);
/**
* SECTION:ges-timeline-filesource
- * @short_description:
+ * @short_description: An object for manipulating media files in a GESTimeline
+ *
+ * Represents all the output treams from a particular uri. It is assumed that
+ * the URI points to a file of some type.
*/
#include "ges-internal.h"
#define GES_TIMELINE_FILE_SOURCE_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_FILE_SOURCE, GESTimelineFileSourceClass))
+/**
+ * GESTimelineSource:
+ *
+ */
struct _GESTimelineFileSource {
GESTimelineSource parent;
GESTrackType supportedformats;
};
+/**
+ * GESTimelineFileSourceClass:
+ * @parent_class: parent class
+ */
+
struct _GESTimelineFileSourceClass {
GESTimelineSourceClass parent_class;
+
+ /*< public >*/
};
GType ges_tl_filesource_get_type (void);
* SECTION:ges-timeline-layer
* @short_description: Non-overlaping sequence of #GESTimelineObject
*
- * Responsible for the ordering of the various contained TimelineObject(s)
+ * Responsible for the ordering of the various contained TimelineObject(s). A
+ * timeline layer has a "priority" property, which is used to manage the
+ * priorities of individual TimelineObjects. Two layers should not have the
+ * same priority within a given timeline.
*/
#include "ges-internal.h"
* GESTimelineLayer:priority
*
* The priority of the layer in the #GESTimeline. 0 is the highest
- * priority.
+ * priority. Conceptually, a #GESTimeline is a stack of GESTimelineLayers,
+ * and the priority of the layer represents its position in the stack. Two
+ * layers should not have the same priority within a given GESTimeline.
*/
g_object_class_install_property (object_class, PROP_PRIORITY,
g_param_spec_uint ("priority", "Priority",
#define GES_TIMELINE_LAYER_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_LAYER, GESTimelineLayerClass))
+/**
+ * GESTimelineLayer:
+ * @timeline: the #GESTimeline where this layer is being used.
+ */
struct _GESTimelineLayer {
- GObject parent;
+ GObject parent;
+
+ /*< public >*/
GESTimeline *timeline; /* The timeline where this layer is being used
*/
+ /*< private >*/
GSList * objects_start; /* The TimelineObjects sorted by start and
* priority */
guint32 priority; /* The priority of the layer within the
* containing timeline */
- /*< private >*/
guint32 min_gnl_priority, max_gnl_priority;
};
+/**
+ * GESTimelineLayerClass:
+ * @parent_class: parent class
+ *
+ */
struct _GESTimelineLayerClass {
GObjectClass parent_class;
* SECTION:ges-timeline-object
* @short_description: Base Class for objects in a #GESTimelineLayer
*
- * Responsible for creating the #GESTrackObject(s) for given #GESTimelineTrack(s)
+ * Responsible for creating the #GESTrackObject(s) for given #GESTrack(s)
*
* Keeps a reference to the #GESTrackObject(s) it created and sets/updates their properties.
*/
/**
* GESTimelineObject:
- * @layer: the #GESTImelineLayer where this object is being used.
+ * @layer: the #GESTimelineLayer where this object is being used.
*
* The GESTimelineObject subclass. Subclasses can access these fields.
*/
TIMELINE_MODE_SMART_RENDER = 1 << 3
} GESPipelineFlags;
+/**
+ * GESTimelinePipeline:
+ *
+ */
+
struct _GESTimelinePipeline {
GstPipeline parent;
GstEncodingProfile *profile;
};
+/**
+ * GESTimelinePipelineClass:
+ * @parent_class: parent class
+ *
+ */
+
struct _GESTimelinePipelineClass {
GstPipelineClass parent_class;
+ /* <public> */
};
GType ges_timeline_pipeline_get_type (void);
#define GES_TIMELINE_SOURCE_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_SOURCE, GESTimelineSourceClass))
+/**
+ * GESTimelineSource:
+ *
+ */
+
struct _GESTimelineSource {
GESTimelineObject parent;
+ /*< public >*/
};
+/**
+ * GESTimelineSourceClass:
+ * @parent_class: parent class
+ */
+
struct _GESTimelineSourceClass {
GESTimelineObjectClass parent_class;
+ /*< public >*/
};
GType ges_timeline_source_get_type (void);
#define GES_TIMELINE_TRANSITION_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_TRANSITION, GESTimelineTransitionClass))
+/**
+ * GESTimelineTransition:
+ * @vtype: a #GEnumValue indicating the type of video transition to apply.
+ *
+ */
struct _GESTimelineTransition {
GESTimelineObject parent;
+ /*< public >*/
GEnumValue *vtype;
};
+/**
+ * GESTimelineTransitionClass:
+ * @parent_class: parent class
+ *
+ */
+
struct _GESTimelineTransitionClass {
GESTimelineObjectClass parent_class;
+ /*< public >*/
};
GType ges_timeline_transition_get_type (void);
* Contains a list of #GESTimelineLayer which users should use to arrange the
* various timeline objects through time.
*
- * The output type is determined by the #GESTimelineTrack that are set on
+ * The output type is determined by the #GESTrack that are set on
* the #GESTimeline.
*/
/**
* GESTimeline:
- * @tracks: a list of #GESTrack
+ *
*/
struct _GESTimeline {
GstBin parent;
gboolean async_pending;
};
+/**
+ * GESTimelineClass:
+ * @parent_class: parent class
+ */
+
struct _GESTimelineClass {
GstBinClass parent_class;
+ /*< private >*/
+
void (*track_added) (GESTimeline *timeline, GESTrack * track);
void (*track_removed) (GESTimeline *timeline, GESTrack * track);
void (*layer_added) (GESTimeline *timeline, GESTimelineLayer *layer);
#define GES_TRACK_FILESOURCE_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_FILESOURCE, GESTrackFileSourceClass))
-
+/**
+ * GESTrackFileSource
+ * @uri: #gchar *, the URI of the media file to play
+ *
+ */
struct _GESTrackFileSource {
GESTrackObject parent;
gchar *uri;
};
+/**
+ * GESTrackFileSourceClass
+ * @parent_class: parent class
+ */
+
struct _GESTrackFileSourceClass {
GESTrackObjectClass parent_class;
+
+ /* <public> */
};
GType ges_track_filesource_get_type (void);
/**
* GESTrackObjectClass:
+ * @parent_class: parent class
* @create_gnl_object: method to create the GNonLin container object.
*
* Subclasses can override the @create_gnl_object method to override what type
#define GES_TRACK_SOURCE_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_SOURCE, GESTrackSourceClass))
+/**
+ * GESTrackSource:
+ * @parent: parent
+ *
+ * Base class for single-media sources
+ *
+ */
+
struct _GESTrackSource {
+ /* <public> */
GESTrackObject parent;
};
+/**
+ * GESTrackSourceClass:
+ * @parent_class: the parent class
+ *
+ * Base class for track objects which produce data but do not consuem it.
+ *
+ */
+
struct _GESTrackSourceClass {
GESTrackObjectClass parent_class;
};
G_END_DECLS
#endif /* _GES_TRACK_SOURCE */
-
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:ges-track-transition
+ * @short_description: Concrete, track-level implemenation of audio and video
+ * transitinos.
+ */
+
#include "ges-internal.h"
#include "ges-track-object.h"
#include "ges-track-transition.h"
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TRANSITION,\
GESTrackTransitionClass)
+/**
+ * GESTrackTransition:
+ * @parent: parent
+ * @vtype: a #GEnumValue representing the type of transition to apply.
+ *
+ * Track level representation of a transition. Has a concrete implementation
+ * for both audio and video streams.
+ *
+ */
+
struct _GESTrackTransition
{
GESTrackObject parent;
- GstController *vcontroller;
- GstInterpolationControlSource *vcontrol_source;
+ /*< public >*/
+ /* given to to smpte alpha element */
GEnumValue *vtype;
+
+ /*< private >*/
+
+ /* these enable video interpolation */
+ GstController *vcontroller;
+ GstInterpolationControlSource *vcontrol_source;
+
+ /* these will be different depending on whether smptealpha or alpha element
+ * is used */
gdouble vstart_value;
gdouble vend_value;
+ /* these enable volume interpolation. Unlike video, both inputs are adjusted
+ * simultaneously */
GstController *a_acontroller;
GstInterpolationControlSource *a_acontrol_source;
GstInterpolationControlSource *a_bcontrol_source;
};
+/**
+ * GESTrackTransitionClass
+ * @parent_class: parent class
+ */
+
struct _GESTrackTransitionClass {
GESTrackObjectClass parent_class;
+ /* <public> */
};
GType ges_track_transition_get_type (void);
GES_TRACK_TYPE_CUSTOM = 1 << 4,
} GESTrackType;
+/**
+ * GESTrack:
+ * @type: a #GESTrackType indicting the basic type of the track.
+ *
+ */
+
struct _GESTrack {
GstBin parent;
GstPad * srcpad; /* The source GhostPad */
};
+/**
+ * GESTrackClass:
+ * @parent_class: parent class
+ */
+
struct _GESTrackClass {
GstBinClass parent_class;
};