diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index 44d7930582..262af426f3 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -6,6 +6,12 @@ ges_init +
+ges-utils +Utilities + +
+
ges-track GESTrack diff --git a/ges/ges-custom-timeline-source.h b/ges/ges-custom-timeline-source.h index a4d0e632cb..40ec1f0d95 100644 --- a/ges/ges-custom-timeline-source.h +++ b/ges/ges-custom-timeline-source.h @@ -64,14 +64,25 @@ typedef gboolean (*FillTrackObjectUserFunc) (GESTimelineObject * object, 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; }; diff --git a/ges/ges-simple-timeline-layer.c b/ges/ges-simple-timeline-layer.c index 4e4131e1b6..b14ed23f2e 100644 --- a/ges/ges-simple-timeline-layer.c +++ b/ges/ges-simple-timeline-layer.c @@ -23,7 +23,14 @@ * @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" @@ -171,6 +178,11 @@ gstl_recalculate (GESSimpleTimelineLayer * self) * 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. * diff --git a/ges/ges-simple-timeline-layer.h b/ges/ges-simple-timeline-layer.h index 3042e9071e..8111510370 100644 --- a/ges/ges-simple-timeline-layer.h +++ b/ges/ges-simple-timeline-layer.h @@ -44,6 +44,11 @@ G_BEGIN_DECLS #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; @@ -54,8 +59,15 @@ struct _GESSimpleTimelineLayer { gboolean adding_object; }; +/** + * GESSimpleTimelineLayerClass: + * @parent_class: parent class + * + */ + struct _GESSimpleTimelineLayerClass { GESTimelineLayerClass parent_class; + /*< private >*/ }; GType ges_simple_timeline_layer_get_type (void); diff --git a/ges/ges-timeline-file-source.c b/ges/ges-timeline-file-source.c index 8c39aa24c3..c0f1c9365e 100644 --- a/ges/ges-timeline-file-source.c +++ b/ges/ges-timeline-file-source.c @@ -20,7 +20,10 @@ /** * 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" diff --git a/ges/ges-timeline-file-source.h b/ges/ges-timeline-file-source.h index 8426994f84..a0ad51567a 100644 --- a/ges/ges-timeline-file-source.h +++ b/ges/ges-timeline-file-source.h @@ -45,6 +45,10 @@ G_BEGIN_DECLS #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; @@ -61,8 +65,15 @@ struct _GESTimelineFileSource { GESTrackType supportedformats; }; +/** + * GESTimelineFileSourceClass: + * @parent_class: parent class + */ + struct _GESTimelineFileSourceClass { GESTimelineSourceClass parent_class; + + /*< public >*/ }; GType ges_tl_filesource_get_type (void); diff --git a/ges/ges-timeline-layer.c b/ges/ges-timeline-layer.c index 663ddb1775..d4b06da431 100644 --- a/ges/ges-timeline-layer.c +++ b/ges/ges-timeline-layer.c @@ -22,7 +22,10 @@ * 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" @@ -110,7 +113,9 @@ ges_timeline_layer_class_init (GESTimelineLayerClass * klass) * 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", diff --git a/ges/ges-timeline-layer.h b/ges/ges-timeline-layer.h index d8191a08f0..0bef229932 100644 --- a/ges/ges-timeline-layer.h +++ b/ges/ges-timeline-layer.h @@ -43,22 +43,33 @@ G_BEGIN_DECLS #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; diff --git a/ges/ges-timeline-object.c b/ges/ges-timeline-object.c index e409372818..4e9ed9b082 100644 --- a/ges/ges-timeline-object.c +++ b/ges/ges-timeline-object.c @@ -22,7 +22,7 @@ * 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. */ diff --git a/ges/ges-timeline-object.h b/ges/ges-timeline-object.h index c7495470f7..fc47297701 100644 --- a/ges/ges-timeline-object.h +++ b/ges/ges-timeline-object.h @@ -115,7 +115,7 @@ typedef GESTrackObject* (*CreateTrackObjectFunc) (GESTimelineObject * object, /** * 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. */ diff --git a/ges/ges-timeline-pipeline.h b/ges/ges-timeline-pipeline.h index 04e1f7b00f..f378419ad4 100644 --- a/ges/ges-timeline-pipeline.h +++ b/ges/ges-timeline-pipeline.h @@ -62,6 +62,11 @@ typedef enum { TIMELINE_MODE_SMART_RENDER = 1 << 3 } GESPipelineFlags; +/** + * GESTimelinePipeline: + * + */ + struct _GESTimelinePipeline { GstPipeline parent; @@ -79,8 +84,15 @@ struct _GESTimelinePipeline { GstEncodingProfile *profile; }; +/** + * GESTimelinePipelineClass: + * @parent_class: parent class + * + */ + struct _GESTimelinePipelineClass { GstPipelineClass parent_class; + /* */ }; GType ges_timeline_pipeline_get_type (void); diff --git a/ges/ges-timeline-source.h b/ges/ges-timeline-source.h index 2420ac2b22..b5b25ce313 100644 --- a/ges/ges-timeline-source.h +++ b/ges/ges-timeline-source.h @@ -44,12 +44,24 @@ G_BEGIN_DECLS #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); diff --git a/ges/ges-timeline-transition.h b/ges/ges-timeline-transition.h index 4a612a1ad7..330b6557d2 100644 --- a/ges/ges-timeline-transition.h +++ b/ges/ges-timeline-transition.h @@ -43,13 +43,26 @@ G_BEGIN_DECLS #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); diff --git a/ges/ges-timeline.c b/ges/ges-timeline.c index 930a0a2b67..589a62ee48 100644 --- a/ges/ges-timeline.c +++ b/ges/ges-timeline.c @@ -27,7 +27,7 @@ * 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. */ diff --git a/ges/ges-timeline.h b/ges/ges-timeline.h index e62cc52fd1..b8c4b4050e 100644 --- a/ges/ges-timeline.h +++ b/ges/ges-timeline.h @@ -47,7 +47,7 @@ G_BEGIN_DECLS /** * GESTimeline: - * @tracks: a list of #GESTrack + * */ struct _GESTimeline { GstBin parent; @@ -64,9 +64,16 @@ struct _GESTimeline { 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); diff --git a/ges/ges-track-filesource.h b/ges/ges-track-filesource.h index 84573ebf5e..ddf89c4b77 100644 --- a/ges/ges-track-filesource.h +++ b/ges/ges-track-filesource.h @@ -43,7 +43,11 @@ G_BEGIN_DECLS #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; @@ -51,8 +55,15 @@ struct _GESTrackFileSource { gchar *uri; }; +/** + * GESTrackFileSourceClass + * @parent_class: parent class + */ + struct _GESTrackFileSourceClass { GESTrackObjectClass parent_class; + + /* */ }; GType ges_track_filesource_get_type (void); diff --git a/ges/ges-track-object.h b/ges/ges-track-object.h index cc5df07ed8..6b36da6b79 100644 --- a/ges/ges-track-object.h +++ b/ges/ges-track-object.h @@ -120,6 +120,7 @@ struct _GESTrackObject { /** * 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 diff --git a/ges/ges-track-source.h b/ges/ges-track-source.h index fb4ba0998f..89b164e5ce 100644 --- a/ges/ges-track-source.h +++ b/ges/ges-track-source.h @@ -44,10 +44,27 @@ G_BEGIN_DECLS #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 { + /* */ 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; }; @@ -59,4 +76,3 @@ GESTrackSource* ges_track_source_new (void); G_END_DECLS #endif /* _GES_TRACK_SOURCE */ - diff --git a/ges/ges-track-transition.c b/ges/ges-track-transition.c index 139da68a19..2696d688b7 100644 --- a/ges/ges-track-transition.c +++ b/ges/ges-track-transition.c @@ -18,6 +18,12 @@ * 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" diff --git a/ges/ges-track-transition.h b/ges/ges-track-transition.h index 716db094ee..a2e6e18c8d 100644 --- a/ges/ges-track-transition.h +++ b/ges/ges-track-transition.h @@ -49,16 +49,37 @@ G_BEGIN_DECLS (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; @@ -66,8 +87,14 @@ struct _GESTrackTransition GstInterpolationControlSource *a_bcontrol_source; }; +/** + * GESTrackTransitionClass + * @parent_class: parent class + */ + struct _GESTrackTransitionClass { GESTrackObjectClass parent_class; + /* */ }; GType ges_track_transition_get_type (void); diff --git a/ges/ges-track.h b/ges/ges-track.h index ab83ca8230..d6c2e29f6c 100644 --- a/ges/ges-track.h +++ b/ges/ges-track.h @@ -72,6 +72,12 @@ typedef enum { GES_TRACK_TYPE_CUSTOM = 1 << 4, } GESTrackType; +/** + * GESTrack: + * @type: a #GESTrackType indicting the basic type of the track. + * + */ + struct _GESTrack { GstBin parent; @@ -87,6 +93,11 @@ struct _GESTrack { GstPad * srcpad; /* The source GhostPad */ }; +/** + * GESTrackClass: + * @parent_class: parent class + */ + struct _GESTrackClass { GstBinClass parent_class; };