This will give us margin for API expansion without breaking ABI.
The ABI restriction will only come in place once we do the first
official release (i.e. 0.x.0).
/*< private >*/
FillTrackObjectUserFunc filltrackobjectfunc;
gpointer user_data;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESCustomTimelineSourceClass {
GESTimelineSourceClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_cust_timeline_src_get_type (void);
gchar *data;
gsize length;
- gpointer _ges_reserved[GST_PADDING];
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
typedef gboolean (*GESFormatterCanLoadURIMethod) (gchar * uri);
GESFormatterSaveMethod save;
GESFormatterLoadMethod load;
- gpointer _ges_reserved[GST_PADDING];
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_formatter_get_type (void);
struct _GESKeyfileFormatter {
GESFormatter parent;
- /*< public >*/
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESKeyfileFormatterClass {
GESFormatterClass parent_class;
- /*< public >*/
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_keyfile_formatter_get_type (void);
gboolean adding_object;
gboolean valid;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
void (*object_moved) (GESTimelineLayer * layer, GESTimelineObject * object,
gint old_position, gint new_position);
/*< private >*/
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_simple_timeline_layer_get_type (void);
/* The formats supported by this filesource
* TODO : Could maybe be moved to a parent class */
GESTrackType supportedformats;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTimelineFileSourceClass {
GESTimelineSourceClass parent_class;
- /*< public >*/
+ /*< private >*/
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_tl_filesource_get_type (void);
/*< public >*/
- GESTimeline *timeline; /* The timeline where this layer is being used
- */
+ GESTimeline *timeline;
/*< private >*/
GSList * objects_start; /* The TimelineObjects sorted by start and
* containing timeline */
guint32 min_gnl_priority, max_gnl_priority;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
* GESTimelineLayerClass:
- * @parent_class: parent class
+ * @parent_class: layer parent class
+ * @get_objects: method to get the objects contained in the layer
*
+ * Subclasses can override the @get_objects if they can provide a more
+ * efficient way of providing the list of contained #GESTimelineObject(s).
*/
struct _GESTimelineLayerClass {
GObjectClass parent_class;
+ /*< public >*/
+ /* virtual methods for subclasses */
GList *(*get_objects) (GESTimelineLayer * layer);
- /*< signals >*/
+ /*< private >*/
+ /* Signals */
void (*object_added) (GESTimelineLayer * layer, GESTimelineObject * object);
void (*object_removed) (GESTimelineLayer * layer, GESTimelineObject * object);
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_layer_get_type (void);
guint32 height; /* the span of priorities this object needs */
guint64 fullduration; /* Full usable duration of the object (-1: no duration) */
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTimelineObjectClass {
GObjectClass parent_class;
+ /*< public >*/
CreateTrackObjectFunc create_track_object;
CreateTrackObjectsFunc create_track_objects;
/* FIXME : might need a release_track_object */
FillTrackObjectFunc fill_track_object;
gboolean need_fill_track;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_object_get_type (void);
struct _GESTimelineOverlay {
GESTimelineObject parent;
- /*< public >*/
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTimelineOverlayClass {
GESTimelineObjectClass parent_class;
- /*< public >*/
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_overlay_get_type (void);
struct _GESTimelinePipeline {
GstPipeline parent;
- /* <private> */
+ /*< private >*/
GESTimeline * timeline;
GstElement * playsink;
GstElement * encodebin;
GList *chains;
GstEncodingProfile *profile;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTimelinePipelineClass {
GstPipelineClass parent_class;
- /* <public> */
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_pipeline_get_type (void);
struct _GESTimelineSource {
GESTimelineObject parent;
- /*< private *>*/
+ /*< private >*/
gchar *text;
gchar *font_desc;
GESTextHAlign halign;
GESTextVAlign valign;
- /*< public >*/
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTimelineSourceClass {
GESTimelineObjectClass parent_class;
- /*< public >*/
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_source_get_type (void);
GESVideoTestPattern vpattern;
gdouble freq;
gdouble volume;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTimelineTestSourceClass {
GESTimelineSourceClass parent_class;
- /*< public >*/
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_test_source_get_type (void);
gchar *font_desc;
GESTextHAlign halign;
GESTextVAlign valign;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
GESTimelineOverlayClass parent_class;
/*< public >*/
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_tl_text_overlay_get_type (void);
gchar *font_desc;
GESTextVAlign halign;
GESTextHAlign valign;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTimelineTitleSourceClass {
GESTimelineSourceClass parent_class;
- /*< public >*/
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_tl_title_src_get_type (void);
*/
struct _GESTimelineTransition {
GESTimelineObject parent;
+
/*< public >*/
GESVideoTransitionType vtype;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTimelineTransitionClass {
GESTimelineObjectClass parent_class;
- /*< public >*/
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_transition_get_type (void);
GList *pendingobjects;
/* Whether we are changing state asynchronously or not */
gboolean async_pending;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
void (*track_removed) (GESTimeline *timeline, GESTrack * track);
void (*layer_added) (GESTimeline *timeline, GESTimelineLayer *layer);
void (*layer_removed) (GESTimeline *timeline, GESTimelineLayer *layer);
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_get_type (void);
/*< private >*/
gdouble freq;
gdouble volume;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackAudioTestSourceClass {
GESTrackSourceClass parent_class;
- /*< public >*/
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_audio_test_source_get_type (void);
GstController *b_controller;
GstInterpolationControlSource *b_control_source;
- /*< public >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackAudioTransitionClass {
GESTrackTransitionClass parent_class;
- /*< public >*/
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_audio_transition_get_type (void);
/*< public >*/
gchar *uri;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackFileSourceClass {
GESTrackSourceClass parent_class;
- /* <public> */
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_filesource_get_type (void);
/*< public >*/
gchar *uri;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
GESTrackSourceClass parent_class;
/* <public> */
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_image_source_get_type (void);
GstElement *gnlobject;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackObjectClass {
GObjectClass parent_class;
- /*< private >*/
- /* signals */
- void (*changed) (GESTrackObject * object);
-
/*< public >*/
/* virtual methods for subclasses */
gboolean (*create_gnl_object) (GESTrackObject * object);
void (*gnl_priority_changed) (GESTrackObject *object, guint priority);
void (*duration_changed) (GESTrackObject *object, guint64 duration);
void (*active_changed) (GESTrackObject *object, gboolean active);
+
+ /*< private >*/
+ /* signals */
+ void (*changed) (GESTrackObject * object);
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_object_get_type (void);
*/
struct _GESTrackOperation {
- /*< public >*/
GESTrackObject parent;
+
/*< private >*/
GstElement *element;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackOperationClass {
GESTrackObjectClass parent_class;
+
GstElement *(*create_element) (GESTrackOperation *);
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_operation_get_type (void);
*/
struct _GESTrackSource {
- /*< public >*/
GESTrackObject parent;
+
/*< private >*/
GstElement *element;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackSourceClass {
GESTrackObjectClass parent_class;
+
GstElement *(*create_element) (GESTrackSource *);
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_source_get_type (void);
GESTextHAlign halign;
GESTextVAlign valign;
GstElement *text_el;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
GESTrackOperationClass parent_class;
/*< private >*/
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_text_overlay_get_type (void);
GESTextVAlign valign;
GstElement *text_el;
GstElement *background_el;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
GESTrackSourceClass parent_class;
/*< private >*/
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_title_src_get_type (void);
{
GESTrackObject parent;
- /*< public >*/
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
*/
struct _GESTrackTransitionClass {
- GESTrackObjectClass parent_class;
+ GESTrackObjectClass parent_class;
+
+ /*< public >*/
+ GstElement* (*create_element) (GESTrackTransition *self);
- /* <public> */
- GstElement* (*create_element) (GESTrackTransition *self);
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_transition_get_type (void);
/*< private >*/
GESVideoTestPattern pattern;
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackVideoTestSourceClass {
GESTrackSourceClass parent_class;
- /* <public> */
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_video_test_source_get_type (void);
gdouble start_value;
gdouble end_value;
- /*< public >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackVideoTransitionClass {
GESTrackTransitionClass parent_class;
- /*< public >*/
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_video_transition_get_type (void);
struct _GESTrack {
GstBin parent;
- /*< public >*/ /* READ-ONLY */
+ /*< public >*/
+ /* READ-ONLY */
GESTrackType type;
/*< private >*/
GstElement * composition; /* The composition associated with this track */
GstPad * srcpad; /* The source GhostPad */
+
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
/**
struct _GESTrackClass {
GstBinClass parent_class;
+
+ /*< private >*/
+ /* Padding for API extension */
+ gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_get_type (void);
#ifndef __GES_TYPES_H__
#define __GES_TYPES_H__
+/* Padding */
+#define GES_PADDING 4
+
+/* Type definitions */
+
typedef struct _GESCustomTimelineSource GESCustomTimelineSource;
typedef struct _GESCustomTimelineSourceClass GESCustomTimelineSourceClass;