Rename GESTrackObject to GESTrackElement
authorThibault Saunier <thibault.saunier@collabora.com>
Sat, 26 Jan 2013 15:31:33 +0000 (12:31 -0300)
committerThibault Saunier <thibault.saunier@collabora.com>
Fri, 15 Feb 2013 17:42:05 +0000 (14:42 -0300)
66 files changed:
android/ges.mk
docs/libs/ges-docs.sgml
docs/libs/ges-sections.txt
docs/libs/ges.types
ges/Makefile.am
ges/ges-asset-clip.c
ges/ges-asset-track-object.c
ges/ges-asset-track-object.h
ges/ges-asset.c
ges/ges-auto-transition.c
ges/ges-auto-transition.h
ges/ges-base-xml-formatter.c
ges/ges-clip.c
ges/ges-clip.h
ges/ges-custom-source-clip.c
ges/ges-custom-source-clip.h
ges/ges-effect-clip.c
ges/ges-internal.h
ges/ges-pitivi-formatter.c
ges/ges-test-clip.c
ges/ges-text-overlay-clip.c
ges/ges-timeline-layer.c
ges/ges-timeline.c
ges/ges-title-clip.c
ges/ges-track-audio-test-source.c
ges/ges-track-audio-transition.c
ges/ges-track-effect.c
ges/ges-track-element.c [new file with mode: 0644]
ges/ges-track-element.h [new file with mode: 0644]
ges/ges-track-filesource.c
ges/ges-track-image-source.c
ges/ges-track-object.c [deleted file]
ges/ges-track-object.h [deleted file]
ges/ges-track-operation.c
ges/ges-track-operation.h
ges/ges-track-parse-launch-effect.c
ges/ges-track-source.c
ges/ges-track-source.h
ges/ges-track-text-overlay.c
ges/ges-track-title-source.c
ges/ges-track-video-test-source.c
ges/ges-track-video-transition.c
ges/ges-track.c
ges/ges-track.h
ges/ges-transition-clip.c
ges/ges-types.h
ges/ges-uri-asset.c
ges/ges-uri-asset.h
ges/ges-uri-clip.c
ges/ges-xml-formatter.c
ges/ges.h
tests/check/ges/backgroundsource.c
tests/check/ges/basic.c
tests/check/ges/clip.c
tests/check/ges/effects.c
tests/check/ges/layer.c
tests/check/ges/overlays.c
tests/check/ges/project.c
tests/check/ges/simplelayer.c
tests/check/ges/text_properties.c
tests/check/ges/timelineedition.c
tests/check/ges/titles.c
tests/check/ges/transition.c
tests/check/ges/uriclip.c
tests/examples/ges-ui.c
tests/examples/transition.c

index aa2068323b80061fda20b6d7384c3e53fd5e80b9..c7665f45e5cb4a0650da936d6364dcb955758e0b 100644 (file)
@@ -26,7 +26,7 @@ LOCAL_SRC_FILES :=                            \
        ges-overlay-clip.c                      \
        ges-text-overlay-clip.c         \
        ges-track.c                             \
-       ges-track-object.c                      \
+       ges-track-element.c                     \
        ges-track-source.c                      \
        ges-track-operation.c                   \
        ges-track-filesource.c                  \
index baf394261e0fa3ac50580e12276191eaf3bb2246..d7e868007d929ba4f6e52f7ca152a930e446eed3 100644 (file)
@@ -43,7 +43,7 @@ platform as well as Windows. It is released under the GNU Library General Public
     <xi:include href="xml/ges-overlay-clip.xml"/>
     <xi:include href="xml/ges-base-effect-clip.xml"/>
     <xi:include href="xml/ges-track.xml"/>
-    <xi:include href="xml/ges-track-object.xml"/>
+    <xi:include href="xml/ges-track-element.xml"/>
     <xi:include href="xml/ges-track-source.xml"/>
     <xi:include href="xml/ges-track-effect.xml"/>
     <xi:include href="xml/ges-track-operation.xml"/>
index 8b8e705fb6180a7b80a829e53be94fc0f706a611..f7f0992bc0d2fbf40736f3e80a796edba2965b46 100644 (file)
@@ -89,43 +89,43 @@ GES_TYPE_TRACK
 </SECTION>
 
 <SECTION>
-<FILE>ges-track-object</FILE>
-<TITLE>GESTrackObject</TITLE>
-GESTrackObject
-GESTrackObjectClass
-ges_track_object_set_max_duration
-ges_track_object_set_active
-ges_track_object_set_locked
-ges_track_object_is_locked
-ges_track_object_get_track
-ges_track_object_get_clip
-ges_track_object_get_gnlobject
-ges_track_object_get_element
-ges_track_object_get_max_duration
-ges_track_object_is_active
-ges_track_object_lookup_child
-ges_track_object_list_children_properties
-ges_track_object_set_child_property
-ges_track_object_set_child_properties
-ges_track_object_set_child_property_valist
-ges_track_object_set_child_property_by_pspec
-ges_track_object_get_child_property
-ges_track_object_get_child_properties
-ges_track_object_get_child_property_valist
-ges_track_object_get_child_property_by_pspec
-ges_track_object_edit
-ges_track_object_copy
+<FILE>ges-track-element</FILE>
+<TITLE>GESTrackElement</TITLE>
+GESTrackElement
+GESTrackElementClass
+ges_track_element_set_max_duration
+ges_track_element_set_active
+ges_track_element_set_locked
+ges_track_element_is_locked
+ges_track_element_get_track
+ges_track_element_get_clip
+ges_track_element_get_gnlobject
+ges_track_element_get_element
+ges_track_element_get_max_duration
+ges_track_element_is_active
+ges_track_element_lookup_child
+ges_track_element_list_children_properties
+ges_track_element_set_child_property
+ges_track_element_set_child_properties
+ges_track_element_set_child_property_valist
+ges_track_element_set_child_property_by_pspec
+ges_track_element_get_child_property
+ges_track_element_get_child_properties
+ges_track_element_get_child_property_valist
+ges_track_element_get_child_property_by_pspec
+ges_track_element_edit
+ges_track_element_copy
 <SUBSECTION Standard>
-GESTrackObjectPrivate
-ges_track_object_set_clip
-ges_track_object_set_track
-ges_track_object_get_type
-GES_IS_TRACK_OBJECT
-GES_IS_TRACK_OBJECT_CLASS
-GES_TRACK_OBJECT
-GES_TRACK_OBJECT_CLASS
-GES_TRACK_OBJECT_GET_CLASS
-GES_TYPE_TRACK_OBJECT
+GESTrackElementPrivate
+ges_track_element_set_clip
+ges_track_element_set_track
+ges_track_element_get_type
+GES_IS_TRACK_ELEMENT
+GES_IS_TRACK_ELEMENT_CLASS
+GES_TRACK_ELEMENT
+GES_TRACK_ELEMENT_CLASS
+GES_TRACK_ELEMENT_GET_CLASS
+GES_TYPE_TRACK_ELEMENT
 </SECTION>
 
 <SECTION>
@@ -356,12 +356,12 @@ GES_TIMELINE_ELEMENT_GET_CLASS
 <TITLE>GESClip</TITLE>
 GESClip
 GESClipClass
-GESCreateTrackObjectFunc
-GESCreateTrackObjectsFunc
-GESFillTrackObjectFunc
+GESCreateTrackElementFunc
+GESCreateTrackElementsFunc
+GESFillTrackElementFunc
 ges_clip_get_layer
-ges_clip_find_track_object
-ges_clip_add_track_object
+ges_clip_find_track_element
+ges_clip_add_track_element
 ges_clip_add_asset
 ges_clip_get_top_effects
 ges_clip_get_top_effect_position
@@ -376,15 +376,15 @@ ges_clip_objects_set_locked
 ges_clip_set_max_duration
 <SUBSECTION Standard>
 GES_CLIP_HEIGHT
-ges_clip_create_track_objects
-ges_clip_create_track_object
-ges_clip_fill_track_object
+ges_clip_create_track_elements
+ges_clip_create_track_element
+ges_clip_fill_track_element
 ges_clip_is_moving_from_layer
-ges_clip_release_track_object
-ges_clip_get_track_objects
+ges_clip_release_track_element
+ges_clip_get_track_elements
 ges_clip_set_layer
 ges_clip_set_moving_from_layer
-ges_clip_lock_track_objects
+ges_clip_lock_track_elements
 GESClipPrivate
 GES_IS_CLIP
 GES_IS_CLIP_CLASS
@@ -570,7 +570,7 @@ ges_transition_clip_get_type
 <FILE>ges-custom-source-clip</FILE>
 <TITLE>GESCustomSourceClip</TITLE>
 GESCustomSourceClip
-GESFillTrackObjectUserFunc
+GESFillTrackElementUserFunc
 ges_custom_source_clip_new
 <SUBSECTION Standard>
 GESCustomSourceClipClass
@@ -1004,19 +1004,19 @@ GES_ASSET_CLIP_GET_CLASS
 
 <SECTION>
 <FILE>ges-asset-track-object</FILE>
-<TITLE>GESAssetTrackObject</TITLE>
-GESAssetTrackObject
-ges_asset_track_object_get_type
-ges_asset_track_object_get_track_type
-ges_asset_track_object_set_track_type
+<TITLE>GESAssetTrackElement</TITLE>
+GESAssetTrackElement
+ges_asset_track_element_get_type
+ges_asset_track_element_get_track_type
+ges_asset_track_element_set_track_type
 <SUBSECTION Standard>
-GESAssetTrackObjectPrivate
-GES_ASSET_TRACK_OBJECT
-GES_TYPE_ASSET_TRACK_OBJECT
-GES_ASSET_TRACK_OBJECT_CLASS
-GES_IS_ASSET_TRACK_OBJECT
-GES_IS_ASSET_TRACK_OBJECT_CLASS
-GES_ASSET_TRACK_OBJECT_GET_CLASS
+GESAssetTrackElementPrivate
+GES_ASSET_TRACK_ELEMENT
+GES_TYPE_ASSET_TRACK_ELEMENT
+GES_ASSET_TRACK_ELEMENT_CLASS
+GES_IS_ASSET_TRACK_ELEMENT
+GES_IS_ASSET_TRACK_ELEMENT_CLASS
+GES_ASSET_TRACK_ELEMENT_GET_CLASS
 </SECTION>
 
 <SECTION>
index 243751666a6a44afad167433e9b7f51d7cbf1cef..59b720df07ccd639c3daf7b45c4d68437ae622dd 100644 (file)
@@ -26,7 +26,7 @@ ges_track_audio_transition_get_type
 ges_track_filesource_get_type
 ges_track_get_type
 ges_track_image_source_get_type
-ges_track_object_get_type
+ges_track_element_get_type
 ges_track_effect_get_type
 ges_track_parse_launch_effect_get_type
 ges_track_operation_get_type
index 908221605c7b037e2cf4456c63acaabbb46e27b3..092bffc04e7c64cf0790bdf166a160c0c957d33b 100644 (file)
@@ -30,7 +30,7 @@ libges_@GST_API_VERSION@_la_SOURCES =                 \
        ges-overlay-clip.c                      \
        ges-text-overlay-clip.c         \
        ges-track.c                             \
-       ges-track-object.c                      \
+       ges-track-element.c                     \
        ges-track-source.c                      \
        ges-track-operation.c                   \
        ges-track-filesource.c                  \
@@ -86,7 +86,7 @@ libges_@GST_API_VERSION@include_HEADERS =     \
        ges-track-effect.h              \
        ges-track-parse-launch-effect.h         \
        ges-track.h                             \
-       ges-track-object.h                      \
+       ges-track-element.h                     \
        ges-track-source.h                      \
        ges-track-operation.h                   \
        ges-track-filesource.h                  \
index 399d2ecc0241abea0abd1a2c77dccef44eaec86c..c25a2d8422dbfcd711287012d4ad7534b3cf4681 100644 (file)
@@ -23,7 +23,7 @@
  *
  * The #GESUriClipAsset is a special #GESAsset specilized in #GESClip.
  * it is mostly used to get information about the #GESTrackType-s the objects extracted
- * from it can potentialy create #GESTrackObject for.
+ * from it can potentialy create #GESTrackElement for.
  */
 
 #include "ges-asset-clip.h"
@@ -152,7 +152,7 @@ ges_asset_clip_class_init (GESAssetClipClass * self_class)
  * @self: a #GESAssetClip
  * @supportedformats: The track types supported by the GESAssetClip
  *
- * Sets track types for which objects extracted from @self can create #GESTrackObject
+ * Sets track types for which objects extracted from @self can create #GESTrackElement
  */
 void
 ges_asset_clip_set_supported_formats (GESAssetClip * self,
@@ -167,9 +167,9 @@ ges_asset_clip_set_supported_formats (GESAssetClip * self,
  * ges_asset_clip_get_supported_formats:
  * @self: a #GESAssetClip
  *
- * Gets track types for which objects extracted from @self can create #GESTrackObject
+ * Gets track types for which objects extracted from @self can create #GESTrackElement
  *
- * Returns: The track types on which @self will create TrackObject when added to
+ * Returns: The track types on which @self will create TrackElement when added to
  * a layer
  */
 GESTrackType
index 1d2fd2e5004af6ed8913ec3c1d1818acc1af09a6..85610ca2980dc466d4e82078886e910b545ffada 100644 (file)
@@ -20,7 +20,7 @@
 
 /**
  * SECTION: ges-asset-track-object
- * @short_description: A GESAsset subclass specialized in GESTrackObject extraction
+ * @short_description: A GESAsset subclass specialized in GESTrackElement extraction
  */
 
 #include "ges-asset-track-object.h"
@@ -34,9 +34,9 @@ enum
 
 static GParamSpec *properties[PROP_LAST];
 
-G_DEFINE_TYPE (GESAssetTrackObject, ges_asset_track_object, GES_TYPE_ASSET);
+G_DEFINE_TYPE (GESAssetTrackElement, ges_asset_track_element, GES_TYPE_ASSET);
 
-struct _GESAssetTrackObjectPrivate
+struct _GESAssetTrackElementPrivate
 {
   GESTrackType type;
 };
@@ -45,7 +45,7 @@ static void
 _get_property (GObject * object, guint property_id,
     GValue * value, GParamSpec * pspec)
 {
-  GESAssetTrackObject *asset = GES_ASSET_TRACK_OBJECT (object);
+  GESAssetTrackElement *asset = GES_ASSET_TRACK_ELEMENT (object);
 
   switch (property_id) {
     case PROP_TRACK_TYPE:
@@ -60,7 +60,7 @@ static void
 _set_property (GObject * object, guint property_id,
     const GValue * value, GParamSpec * pspec)
 {
-  GESAssetTrackObject *asset = GES_ASSET_TRACK_OBJECT (object);
+  GESAssetTrackElement *asset = GES_ASSET_TRACK_ELEMENT (object);
 
   switch (property_id) {
     case PROP_TRACK_TYPE:
@@ -72,11 +72,11 @@ _set_property (GObject * object, guint property_id,
 }
 
 static void
-ges_asset_track_object_class_init (GESAssetTrackObjectClass * klass)
+ges_asset_track_element_class_init (GESAssetTrackElementClass * klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (GESAssetTrackObjectPrivate));
+  g_type_class_add_private (klass, sizeof (GESAssetTrackElementPrivate));
 
   object_class->get_property = _get_property;
   object_class->set_property = _set_property;
@@ -96,47 +96,47 @@ ges_asset_track_object_class_init (GESAssetTrackObjectClass * klass)
 }
 
 static void
-ges_asset_track_object_init (GESAssetTrackObject * self)
+ges_asset_track_element_init (GESAssetTrackElement * self)
 {
-  GESAssetTrackObjectPrivate *priv;
+  GESAssetTrackElementPrivate *priv;
 
   priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GES_TYPE_ASSET_TRACK_OBJECT, GESAssetTrackObjectPrivate);
+      GES_TYPE_ASSET_TRACK_ELEMENT, GESAssetTrackElementPrivate);
 
   priv->type = GES_TRACK_TYPE_UNKNOWN;
 
 }
 
 /**
- * ges_asset_track_object_set_track_type:
+ * ges_asset_track_element_set_track_type:
  * @asset: A #GESAssetObject
  * @type: A #GESTrackType
  *
- * Set the #GESAssetTrackType the #GESTrackObject extracted from @self
+ * Set the #GESAssetTrackType the #GESTrackElement extracted from @self
  * should get into
  */
 void
-ges_asset_track_object_set_track_type (GESAssetTrackObject * asset,
+ges_asset_track_element_set_track_type (GESAssetTrackElement * asset,
     GESTrackType type)
 {
-  g_return_if_fail (GES_IS_ASSET_TRACK_OBJECT (asset));
+  g_return_if_fail (GES_IS_ASSET_TRACK_ELEMENT (asset));
 
   asset->priv->type = type;
 }
 
 /**
- * ges_asset_track_object_get_track_type:
+ * ges_asset_track_element_get_track_type:
  * @asset: A #GESAssetObject
  *
- * Get the GESAssetTrackType the #GESTrackObject extracted from @self
+ * Get the GESAssetTrackType the #GESTrackElement extracted from @self
  * should get into
  *
  * Returns: a #GESTrackType
  */
 const GESTrackType
-ges_asset_track_object_get_track_type (GESAssetTrackObject * asset)
+ges_asset_track_element_get_track_type (GESAssetTrackElement * asset)
 {
-  g_return_val_if_fail (GES_IS_ASSET_TRACK_OBJECT (asset),
+  g_return_val_if_fail (GES_IS_ASSET_TRACK_ELEMENT (asset),
       GES_TRACK_TYPE_UNKNOWN);
 
   return asset->priv->type;
index c287592a278b6b381ebcc3b9d0c18e7f3a870060..90996844c1aa0f0615d65acc4a2007ad4298170f 100644 (file)
@@ -17,8 +17,8 @@
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
-#ifndef _GES_ASSET_TRACK_OBJECT_
-#define _GES_ASSET_TRACK_OBJECT_
+#ifndef _GES_ASSET_TRACK_ELEMENT_
+#define _GES_ASSET_TRACK_ELEMENT_
 
 #include <glib-object.h>
 #include <gio/gio.h>
 
 G_BEGIN_DECLS
 
-#define GES_TYPE_ASSET_TRACK_OBJECT ges_asset_track_object_get_type()
-#define GES_ASSET_TRACK_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_ASSET_TRACK_OBJECT, GESAssetTrackObject))
-#define GES_ASSET_TRACK_OBJECT_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_ASSET_TRACK_OBJECT, GESAssetTrackObjectClass))
-#define GES_IS_ASSET_TRACK_OBJECT(obj)  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_ASSET_TRACK_OBJECT))
-#define GES_IS_ASSET_TRACK_OBJECT_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_ASSET_TRACK_OBJECT))
-#define GES_ASSET_TRACK_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_ASSET_TRACK_OBJECT, GESAssetTrackObjectClass))
+#define GES_TYPE_ASSET_TRACK_ELEMENT ges_asset_track_element_get_type()
+#define GES_ASSET_TRACK_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_ASSET_TRACK_ELEMENT, GESAssetTrackElement))
+#define GES_ASSET_TRACK_ELEMENT_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_ASSET_TRACK_ELEMENT, GESAssetTrackElementClass))
+#define GES_IS_ASSET_TRACK_ELEMENT(obj)  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_ASSET_TRACK_ELEMENT))
+#define GES_IS_ASSET_TRACK_ELEMENT_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_ASSET_TRACK_ELEMENT))
+#define GES_ASSET_TRACK_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_ASSET_TRACK_ELEMENT, GESAssetTrackElementClass))
 
-typedef struct _GESAssetTrackObjectPrivate GESAssetTrackObjectPrivate;
+typedef struct _GESAssetTrackElementPrivate GESAssetTrackElementPrivate;
 
-GType ges_asset_track_object_get_type (void);
+GType ges_asset_track_element_get_type (void);
 
-struct _GESAssetTrackObject
+struct _GESAssetTrackElement
 {
   GESAsset parent;
 
   /* <private> */
-  GESAssetTrackObjectPrivate *priv;
+  GESAssetTrackElementPrivate *priv;
 
   /* Padding for API extension */
   gpointer __ges_reserved[GES_PADDING];
 };
 
-struct _GESAssetTrackObjectClass
+struct _GESAssetTrackElementClass
 {
   GESAssetClass parent_class;
 
   gpointer _ges_reserved[GES_PADDING];
 };
 
-const GESTrackType ges_asset_track_object_get_track_type (GESAssetTrackObject *asset);
-void ges_asset_track_object_set_track_type               (GESAssetTrackObject * asset, GESTrackType type);
+const GESTrackType ges_asset_track_element_get_track_type (GESAssetTrackElement *asset);
+void ges_asset_track_element_set_track_type               (GESAssetTrackElement * asset, GESTrackType type);
 
 G_END_DECLS
-#endif /* _GES_ASSET_TRACK_OBJECT */
+#endif /* _GES_ASSET_TRACK_ELEMENT */
 
index 75dae54d75dfbd63e8d138f9c67819a6f23b3fa3..72e0b9f382dee57f3503e8cf1d4b543a2821eea4 100644 (file)
@@ -24,7 +24,7 @@
  *
  * The Assets in the GStreamer Editing Services represent the ressources
  * that can be used. You can create assets for any type that implements the #GESExtractable
- * interface, for example #GESClips, #GESFormatter, and #GESTrackObject do implement it.
+ * interface, for example #GESClips, #GESFormatter, and #GESTrackElement do implement it.
  * This means that asssets will represent for example a #GESUriClips, #GESTrackEffect etc,
  * and then you can extract objects of those types with the appropriate parameters from the asset
  * using the #ges_asset_extract method:
index b2c862b2c256de91427ece5a55f95d5ebb33d28e..15dbc8d203f4eeeed90aba156608ec599ad451ee 100644 (file)
@@ -77,10 +77,10 @@ _height_changed_cb (GESClip * obj, GParamSpec * arg G_GNUC_UNUSED,
 }
 
 static void
-_track_changed_cb (GESTrackObject * obj, GParamSpec * arg G_GNUC_UNUSED,
+_track_changed_cb (GESTrackElement * obj, GParamSpec * arg G_GNUC_UNUSED,
     GESAutoTransition * self)
 {
-  if (ges_track_object_get_track (obj) == NULL) {
+  if (ges_track_element_get_track (obj) == NULL) {
     GST_DEBUG_OBJECT (self, "Neighboor %" GST_PTR_FORMAT
         " removed from track ... auto destructing", obj);
 
@@ -129,8 +129,8 @@ ges_auto_transition_class_init (GESAutoTransitionClass * klass)
 
 
 GESAutoTransition *
-ges_auto_transition_new (GESTrackObject * transition,
-    GESTrackObject * previous_source, GESTrackObject * next_source)
+ges_auto_transition_new (GESTrackElement * transition,
+    GESTrackElement * previous_source, GESTrackElement * next_source)
 {
   GESAutoTransition *self = g_object_new (GES_TYPE_AUTO_TRANSITION, NULL);
 
@@ -138,9 +138,9 @@ ges_auto_transition_new (GESTrackObject * transition,
   self->next_source = next_source;
   self->transition = transition;
 
-  self->previous_clip = ges_track_object_get_clip (previous_source);
-  self->next_clip = ges_track_object_get_clip (next_source);
-  self->transition_clip = ges_track_object_get_clip (transition);
+  self->previous_clip = ges_track_element_get_clip (previous_source);
+  self->next_clip = ges_track_element_get_clip (next_source);
+  self->transition_clip = ges_track_element_get_clip (transition);
 
   g_signal_connect (previous_source, "notify::start",
       G_CALLBACK (neighbour_changed_cb), self);
index 99a0926021679758692d25f3f869f1ba7c7f4b1f..68cc031a717b15585988060a167cd2f885c6c32f 100644 (file)
@@ -21,7 +21,7 @@
 #define _GES_AUTO_TRANSITION_H_
 
 #include <glib-object.h>
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-clip.h"
 #include "ges-timeline-layer.h"
 
@@ -52,9 +52,9 @@ struct _GESAutoTransition
   GObject parent_instance;
 
   /* <read only and construct only> */
-  GESTrackObject *previous_source;
-  GESTrackObject *next_source;
-  GESTrackObject *transition;
+  GESTrackElement *previous_source;
+  GESTrackElement *next_source;
+  GESTrackElement *transition;
 
   GESTimelineLayer *layer;
 
@@ -70,9 +70,9 @@ struct _GESAutoTransition
 
 GType ges_auto_transition_get_type (void) G_GNUC_CONST;
 
-GESAutoTransition * ges_auto_transition_new (GESTrackObject * transition,
-                                             GESTrackObject * previous_source,
-                                             GESTrackObject * next_source);
+GESAutoTransition * ges_auto_transition_new (GESTrackElement * transition,
+                                             GESTrackElement * previous_source,
+                                             GESTrackElement * next_source);
 
 G_END_DECLS
 #endif /* _GES_AUTO_TRANSITION_H_ */
index bdc93080feb6baa01aa22a0fa342463dae62a828..1d0e25a871a825e12c61ff5cefdac0c489e838ca 100644 (file)
@@ -34,7 +34,7 @@ G_DEFINE_ABSTRACT_TYPE (GESBaseXmlFormatter, ges_base_xml_formatter,
 typedef struct PendingEffects
 {
   gchar *track_id;
-  GESTrackObject *tckobj;
+  GESTrackElement *trackelement;
   GstStructure *children_properties;
   GstStructure *properties;
 
@@ -58,7 +58,7 @@ typedef struct PendingClip
   GList *effects;
 
   /* TODO Implement asset effect management
-   * PendingTrackObjects *track_objects; */
+   * PendingTrackElements *track_elements; */
 } PendingClip;
 
 typedef struct LayerEntry
@@ -385,12 +385,12 @@ _loading_done (GESFormatter * self)
 
 static void
 _set_child_property (GQuark field_id, const GValue * value,
-    GESTrackObject * effect)
+    GESTrackElement * effect)
 {
   GParamSpec *pspec;
   GstElement *element;
 
-  if (!ges_track_object_lookup_child (effect,
+  if (!ges_track_element_lookup_child (effect,
           g_quark_to_string (field_id), &element, &pspec))
     return;
 
@@ -435,34 +435,34 @@ _add_object_to_layer (GESBaseXmlFormatterPrivate * priv, const gchar * id,
 }
 
 static void
-_add_track_object (GESFormatter * self, GESClip * clip,
-    GESTrackObject * tckobj, const gchar * track_id,
+_add_track_element (GESFormatter * self, GESClip * clip,
+    GESTrackElement * trackelement, const gchar * track_id,
     GstStructure * children_properties, GstStructure * properties)
 {
   GESBaseXmlFormatterPrivate *priv = _GET_PRIV (self);
   GESTrack *track = g_hash_table_lookup (priv->tracks, track_id);
 
   if (track == NULL) {
-    GST_WARNING_OBJECT (self, "No track with id %s, can not add tckobj",
+    GST_WARNING_OBJECT (self, "No track with id %s, can not add trackelement",
         track_id);
-    gst_object_unref (tckobj);
+    gst_object_unref (trackelement);
     return;
   }
 
-  GST_DEBUG_OBJECT (self, "Adding track_object: %" GST_PTR_FORMAT
-      " To : %" GST_PTR_FORMAT, tckobj, clip);
+  GST_DEBUG_OBJECT (self, "Adding track_element: %" GST_PTR_FORMAT
+      " To : %" GST_PTR_FORMAT, trackelement, clip);
 
-  ges_clip_add_track_object (clip, tckobj);
-  ges_track_add_object (track, tckobj);
+  ges_clip_add_track_element (clip, trackelement);
+  ges_track_add_object (track, trackelement);
   gst_structure_foreach (children_properties,
-      (GstStructureForeachFunc) _set_child_property, tckobj);
+      (GstStructureForeachFunc) _set_child_property, trackelement);
 }
 
 static void
 _free_pending_effect (PendingEffects * pend)
 {
   g_free (pend->track_id);
-  gst_object_unref (pend->tckobj);
+  gst_object_unref (pend->trackelement);
   if (pend->children_properties)
     gst_structure_free (pend->children_properties);
   if (pend->properties)
@@ -575,7 +575,7 @@ new_asset_cb (GESAsset * source, GAsyncResult * res, PendingAsset * passet)
       PendingEffects *peffect = (PendingEffects *) tmpeffect->data;
 
       /* We keep a ref as _free_pending_effect unrefs it */
-      _add_track_object (self, clip, gst_object_ref (peffect->tckobj),
+      _add_track_element (self, clip, gst_object_ref (peffect->trackelement),
           peffect->track_id, peffect->children_properties, peffect->properties);
     }
     _free_pending_clip (priv, pend);
@@ -830,12 +830,12 @@ ges_base_xml_formatter_add_track (GESBaseXmlFormatter * self,
 }
 
 void
-ges_base_xml_formatter_add_track_object (GESBaseXmlFormatter * self,
-    GType track_object_type, const gchar * asset_id, const gchar * track_id,
+ges_base_xml_formatter_add_track_element (GESBaseXmlFormatter * self,
+    GType track_element_type, const gchar * asset_id, const gchar * track_id,
     const gchar * timeline_obj_id, GstStructure * children_properties,
     GstStructure * properties, const gchar * metadatas, GError ** error)
 {
-  GESTrackObject *tckobj;
+  GESTrackElement *trackelement;
 
   GError *err = NULL;
   GESAsset *asset = NULL;
@@ -844,37 +844,37 @@ ges_base_xml_formatter_add_track_object (GESBaseXmlFormatter * self,
   if (priv->check_only)
     return;
 
-  if (g_type_is_a (track_object_type, GES_TYPE_TRACK_OBJECT) == FALSE) {
-    GST_DEBUG_OBJECT (self, "%s is not a TrackObject, can not create it",
-        g_type_name (track_object_type));
+  if (g_type_is_a (track_element_type, GES_TYPE_TRACK_ELEMENT) == FALSE) {
+    GST_DEBUG_OBJECT (self, "%s is not a TrackElement, can not create it",
+        g_type_name (track_element_type));
     goto out;
   }
 
-  if (g_type_is_a (track_object_type, GES_TYPE_TRACK_EFFECT) == FALSE) {
+  if (g_type_is_a (track_element_type, GES_TYPE_TRACK_EFFECT) == FALSE) {
     GST_FIXME_OBJECT (self, "%s currently not supported",
-        g_type_name (track_object_type));
+        g_type_name (track_element_type));
     goto out;
   }
 
-  asset = ges_asset_request (track_object_type, asset_id, &err);
+  asset = ges_asset_request (track_element_type, asset_id, &err);
   if (asset == NULL) {
-    GST_DEBUG_OBJECT (self, "Can not create tckobj %s", asset_id);
+    GST_DEBUG_OBJECT (self, "Can not create trackelement %s", asset_id);
     GST_FIXME_OBJECT (self, "Check if missing plugins etc %s",
         err ? err->message : "");
 
     goto out;
   }
 
-  tckobj = GES_TRACK_OBJECT (ges_asset_extract (asset, NULL));
-  if (tckobj) {
+  trackelement = GES_TRACK_ELEMENT (ges_asset_extract (asset, NULL));
+  if (trackelement) {
     GESClip *clip;
     if (metadatas)
-      ges_meta_container_add_metas_from_string (GES_META_CONTAINER (tckobj),
-          metadatas);
+      ges_meta_container_add_metas_from_string (GES_META_CONTAINER
+          (trackelement), metadatas);
 
     clip = g_hash_table_lookup (priv->clips, timeline_obj_id);
     if (clip) {
-      _add_track_object (GES_FORMATTER (self), clip, tckobj, track_id,
+      _add_track_element (GES_FORMATTER (self), clip, trackelement, track_id,
           children_properties, properties);
     } else {
       PendingEffects *peffect;
@@ -882,13 +882,13 @@ ges_base_xml_formatter_add_track_object (GESBaseXmlFormatter * self,
           timeline_obj_id);
       if (pend == NULL) {
         GST_WARNING_OBJECT (self, "No Clip with id: %s can not "
-            "add TrackObject", timeline_obj_id);
+            "add TrackElement", timeline_obj_id);
         goto out;
       }
 
       peffect = g_slice_new0 (PendingEffects);
 
-      peffect->tckobj = tckobj;
+      peffect->trackelement = trackelement;
       peffect->track_id = g_strdup (track_id);
       peffect->properties = properties ? gst_structure_copy (properties) : NULL;
       peffect->children_properties = children_properties ?
index a25616cb8de4b330a25ea5a1dd57b4d9c1151125..0cd7944a448ead2828ec92130cc73b86e0362184 100644 (file)
@@ -25,9 +25,9 @@
  * @short_description: Base Class for objects in a GESTimelineLayer
  *
  * A #GESClip is a 'natural' object which controls one or more
- * #GESTrackObject(s) in one or more #GESTrack(s).
+ * #GESTrackElement(s) in one or more #GESTrack(s).
  *
- * Keeps a reference to the #GESTrackObject(s) it created and
+ * Keeps a reference to the #GESTrackElement(s) it created and
  * sets/updates their properties.
  */
 
 #include <string.h>
 
 gboolean
-ges_clip_fill_track_object_func (GESClip * object,
-    GESTrackObject * trackobj, GstElement * gnlobj);
+ges_clip_fill_track_element_func (GESClip * object,
+    GESTrackElement * trackelement, GstElement * gnlobj);
 
-GList *ges_clip_create_track_objects_func (GESClip * object, GESTrackType type);
+GList *ges_clip_create_track_elements_func (GESClip * object,
+    GESTrackType type);
 
 static gboolean _set_max_duration (GESTimelineElement * element,
     GstClockTime maxduration);
 
 static void
-track_object_start_changed_cb (GESTrackObject * child,
+track_element_start_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESClip * object);
 static void
-track_object_inpoint_changed_cb (GESTrackObject * child,
+track_element_inpoint_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESClip * object);
 static void
-track_object_duration_changed_cb (GESTrackObject * child,
+track_element_duration_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESClip * object);
 static void
-track_object_priority_changed_cb (GESTrackObject * child,
+track_element_priority_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESClip * object);
 static void update_height (GESClip * object);
 
@@ -80,14 +81,14 @@ static gboolean _trim (GESTimelineElement * element, GstClockTime start);
 
 G_DEFINE_ABSTRACT_TYPE (GESClip, ges_clip, GES_TYPE_TIMELINE_ELEMENT);
 
-/* Mapping of relationship between a Clip and the TrackObjects
+/* Mapping of relationship between a Clip and the TrackElements
  * it controls
  *
  * NOTE : how do we make this public in the future ?
  */
 typedef struct
 {
-  GESTrackObject *object;
+  GESTrackElement *object;
   gint64 start_offset;
   gint64 duration_offset;
   gint64 inpoint_offset;
@@ -105,8 +106,8 @@ enum
 {
   EFFECT_ADDED,
   EFFECT_REMOVED,
-  TRACK_OBJECT_ADDED,
-  TRACK_OBJECT_REMOVED,
+  TRACK_ELEMENT_ADDED,
+  TRACK_ELEMENT_REMOVED,
   LAST_SIGNAL
 };
 
@@ -129,7 +130,7 @@ struct _GESClipPrivate
 
   guint nb_effects;
 
-  GESTrackObject *initiated_move;
+  GESTrackElement *initiated_move;
 
   /* The formats supported by this Clip */
   GESTrackType supportedformats;
@@ -194,10 +195,10 @@ ges_clip_class_init (GESClipClass * klass)
 
   object_class->get_property = ges_clip_get_property;
   object_class->set_property = ges_clip_set_property;
-  klass->create_track_objects = ges_clip_create_track_objects_func;
-  klass->create_track_object = NULL;
-  klass->track_object_added = NULL;
-  klass->track_object_released = NULL;
+  klass->create_track_elements = ges_clip_create_track_elements_func;
+  klass->create_track_element = NULL;
+  klass->track_element_added = NULL;
+  klass->track_element_released = NULL;
 
   /**
    * GESClip:height:
@@ -267,30 +268,30 @@ ges_clip_class_init (GESClipClass * klass)
   /**
    * GESClip::track-object-added:
    * @object: the #GESClip
-   * @tckobj: the #GESTrackObject that was added.
+   * @trackelement: the #GESTrackElement that was added.
    *
    * Will be emitted after a track object was added to the object.
    *
    * Since: 0.10.2
    */
-  ges_clip_signals[TRACK_OBJECT_ADDED] =
+  ges_clip_signals[TRACK_ELEMENT_ADDED] =
       g_signal_new ("track-object-added", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_generic,
-      G_TYPE_NONE, 1, GES_TYPE_TRACK_OBJECT);
+      G_TYPE_NONE, 1, GES_TYPE_TRACK_ELEMENT);
 
   /**
    * GESClip::track-object-removed:
    * @object: the #GESClip
-   * @tckobj: the #GESTrackObject that was removed.
+   * @trackelement: the #GESTrackElement that was removed.
    *
    * Will be emitted after a track object was removed from @object.
    *
    * Since: 0.10.2
    */
-  ges_clip_signals[TRACK_OBJECT_REMOVED] =
+  ges_clip_signals[TRACK_ELEMENT_REMOVED] =
       g_signal_new ("track-object-removed", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_generic,
-      G_TYPE_NONE, 1, GES_TYPE_TRACK_OBJECT);
+      G_TYPE_NONE, 1, GES_TYPE_TRACK_ELEMENT);
 
 
   element_class->set_start = _set_start;
@@ -317,29 +318,29 @@ ges_clip_init (GESClip * self)
       GES_TYPE_CLIP, GESClipPrivate);
   /* FIXME, check why it was done this way _DURATION (self) = GST_SECOND; */
   self->height = 1;
-  self->trackobjects = NULL;
+  self->trackelements = NULL;
   self->priv->layer = NULL;
   self->priv->nb_effects = 0;
   self->priv->is_moving = FALSE;
 }
 
 /**
- * ges_clip_create_track_object:
+ * ges_clip_create_track_element:
  * @object: The origin #GESClip
- * @type: The #GESTrackType to create a #GESTrackObject for.
+ * @type: The #GESTrackType to create a #GESTrackElement for.
  *
- * Creates a #GESTrackObject for the provided @type. The timeline object
- * keep a reference to the newly created trackobject, you therefore need to
- * call @ges_clip_release_track_object when you are done with it.
+ * Creates a #GESTrackElement for the provided @type. The timeline object
+ * keep a reference to the newly created trackelement, you therefore need to
+ * call @ges_clip_release_track_element when you are done with it.
  *
- * Returns: (transfer none): A #GESTrackObject. Returns NULL if the #GESTrackObject could not
+ * Returns: (transfer none): A #GESTrackElement. Returns NULL if the #GESTrackElement could not
  * be created.
  */
-GESTrackObject *
-ges_clip_create_track_object (GESClip * object, GESTrackType type)
+GESTrackElement *
+ges_clip_create_track_element (GESClip * object, GESTrackType type)
 {
   GESClipClass *class;
-  GESTrackObject *res;
+  GESTrackElement *res;
 
   g_return_val_if_fail (GES_IS_CLIP (object), NULL);
 
@@ -352,30 +353,30 @@ ges_clip_create_track_object (GESClip * object, GESTrackType type)
 
   class = GES_CLIP_GET_CLASS (object);
 
-  if (G_UNLIKELY (class->create_track_object == NULL)) {
-    GST_ERROR ("No 'create_track_object' implementation available fo type %s",
+  if (G_UNLIKELY (class->create_track_element == NULL)) {
+    GST_ERROR ("No 'create_track_element' implementation available fo type %s",
         G_OBJECT_TYPE_NAME (object));
     return NULL;
   }
 
-  res = class->create_track_object (object, type);
+  res = class->create_track_element (object, type);
   return res;
 
 }
 
 /**
- * ges_clip_create_track_objects:
+ * ges_clip_create_track_elements:
  * @object: The origin #GESClip
- * @type: The #GESTrackType to create each #GESTrackObject for.
+ * @type: The #GESTrackType to create each #GESTrackElement for.
  *
- * Creates all #GESTrackObjects supported by this object for the track type.
+ * Creates all #GESTrackElements supported by this object for the track type.
  *
- * Returns: (element-type GESTrackObject) (transfer full): A #GList of
- * newly created #GESTrackObject-s
+ * Returns: (element-type GESTrackElement) (transfer full): A #GList of
+ * newly created #GESTrackElement-s
  */
 
 GList *
-ges_clip_create_track_objects (GESClip * object, GESTrackType type)
+ges_clip_create_track_elements (GESClip * object, GESTrackType type)
 {
   GESClipClass *klass;
 
@@ -383,14 +384,14 @@ ges_clip_create_track_objects (GESClip * object, GESTrackType type)
 
   klass = GES_CLIP_GET_CLASS (object);
 
-  if (!(klass->create_track_objects)) {
-    GST_WARNING ("no GESClip::create_track_objects implentation");
+  if (!(klass->create_track_elements)) {
+    GST_WARNING ("no GESClip::create_track_elements implentation");
     return NULL;
   }
 
-  GST_DEBUG_OBJECT (object, "Creating TrackObjects for type: %s",
+  GST_DEBUG_OBJECT (object, "Creating TrackElements for type: %s",
       ges_track_type_name (type));
-  return klass->create_track_objects (object, type);
+  return klass->create_track_elements (object, type);
 }
 
 gboolean
@@ -398,7 +399,7 @@ _set_max_duration (GESTimelineElement * element, GstClockTime maxduration)
 {
   GList *tmp;
 
-  for (tmp = GES_CLIP (element)->trackobjects; tmp; tmp = g_list_next (tmp))
+  for (tmp = GES_CLIP (element)->trackelements; tmp; tmp = g_list_next (tmp))
     ges_timeline_element_set_max_duration (GES_TIMELINE_ELEMENT (tmp->data),
         maxduration);
 
@@ -406,16 +407,16 @@ _set_max_duration (GESTimelineElement * element, GstClockTime maxduration)
 }
 
 /*
- * default implementation of GESClipClass::create_track_objects
+ * default implementation of GESClipClass::create_track_elements
  */
 GList *
-ges_clip_create_track_objects_func (GESClip * object, GESTrackType type)
+ges_clip_create_track_elements_func (GESClip * object, GESTrackType type)
 {
-  GESTrackObject *result;
+  GESTrackElement *result;
 
-  GST_DEBUG_OBJECT (object, "Creating trackobject for track: %s",
+  GST_DEBUG_OBJECT (object, "Creating trackelement for track: %s",
       ges_track_type_name (type));
-  result = ges_clip_create_track_object (object, type);
+  result = ges_clip_create_track_element (object, type);
   if (!result) {
     GST_DEBUG ("Did not create track object");
     return NULL;
@@ -425,12 +426,12 @@ ges_clip_create_track_objects_func (GESClip * object, GESTrackType type)
 }
 
 /**
- * ges_clip_add_track_object:
+ * ges_clip_add_track_element:
  * @object: a #GESClip
- * @trobj: the GESTrackObject
+ * @trobj: the GESTrackElement
  *
  * Add a track object to the timeline object. Should only be called by
- * subclasses implementing the create_track_objects (plural) vmethod.
+ * subclasses implementing the create_track_elements (plural) vmethod.
  *
  * Takes a reference on @trobj.
  *
@@ -438,7 +439,7 @@ ges_clip_create_track_objects_func (GESClip * object, GESTrackType type)
  */
 
 gboolean
-ges_clip_add_track_object (GESClip * object, GESTrackObject * trobj)
+ges_clip_add_track_element (GESClip * object, GESTrackElement * trobj)
 {
   GList *tmp;
   gboolean is_effect;
@@ -448,18 +449,18 @@ ges_clip_add_track_object (GESClip * object, GESTrackObject * trobj)
   GESClipPrivate *priv;
 
   g_return_val_if_fail (GES_IS_CLIP (object), FALSE);
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (trobj), FALSE);
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (trobj), FALSE);
 
   priv = object->priv;
   is_effect = GES_IS_TRACK_EFFECT (trobj);
 
-  GST_LOG ("Got a TrackObject : %p , setting the timeline object as its"
+  GST_LOG ("Got a TrackElement : %p , setting the timeline object as its"
       "creator. Is a TrackEffect %i", trobj, is_effect);
 
   if (!trobj)
     return FALSE;
 
-  ges_track_object_set_clip (trobj, object);
+  ges_track_element_set_clip (trobj, object);
 
   g_object_ref (trobj);
 
@@ -467,39 +468,39 @@ ges_clip_add_track_object (GESClip * object, GESTrackObject * trobj)
   mapping->object = trobj;
   priv->mappings = g_list_append (priv->mappings, mapping);
 
-  GST_DEBUG ("Adding TrackObject to the list of controlled track objects");
+  GST_DEBUG ("Adding TrackElement to the list of controlled track objects");
   /* We steal the initial reference */
 
-  GST_DEBUG ("Setting properties on newly created TrackObject");
+  GST_DEBUG ("Setting properties on newly created TrackElement");
 
   mapping->priority_offset = priv->nb_effects;
 
-  /* If the trackobject is an effect:
+  /* If the trackelement is an effect:
    *  - We add it on top of the list of TrackEffect
-   *  - We put all TrackObject present in the Clip
+   *  - We put all TrackElement present in the Clip
    *    which are not TrackEffect on top of them
    *
    * FIXME: Let the full control over priorities to the user
    */
   if (is_effect) {
     GST_DEBUG
-        ("Moving non on top effect under other TrackObject-s, nb effects %i",
+        ("Moving non on top effect under other TrackElement-s, nb effects %i",
         priv->nb_effects);
-    for (tmp = g_list_nth (object->trackobjects, priv->nb_effects); tmp;
+    for (tmp = g_list_nth (object->trackelements, priv->nb_effects); tmp;
         tmp = tmp->next) {
-      GESTrackObject *tmpo = GES_TRACK_OBJECT (tmp->data);
+      GESTrackElement *tmpo = GES_TRACK_ELEMENT (tmp->data);
 
       /* We make sure not to move the entire #Clip */
-      ges_track_object_set_locked (tmpo, FALSE);
+      ges_track_element_set_locked (tmpo, FALSE);
       _set_priority0 (GES_TIMELINE_ELEMENT (tmpo), _PRIORITY (tmpo) + 1);
-      ges_track_object_set_locked (tmpo, TRUE);
+      ges_track_element_set_locked (tmpo, TRUE);
     }
 
     priv->nb_effects++;
   }
 
-  object->trackobjects =
-      g_list_insert_sorted_with_data (object->trackobjects, trobj,
+  object->trackelements =
+      g_list_insert_sorted_with_data (object->trackelements, trobj,
       (GCompareDataFunc) sort_track_effects, object);
 
   _set_start0 (GES_TIMELINE_ELEMENT (trobj), _START (object));
@@ -509,27 +510,27 @@ ges_clip_add_track_object (GESClip * object, GESTrackObject * trobj)
       _MAXDURATION (object));
 
   klass = GES_CLIP_GET_CLASS (object);
-  if (klass->track_object_added) {
-    GST_DEBUG ("Calling track_object_added subclass method");
-    klass->track_object_added (object, trobj);
+  if (klass->track_element_added) {
+    GST_DEBUG ("Calling track_element_added subclass method");
+    klass->track_element_added (object, trobj);
   } else {
-    GST_DEBUG ("%s doesn't have any track_object_added vfunc implementation",
+    GST_DEBUG ("%s doesn't have any track_element_added vfunc implementation",
         G_OBJECT_CLASS_NAME (klass));
   }
 
   /* Listen to all property changes */
   mapping->start_notifyid =
       g_signal_connect (G_OBJECT (trobj), "notify::start",
-      G_CALLBACK (track_object_start_changed_cb), object);
+      G_CALLBACK (track_element_start_changed_cb), object);
   mapping->duration_notifyid =
       g_signal_connect (G_OBJECT (trobj), "notify::duration",
-      G_CALLBACK (track_object_duration_changed_cb), object);
+      G_CALLBACK (track_element_duration_changed_cb), object);
   mapping->inpoint_notifyid =
       g_signal_connect (G_OBJECT (trobj), "notify::inpoint",
-      G_CALLBACK (track_object_inpoint_changed_cb), object);
+      G_CALLBACK (track_element_inpoint_changed_cb), object);
   mapping->priority_notifyid =
       g_signal_connect (G_OBJECT (trobj), "notify::priority",
-      G_CALLBACK (track_object_priority_changed_cb), object);
+      G_CALLBACK (track_element_priority_changed_cb), object);
 
   get_layer_priorities (priv->layer, &min_prio, &max_prio);
   _set_priority0 (GES_TIMELINE_ELEMENT (trobj), min_prio +
@@ -537,8 +538,8 @@ ges_clip_add_track_object (GESClip * object, GESTrackObject * trobj)
 
   GST_DEBUG ("Returning trobj:%p", trobj);
   if (!GES_IS_TRACK_EFFECT (trobj)) {
-    g_signal_emit (object, ges_clip_signals[TRACK_OBJECT_ADDED], 0,
-        GES_TRACK_OBJECT (trobj));
+    g_signal_emit (object, ges_clip_signals[TRACK_ELEMENT_ADDED], 0,
+        GES_TRACK_ELEMENT (trobj));
   } else {
     /* emit 'effect-added' */
     g_signal_emit (object, ges_clip_signals[EFFECT_ADDED], 0,
@@ -549,72 +550,73 @@ ges_clip_add_track_object (GESClip * object, GESTrackObject * trobj)
 }
 
 /**
- * ges_clip_release_track_object:
+ * ges_clip_release_track_element:
  * @object: a #GESClip
- * @trackobject: the #GESTrackObject to release
+ * @trackelement: the #GESTrackElement to release
  *
- * Release the @trackobject from the control of @object.
+ * Release the @trackelement from the control of @object.
  *
- * Returns: %TRUE if the @trackobject was properly released, else %FALSE.
+ * Returns: %TRUE if the @trackelement was properly released, else %FALSE.
  */
 gboolean
-ges_clip_release_track_object (GESClip * object, GESTrackObject * trackobject)
+ges_clip_release_track_element (GESClip * object,
+    GESTrackElement * trackelement)
 {
   GList *tmp;
   ObjectMapping *mapping = NULL;
   GESClipClass *klass;
 
   g_return_val_if_fail (GES_IS_CLIP (object), FALSE);
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (trackobject), FALSE);
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (trackelement), FALSE);
 
-  GST_DEBUG ("object:%p, trackobject:%p", object, trackobject);
+  GST_DEBUG ("object:%p, trackelement:%p", object, trackelement);
   klass = GES_CLIP_GET_CLASS (object);
 
-  if (!(g_list_find (object->trackobjects, trackobject))) {
-    GST_WARNING ("TrackObject isn't controlled by this object");
+  if (!(g_list_find (object->trackelements, trackelement))) {
+    GST_WARNING ("TrackElement isn't controlled by this object");
     return FALSE;
   }
 
   for (tmp = object->priv->mappings; tmp; tmp = tmp->next) {
     mapping = (ObjectMapping *) tmp->data;
-    if (mapping->object == trackobject)
+    if (mapping->object == trackelement)
       break;
   }
 
   if (tmp && mapping) {
 
     /* Disconnect all notify listeners */
-    g_signal_handler_disconnect (trackobject, mapping->start_notifyid);
-    g_signal_handler_disconnect (trackobject, mapping->duration_notifyid);
-    g_signal_handler_disconnect (trackobject, mapping->inpoint_notifyid);
-    g_signal_handler_disconnect (trackobject, mapping->priority_notifyid);
+    g_signal_handler_disconnect (trackelement, mapping->start_notifyid);
+    g_signal_handler_disconnect (trackelement, mapping->duration_notifyid);
+    g_signal_handler_disconnect (trackelement, mapping->inpoint_notifyid);
+    g_signal_handler_disconnect (trackelement, mapping->priority_notifyid);
 
     g_slice_free (ObjectMapping, mapping);
 
     object->priv->mappings = g_list_delete_link (object->priv->mappings, tmp);
   }
 
-  object->trackobjects = g_list_remove (object->trackobjects, trackobject);
+  object->trackelements = g_list_remove (object->trackelements, trackelement);
 
-  if (GES_IS_TRACK_EFFECT (trackobject)) {
+  if (GES_IS_TRACK_EFFECT (trackelement)) {
     /* emit 'object-removed' */
     object->priv->nb_effects--;
     g_signal_emit (object, ges_clip_signals[EFFECT_REMOVED], 0,
-        GES_TRACK_EFFECT (trackobject));
+        GES_TRACK_EFFECT (trackelement));
   } else
-    g_signal_emit (object, ges_clip_signals[TRACK_OBJECT_REMOVED], 0,
-        GES_TRACK_OBJECT (trackobject));
+    g_signal_emit (object, ges_clip_signals[TRACK_ELEMENT_REMOVED], 0,
+        GES_TRACK_ELEMENT (trackelement));
 
-  ges_track_object_set_clip (trackobject, NULL);
+  ges_track_element_set_clip (trackelement, NULL);
 
-  GST_DEBUG ("Removing reference to track object %p", trackobject);
+  GST_DEBUG ("Removing reference to track object %p", trackelement);
 
-  if (klass->track_object_released) {
-    GST_DEBUG ("Calling track_object_released subclass method");
-    klass->track_object_released (object, trackobject);
+  if (klass->track_element_released) {
+    GST_DEBUG ("Calling track_element_released subclass method");
+    klass->track_element_released (object, trackelement);
   }
 
-  g_object_unref (trackobject);
+  g_object_unref (trackelement);
 
   /* FIXME : resync properties ? */
 
@@ -630,24 +632,24 @@ ges_clip_set_layer (GESClip * object, GESTimelineLayer * layer)
 }
 
 gboolean
-ges_clip_fill_track_object (GESClip * object,
-    GESTrackObject * trackobj, GstElement * gnlobj)
+ges_clip_fill_track_element (GESClip * object,
+    GESTrackElement * trackelement, GstElement * gnlobj)
 {
   GESClipClass *class;
   gboolean res = TRUE;
 
-  GST_DEBUG ("object:%p, trackobject:%p, gnlobject:%p",
-      object, trackobj, gnlobj);
+  GST_DEBUG ("object:%p, trackelement:%p, gnlobject:%p",
+      object, trackelement, gnlobj);
 
   class = GES_CLIP_GET_CLASS (object);
 
   if (class->need_fill_track) {
-    if (G_UNLIKELY (class->fill_track_object == NULL)) {
-      GST_WARNING ("No 'fill_track_object' implementation available");
+    if (G_UNLIKELY (class->fill_track_element == NULL)) {
+      GST_WARNING ("No 'fill_track_element' implementation available");
       return FALSE;
     }
 
-    res = class->fill_track_object (object, trackobj, gnlobj);
+    res = class->fill_track_element (object, trackelement, gnlobj);
   }
 
   GST_DEBUG ("Returning res:%d", res);
@@ -656,16 +658,16 @@ ges_clip_fill_track_object (GESClip * object,
 }
 
 gboolean
-ges_clip_fill_track_object_func (GESClip * object,
-    GESTrackObject * trackobj, GstElement * gnlobj)
+ges_clip_fill_track_element_func (GESClip * object,
+    GESTrackElement * trackelement, GstElement * gnlobj)
 {
-  GST_WARNING ("No 'fill_track_object' implementation !");
+  GST_WARNING ("No 'fill_track_element' implementation !");
 
   return FALSE;
 }
 
 static ObjectMapping *
-find_object_mapping (GESClip * object, GESTrackObject * child)
+find_object_mapping (GESClip * object, GESTrackElement * child)
 {
   GList *tmp;
 
@@ -682,7 +684,7 @@ static gboolean
 _set_start (GESTimelineElement * element, GstClockTime start)
 {
   GList *tmp;
-  GESTrackObject *tr;
+  GESTrackElement *tr;
   ObjectMapping *map;
   gboolean snap = FALSE;
   GESTimeline *timeline = NULL;
@@ -698,11 +700,11 @@ _set_start (GESTimelineElement * element, GstClockTime start)
 
   object->priv->ignore_notifies = TRUE;
 
-  for (tmp = object->trackobjects; tmp; tmp = g_list_next (tmp)) {
-    tr = (GESTrackObject *) tmp->data;
+  for (tmp = object->trackelements; tmp; tmp = g_list_next (tmp)) {
+    tr = (GESTrackElement *) tmp->data;
     map = find_object_mapping (object, tr);
 
-    if (ges_track_object_is_locked (tr) && tr != object->priv->initiated_move) {
+    if (ges_track_element_is_locked (tr) && tr != object->priv->initiated_move) {
       gint64 new_start = start - map->start_offset;
 
       /* Move the child... */
@@ -733,15 +735,15 @@ static gboolean
 _set_inpoint (GESTimelineElement * element, GstClockTime inpoint)
 {
   GList *tmp;
-  GESTrackObject *tr;
+  GESTrackElement *tr;
 
   GESClip *object = GES_CLIP (element);
 
-  for (tmp = object->trackobjects; tmp; tmp = g_list_next (tmp)) {
-    tr = (GESTrackObject *) tmp->data;
+  for (tmp = object->trackelements; tmp; tmp = g_list_next (tmp)) {
+    tr = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_is_locked (tr))
-      /* call set_inpoint on each trackobject */
+    if (ges_track_element_is_locked (tr))
+      /* call set_inpoint on each trackelement */
       _set_inpoint0 (GES_TIMELINE_ELEMENT (tr), inpoint);
   }
 
@@ -752,7 +754,7 @@ static gboolean
 _set_duration (GESTimelineElement * element, GstClockTime duration)
 {
   GList *tmp;
-  GESTrackObject *tr;
+  GESTrackElement *tr;
   GESTimeline *timeline = NULL;
   gboolean snap = FALSE;
 
@@ -763,15 +765,15 @@ _set_duration (GESTimelineElement * element, GstClockTime duration)
     timeline = ges_timeline_layer_get_timeline (object->priv->layer);
 
   /* If the class has snapping enabled, the object is in a timeline,
-   * and we are not following a moved TrackObject, we snap */
+   * and we are not following a moved TrackElement, we snap */
   snap = timeline && priv->initiated_move == NULL ? TRUE : FALSE;
 
   object->priv->ignore_notifies = TRUE;
-  for (tmp = object->trackobjects; tmp; tmp = g_list_next (tmp)) {
-    tr = (GESTrackObject *) tmp->data;
+  for (tmp = object->trackelements; tmp; tmp = g_list_next (tmp)) {
+    tr = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_is_locked (tr)) {
-      /* call set_duration on each trackobject
+    if (ges_track_element_is_locked (tr)) {
+      /* call set_duration on each trackelement
        * and make the snapping happen if in a timeline */
       if (G_LIKELY (snap))
         ges_timeline_trim_object_simple (timeline, tr, NULL, GES_EDGE_END,
@@ -789,7 +791,7 @@ static gboolean
 _set_priority (GESTimelineElement * element, guint32 priority)
 {
   GList *tmp;
-  GESTrackObject *tr;
+  GESTrackElement *tr;
   ObjectMapping *map;
   GESClipPrivate *priv;
   guint32 layer_min_gnl_prio, layer_max_gnl_prio;
@@ -801,11 +803,11 @@ _set_priority (GESTimelineElement * element, guint32 priority)
   get_layer_priorities (priv->layer, &layer_min_gnl_prio, &layer_max_gnl_prio);
 
   priv->ignore_notifies = TRUE;
-  for (tmp = object->trackobjects; tmp; tmp = g_list_next (tmp)) {
-    tr = (GESTrackObject *) tmp->data;
+  for (tmp = object->trackelements; tmp; tmp = g_list_next (tmp)) {
+    tr = (GESTrackElement *) tmp->data;
     map = find_object_mapping (object, tr);
 
-    if (ges_track_object_is_locked (tr)) {
+    if (ges_track_element_is_locked (tr)) {
       guint32 real_tck_prio;
 
       /* Move the child... */
@@ -827,7 +829,7 @@ _set_priority (GESTimelineElement * element, guint32 priority)
     }
   }
 
-  object->trackobjects = g_list_sort_with_data (object->trackobjects,
+  object->trackelements = g_list_sort_with_data (object->trackelements,
       (GCompareDataFunc) sort_track_effects, object);
   priv->ignore_notifies = FALSE;
 
@@ -920,41 +922,41 @@ ges_clip_move_to_layer (GESClip * object, GESTimelineLayer * layer)
 }
 
 /**
- * ges_clip_find_track_object:
+ * ges_clip_find_track_element:
  * @object: a #GESClip
  * @track: a #GESTrack or NULL
  * @type: a #GType indicating the type of track object you are looking
  * for or %G_TYPE_NONE if you do not care about the track type.
  *
- * Finds the #GESTrackObject controlled by @object that is used in @track. You
+ * Finds the #GESTrackElement controlled by @object that is used in @track. You
  * may optionally specify a GType to further narrow search criteria.
  *
  * Note: If many objects match, then the one with the highest priority will be
  * returned.
  *
- * Returns: (transfer full): The #GESTrackObject used by @track, else %NULL.
+ * Returns: (transfer full): The #GESTrackElement used by @track, else %NULL.
  * Unref after usage.
  */
 
-GESTrackObject *
-ges_clip_find_track_object (GESClip * object, GESTrack * track, GType type)
+GESTrackElement *
+ges_clip_find_track_element (GESClip * object, GESTrack * track, GType type)
 {
-  GESTrackObject *ret = NULL;
+  GESTrackElement *ret = NULL;
   GList *tmp;
-  GESTrackObject *otmp;
+  GESTrackElement *otmp;
 
   g_return_val_if_fail (GES_IS_CLIP (object), NULL);
   g_return_val_if_fail (GES_IS_TRACK (track), NULL);
 
-  for (tmp = object->trackobjects; tmp; tmp = g_list_next (tmp)) {
-    otmp = (GESTrackObject *) tmp->data;
+  for (tmp = object->trackelements; tmp; tmp = g_list_next (tmp)) {
+    otmp = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (otmp) == track) {
+    if (ges_track_element_get_track (otmp) == track) {
       if ((type != G_TYPE_NONE) &&
           !G_TYPE_CHECK_INSTANCE_TYPE (tmp->data, type))
         continue;
 
-      ret = GES_TRACK_OBJECT (tmp->data);
+      ret = GES_TRACK_ELEMENT (tmp->data);
       g_object_ref (ret);
       break;
     }
@@ -985,25 +987,25 @@ ges_clip_get_layer (GESClip * object)
 }
 
 /**
- * ges_clip_get_track_objects:
+ * ges_clip_get_track_elements:
  * @object: a #GESClip
  *
- * Get the list of #GESTrackObject contained in @object
+ * Get the list of #GESTrackElement contained in @object
  *
- * Returns: (transfer full) (element-type GESTrackObject): The list of
- * trackobject contained in @object.
+ * Returns: (transfer full) (element-type GESTrackElement): The list of
+ * trackelement contained in @object.
  * The user is responsible for unreffing the contained objects
  * and freeing the list.
  */
 GList *
-ges_clip_get_track_objects (GESClip * object)
+ges_clip_get_track_elements (GESClip * object)
 {
   GList *ret;
   GList *tmp;
 
   g_return_val_if_fail (GES_IS_CLIP (object), NULL);
 
-  ret = g_list_copy (object->trackobjects);
+  ret = g_list_copy (object->trackelements);
 
   for (tmp = ret; tmp; tmp = tmp->next) {
     g_object_ref (tmp->data);
@@ -1017,10 +1019,10 @@ sort_track_effects (gpointer a, gpointer b, GESClip * object)
 {
   guint prio_offset_a, prio_offset_b;
   ObjectMapping *map_a, *map_b;
-  GESTrackObject *obj_a, *obj_b;
+  GESTrackElement *obj_a, *obj_b;
 
-  obj_a = GES_TRACK_OBJECT (a);
-  obj_b = GES_TRACK_OBJECT (b);
+  obj_a = GES_TRACK_ELEMENT (a);
+  obj_b = GES_TRACK_ELEMENT (b);
 
   map_a = find_object_mapping (object, obj_a);
   map_b = find_object_mapping (object, obj_b);
@@ -1042,7 +1044,7 @@ sort_track_effects (gpointer a, gpointer b, GESClip * object)
  *
  * Get effects applied on @object
  *
- * Returns: (transfer full) (element-type GESTrackObject): a #GList of the
+ * Returns: (transfer full) (element-type GESTrackElement): a #GList of the
  * #GESTrackEffect that are applied on @object order by ascendant priorities.
  * The refcount of the objects will be increased. The user will have to
  * unref each #GESTrackEffect and free the #GList.
@@ -1061,7 +1063,7 @@ ges_clip_get_top_effects (GESClip * object)
       object->priv->nb_effects);
   ret = NULL;
 
-  for (tmp = object->trackobjects, i = 0; i < object->priv->nb_effects;
+  for (tmp = object->trackelements, i = 0; i < object->priv->nb_effects;
       tmp = tmp->next, i++) {
     ret = g_list_append (ret, g_object_ref (tmp->data));
   }
@@ -1086,7 +1088,7 @@ ges_clip_get_top_effect_position (GESClip * object, GESTrackEffect * effect)
   g_return_val_if_fail (GES_IS_CLIP (object), -1);
 
   return find_object_mapping (object,
-      GES_TRACK_OBJECT (effect))->priority_offset;
+      GES_TRACK_ELEMENT (effect))->priority_offset;
 }
 
 /**
@@ -1109,16 +1111,16 @@ ges_clip_set_top_effect_priority (GESClip * object,
   gint inc;
   GList *tmp;
   guint current_prio;
-  GESTrackObject *tck_obj;
+  GESTrackElement *tck_obj;
 
   g_return_val_if_fail (GES_IS_CLIP (object), FALSE);
 
-  tck_obj = GES_TRACK_OBJECT (effect);
+  tck_obj = GES_TRACK_ELEMENT (effect);
   current_prio = _PRIORITY (tck_obj);
 
   /*  We don't change the priority */
   if (current_prio == newpriority ||
-      (G_UNLIKELY (ges_track_object_get_clip (tck_obj) != object)))
+      (G_UNLIKELY (ges_track_element_get_clip (tck_obj) != object)))
     return FALSE;
 
   if (newpriority > (object->priv->nb_effects - 1)) {
@@ -1137,8 +1139,8 @@ ges_clip_set_top_effect_priority (GESClip * object,
     inc = +1;
 
   _set_priority0 (GES_TIMELINE_ELEMENT (tck_obj), newpriority);
-  for (tmp = object->trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *tmpo = GES_TRACK_OBJECT (tmp->data);
+  for (tmp = object->trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *tmpo = GES_TRACK_ELEMENT (tmp->data);
     guint tck_priority = _PRIORITY (tmpo);
 
     if ((inc == +1 && tck_priority >= newpriority) ||
@@ -1147,7 +1149,7 @@ ges_clip_set_top_effect_priority (GESClip * object,
     }
   }
 
-  object->trackobjects = g_list_sort_with_data (object->trackobjects,
+  object->trackelements = g_list_sort_with_data (object->trackelements,
       (GCompareDataFunc) sort_track_effects, object);
 
   return TRUE;
@@ -1184,16 +1186,16 @@ ges_clip_edit (GESClip * object, GList * layers,
 
   g_return_val_if_fail (GES_IS_CLIP (object), FALSE);
 
-  if (!G_UNLIKELY (object->trackobjects)) {
+  if (!G_UNLIKELY (object->trackelements)) {
     GST_WARNING_OBJECT (object, "Trying to edit, but not containing"
-        "any TrackObject yet.");
+        "any TrackElement yet.");
     return FALSE;
   }
 
-  for (tmp = object->trackobjects; tmp; tmp = g_list_next (tmp)) {
-    if (ges_track_object_is_locked (tmp->data)
+  for (tmp = object->trackelements; tmp; tmp = g_list_next (tmp)) {
+    if (ges_track_element_is_locked (tmp->data)
         && GES_IS_TRACK_SOURCE (tmp->data)) {
-      ret &= ges_track_object_edit (tmp->data, layers, mode, edge, position);
+      ret &= ges_track_element_edit (tmp->data, layers, mode, edge, position);
       break;
     }
   }
@@ -1267,7 +1269,7 @@ ges_clip_split (GESClip * object, guint64 position)
       duration + start - position);
 
   if (object->priv->layer) {
-    /* We do not want the timeline to create again TrackObject-s */
+    /* We do not want the timeline to create again TrackElement-s */
     ges_clip_set_moving_from_layer (new_object, TRUE);
     ges_timeline_layer_add_object (object->priv->layer, new_object);
     ges_clip_set_moving_from_layer (new_object, FALSE);
@@ -1277,60 +1279,61 @@ ges_clip_split (GESClip * object, guint64 position)
    * properly in the following loop
    * FIXME: Avoid setting it oureself reworking the API */
   GES_TIMELINE_ELEMENT (object)->duration = position - _START (object);
-  for (tmp = object->trackobjects; tmp; tmp = tmp->next) {
+  for (tmp = object->trackelements; tmp; tmp = tmp->next) {
     GESTrack *track;
 
-    GESTrackObject *new_tckobj, *tckobj = GES_TRACK_OBJECT (tmp->data);
+    GESTrackElement *new_trackelement, *trackelement =
+        GES_TRACK_ELEMENT (tmp->data);
 
-    duration = _DURATION (tckobj);
-    start = _START (tckobj);
-    inpoint = _INPOINT (tckobj);
+    duration = _DURATION (trackelement);
+    start = _START (trackelement);
+    inpoint = _INPOINT (trackelement);
 
     if (position <= start || position >= (start + duration)) {
-      GST_DEBUG_OBJECT (tckobj, "Outside %" GST_TIME_FORMAT "the boundaries "
+      GST_DEBUG_OBJECT (trackelement,
+          "Outside %" GST_TIME_FORMAT "the boundaries "
           "not copying it ( start %" GST_TIME_FORMAT ", end %" GST_TIME_FORMAT
-          ")", GST_TIME_ARGS (position),
-          GST_TIME_ARGS (_START (tckobj)),
-          GST_TIME_ARGS (_START (tckobj) + _DURATION (tckobj)));
+          ")", GST_TIME_ARGS (position), GST_TIME_ARGS (_START (trackelement)),
+          GST_TIME_ARGS (_START (trackelement) + _DURATION (trackelement)));
       continue;
     }
 
-    new_tckobj =
-        GES_TRACK_OBJECT (ges_timeline_element_copy (GES_TIMELINE_ELEMENT
-            (tckobj), TRUE));
-    if (new_tckobj == NULL) {
-      GST_WARNING_OBJECT (tckobj, "Could not create a copy");
+    new_trackelement =
+        GES_TRACK_ELEMENT (ges_timeline_element_copy (GES_TIMELINE_ELEMENT
+            (trackelement), TRUE));
+    if (new_trackelement == NULL) {
+      GST_WARNING_OBJECT (trackelement, "Could not create a copy");
       continue;
     }
 
-    ges_clip_add_track_object (new_object, new_tckobj);
+    ges_clip_add_track_element (new_object, new_trackelement);
 
-    track = ges_track_object_get_track (tckobj);
+    track = ges_track_element_get_track (trackelement);
     if (track == NULL)
-      GST_DEBUG_OBJECT (tckobj, "Was not in a track, not adding %p to"
-          "any track", new_tckobj);
+      GST_DEBUG_OBJECT (trackelement, "Was not in a track, not adding %p to"
+          "any track", new_trackelement);
     else
-      ges_track_add_object (track, new_tckobj);
+      ges_track_add_object (track, new_trackelement);
 
-    /* Unlock TrackObject-s as we do not want the container to move
+    /* Unlock TrackElement-s as we do not want the container to move
      * syncronously */
-    locked = ges_track_object_is_locked (tckobj);
-    ges_track_object_set_locked (new_tckobj, FALSE);
-    ges_track_object_set_locked (tckobj, FALSE);
+    locked = ges_track_element_is_locked (trackelement);
+    ges_track_element_set_locked (new_trackelement, FALSE);
+    ges_track_element_set_locked (trackelement, FALSE);
 
     /* Set 'new' track object timing propeties */
-    _set_start0 (GES_TIMELINE_ELEMENT (new_tckobj), position);
-    _set_inpoint0 (GES_TIMELINE_ELEMENT (new_tckobj),
+    _set_start0 (GES_TIMELINE_ELEMENT (new_trackelement), position);
+    _set_inpoint0 (GES_TIMELINE_ELEMENT (new_trackelement),
         inpoint + duration - (duration + start - position));
-    _set_duration0 (GES_TIMELINE_ELEMENT (new_tckobj),
+    _set_duration0 (GES_TIMELINE_ELEMENT (new_trackelement),
         duration + start - position);
 
     /* Set 'old' track object duration */
-    _set_duration0 (GES_TIMELINE_ELEMENT (tckobj), position - start);
+    _set_duration0 (GES_TIMELINE_ELEMENT (trackelement), position - start);
 
     /* And let track objects in the same locking state as before. */
-    ges_track_object_set_locked (tckobj, locked);
-    ges_track_object_set_locked (new_tckobj, locked);
+    ges_track_element_set_locked (trackelement, locked);
+    ges_track_element_set_locked (new_trackelement, locked);
   }
 
   return new_object;
@@ -1374,10 +1377,10 @@ ges_clip_get_supported_formats (GESClip * object)
 /**
  * ges_clip_objects_set_locked:
  * @object: the #GESClip
- * @locked: whether the #GESTrackObject contained in @object are locked to it.
+ * @locked: whether the #GESTrackElement contained in @object are locked to it.
  *
- * Set the locking status of all the #GESTrackObject contained in @object to @locked.
- * See the ges_track_object_set_locked documentation for more details.
+ * Set the locking status of all the #GESTrackElement contained in @object to @locked.
+ * See the ges_track_element_set_locked documentation for more details.
  *
  * Since: 0.10.XX
  */
@@ -1389,14 +1392,15 @@ ges_clip_objects_set_locked (GESClip * object, gboolean locked)
   g_return_if_fail (GES_IS_CLIP (object));
 
   for (tmp = object->priv->mappings; tmp; tmp = g_list_next (tmp)) {
-    ges_track_object_set_locked (((ObjectMapping *) tmp->data)->object, locked);
+    ges_track_element_set_locked (((ObjectMapping *) tmp->data)->object,
+        locked);
   }
 }
 
 gboolean
 _ripple (GESTimelineElement * element, GstClockTime start)
 {
-  GList *tmp, *tckobjs;
+  GList *tmp, *trackelements;
   gboolean ret = TRUE;
   GESTimeline *timeline;
   GESClip *object = GES_CLIP (element);
@@ -1408,17 +1412,17 @@ _ripple (GESTimelineElement * element, GstClockTime start)
     return FALSE;
   }
 
-  tckobjs = ges_clip_get_track_objects (object);
-  for (tmp = tckobjs; tmp; tmp = g_list_next (tmp)) {
-    if (ges_track_object_is_locked (tmp->data)) {
-      ret = timeline_ripple_object (timeline, GES_TRACK_OBJECT (tmp->data),
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = g_list_next (tmp)) {
+    if (ges_track_element_is_locked (tmp->data)) {
+      ret = timeline_ripple_object (timeline, GES_TRACK_ELEMENT (tmp->data),
           NULL, GES_EDGE_NONE, start);
       /* As we work only with locked objects, the changes will be reflected
-       * to others controlled TrackObjects */
+       * to others controlled TrackElements */
       break;
     }
   }
-  g_list_free_full (tckobjs, g_object_unref);
+  g_list_free_full (trackelements, g_object_unref);
 
   return ret;
 }
@@ -1426,7 +1430,7 @@ _ripple (GESTimelineElement * element, GstClockTime start)
 static gboolean
 _ripple_end (GESTimelineElement * element, GstClockTime end)
 {
-  GList *tmp, *tckobjs;
+  GList *tmp, *trackelements;
   gboolean ret = TRUE;
   GESTimeline *timeline;
   GESClip *object = GES_CLIP (element);
@@ -1438,17 +1442,17 @@ _ripple_end (GESTimelineElement * element, GstClockTime end)
     return FALSE;
   }
 
-  tckobjs = ges_clip_get_track_objects (object);
-  for (tmp = tckobjs; tmp; tmp = g_list_next (tmp)) {
-    if (ges_track_object_is_locked (tmp->data)) {
-      ret = timeline_ripple_object (timeline, GES_TRACK_OBJECT (tmp->data),
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = g_list_next (tmp)) {
+    if (ges_track_element_is_locked (tmp->data)) {
+      ret = timeline_ripple_object (timeline, GES_TRACK_ELEMENT (tmp->data),
           NULL, GES_EDGE_END, end);
       /* As we work only with locked objects, the changes will be reflected
-       * to others controlled TrackObjects */
+       * to others controlled TrackElements */
       break;
     }
   }
-  g_list_free_full (tckobjs, g_object_unref);
+  g_list_free_full (trackelements, g_object_unref);
 
   return ret;
 }
@@ -1456,7 +1460,7 @@ _ripple_end (GESTimelineElement * element, GstClockTime end)
 gboolean
 _roll_start (GESTimelineElement * element, GstClockTime start)
 {
-  GList *tmp, *tckobjs;
+  GList *tmp, *trackelements;
   gboolean ret = TRUE;
   GESTimeline *timeline;
 
@@ -1469,17 +1473,17 @@ _roll_start (GESTimelineElement * element, GstClockTime start)
     return FALSE;
   }
 
-  tckobjs = ges_clip_get_track_objects (object);
-  for (tmp = tckobjs; tmp; tmp = g_list_next (tmp)) {
-    if (ges_track_object_is_locked (tmp->data)) {
-      ret = timeline_roll_object (timeline, GES_TRACK_OBJECT (tmp->data),
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = g_list_next (tmp)) {
+    if (ges_track_element_is_locked (tmp->data)) {
+      ret = timeline_roll_object (timeline, GES_TRACK_ELEMENT (tmp->data),
           NULL, GES_EDGE_START, start);
       /* As we work only with locked objects, the changes will be reflected
-       * to others controlled TrackObjects */
+       * to others controlled TrackElements */
       break;
     }
   }
-  g_list_free_full (tckobjs, g_object_unref);
+  g_list_free_full (trackelements, g_object_unref);
 
   return ret;
 }
@@ -1487,7 +1491,7 @@ _roll_start (GESTimelineElement * element, GstClockTime start)
 gboolean
 _roll_end (GESTimelineElement * element, GstClockTime end)
 {
-  GList *tmp, *tckobjs;
+  GList *tmp, *trackelements;
   gboolean ret = TRUE;
   GESTimeline *timeline;
 
@@ -1500,17 +1504,17 @@ _roll_end (GESTimelineElement * element, GstClockTime end)
   }
 
 
-  tckobjs = ges_clip_get_track_objects (object);
-  for (tmp = tckobjs; tmp; tmp = g_list_next (tmp)) {
-    if (ges_track_object_is_locked (tmp->data)) {
-      ret = timeline_roll_object (timeline, GES_TRACK_OBJECT (tmp->data),
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = g_list_next (tmp)) {
+    if (ges_track_element_is_locked (tmp->data)) {
+      ret = timeline_roll_object (timeline, GES_TRACK_ELEMENT (tmp->data),
           NULL, GES_EDGE_END, end);
       /* As we work only with locked objects, the changes will be reflected
-       * to others controlled TrackObjects */
+       * to others controlled TrackElements */
       break;
     }
   }
-  g_list_free_full (tckobjs, g_object_unref);
+  g_list_free_full (trackelements, g_object_unref);
 
   return ret;
 }
@@ -1518,7 +1522,7 @@ _roll_end (GESTimelineElement * element, GstClockTime end)
 gboolean
 _trim (GESTimelineElement * element, GstClockTime start)
 {
-  GList *tmp, *tckobjs;
+  GList *tmp, *trackelements;
   gboolean ret = TRUE;
   GESTimeline *timeline;
 
@@ -1531,15 +1535,15 @@ _trim (GESTimelineElement * element, GstClockTime start)
     return FALSE;
   }
 
-  tckobjs = ges_clip_get_track_objects (object);
-  for (tmp = tckobjs; tmp; tmp = g_list_next (tmp)) {
-    if (ges_track_object_is_locked (tmp->data)) {
-      ret = timeline_trim_object (timeline, GES_TRACK_OBJECT (tmp->data),
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = g_list_next (tmp)) {
+    if (ges_track_element_is_locked (tmp->data)) {
+      ret = timeline_trim_object (timeline, GES_TRACK_ELEMENT (tmp->data),
           NULL, GES_EDGE_START, start);
       break;
     }
   }
-  g_list_free_full (tckobjs, g_object_unref);
+  g_list_free_full (trackelements, g_object_unref);
 
   return ret;
 }
@@ -1547,11 +1551,11 @@ _trim (GESTimelineElement * element, GstClockTime start)
 /**
  * ges_clip_add_asset:
  * @object: a #GESClip
- * @asset: a #GESAsset with #GES_TYPE_TRACK_OBJECT as extractable_type
+ * @asset: a #GESAsset with #GES_TYPE_TRACK_ELEMENT as extractable_type
  *
- * Extracts a #GESTrackObject from @asset and adds it to the @object.
+ * Extracts a #GESTrackElement from @asset and adds it to the @object.
  * Should only be called in order to add operations to a #GESClip,
- * ni other cases TrackObject are added automatically when adding the
+ * ni other cases TrackElement are added automatically when adding the
  * #GESClip/#GESAsset to a layer.
  *
  * Takes a reference on @trobj.
@@ -1565,10 +1569,10 @@ ges_clip_add_asset (GESClip * object, GESAsset * asset)
   g_return_val_if_fail (GES_IS_CLIP (object), FALSE);
   g_return_val_if_fail (GES_IS_ASSET (asset), FALSE);
   g_return_val_if_fail (g_type_is_a (ges_asset_get_extractable_type
-          (asset), GES_TYPE_TRACK_OBJECT), FALSE);
+          (asset), GES_TYPE_TRACK_ELEMENT), FALSE);
 
-  return ges_clip_add_track_object (object,
-      GES_TRACK_OBJECT (ges_asset_extract (asset, NULL)));
+  return ges_clip_add_track_element (object,
+      GES_TRACK_ELEMENT (ges_asset_extract (asset, NULL)));
 }
 
 static void
@@ -1578,7 +1582,7 @@ update_height (GESClip * object)
   guint32 min_prio = G_MAXUINT32, max_prio = 0;
 
   /* Go over all childs and check if height has changed */
-  for (tmp = object->trackobjects; tmp; tmp = tmp->next) {
+  for (tmp = object->trackelements; tmp; tmp = tmp->next) {
     guint tck_priority = _PRIORITY (tmp->data);
 
     if (tck_priority < min_prio)
@@ -1604,7 +1608,7 @@ update_height (GESClip * object)
  */
 
 static void
-track_object_start_changed_cb (GESTrackObject * child,
+track_element_start_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESClip * object)
 {
   ObjectMapping *map;
@@ -1618,7 +1622,7 @@ track_object_start_changed_cb (GESTrackObject * child,
     /* something massively screwed up if we get this */
     return;
 
-  if (!ges_track_object_is_locked (child)) {
+  if (!ges_track_element_is_locked (child)) {
     /* Update the internal start_offset */
     map->start_offset = _START (element) - _START (child);
   } else {
@@ -1630,7 +1634,7 @@ track_object_start_changed_cb (GESTrackObject * child,
 }
 
 static void
-track_object_inpoint_changed_cb (GESTrackObject * child,
+track_element_inpoint_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESClip * object)
 {
   ObjectMapping *map;
@@ -1644,7 +1648,7 @@ track_object_inpoint_changed_cb (GESTrackObject * child,
     /* something massively screwed up if we get this */
     return;
 
-  if (!ges_track_object_is_locked (child)) {
+  if (!ges_track_element_is_locked (child)) {
     /* Update the internal start_offset */
     map->inpoint_offset = _INPOINT (element) - _INPOINT (child);
   } else {
@@ -1657,7 +1661,7 @@ track_object_inpoint_changed_cb (GESTrackObject * child,
 }
 
 static void
-track_object_duration_changed_cb (GESTrackObject * child,
+track_element_duration_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESClip * object)
 {
   ObjectMapping *map;
@@ -1671,7 +1675,7 @@ track_object_duration_changed_cb (GESTrackObject * child,
     /* something massively screwed up if we get this */
     return;
 
-  if (!ges_track_object_is_locked (child)) {
+  if (!ges_track_element_is_locked (child)) {
     /* Update the internal start_offset */
     map->duration_offset = _DURATION (element) - _DURATION (child);
   } else {
@@ -1684,7 +1688,7 @@ track_object_duration_changed_cb (GESTrackObject * child,
 }
 
 static void
-track_object_priority_changed_cb (GESTrackObject * child,
+track_element_priority_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESClip * object)
 {
   ObjectMapping *map;
@@ -1693,7 +1697,8 @@ track_object_priority_changed_cb (GESTrackObject * child,
 
   guint tck_priority = _PRIORITY (child);
 
-  GST_DEBUG ("TrackObject %p priority changed to %i", child, _PRIORITY (child));
+  GST_DEBUG ("TrackElement %p priority changed to %i", child,
+      _PRIORITY (child));
 
   if (object->priv->ignore_notifies)
     return;
@@ -1707,7 +1712,7 @@ track_object_priority_changed_cb (GESTrackObject * child,
     /* something massively screwed up if we get this */
     return;
 
-  if (!ges_track_object_is_locked (child)) {
+  if (!ges_track_element_is_locked (child)) {
     if (tck_priority < layer_min_gnl_prio || tck_priority > layer_max_gnl_prio) {
       GST_WARNING ("%p priority of %i, is outside of its containing "
           "layer space. (%d/%d). This is a bug in the program.", element,
index b22eb16b909ff4bda33de3b3e7fa065c14e1b27f..bb653e6a58f6e3c8a75dbfa7cf40db33896b1fd9 100644 (file)
@@ -39,9 +39,9 @@ G_BEGIN_DECLS
 typedef struct _GESClipPrivate GESClipPrivate;
 
 /**
- * GESFillTrackObjectFunc:
+ * GESFillTrackElementFunc:
  * @object: the #GESClip controlling the track object
- * @trobject: the #GESTrackObject
+ * @trobject: the #GESTrackElement
  * @gnlobj: the GNonLin object that needs to be filled.
  *
  * A function that will be called when the GNonLin object of a corresponding
@@ -52,54 +52,54 @@ typedef struct _GESClipPrivate GESClipPrivate;
  *
  * Returns: TRUE if the implementer succesfully filled the @gnlobj, else #FALSE.
  */
-typedef gboolean (*GESFillTrackObjectFunc) (GESClip *object,
-                                            GESTrackObject *trobject,
+typedef gboolean (*GESFillTrackElementFunc) (GESClip *object,
+                                            GESTrackElement *trobject,
                                             GstElement *gnlobj);
 
 /**
- * GESCreateTrackObjectFunc:
+ * GESCreateTrackElementFunc:
  * @object: a #GESClip
  * @type: a #GESTrackType
  *
  * Creates the 'primary' track object for this @object.
  *
  * Subclasses should implement this method if they only provide a
- * single #GESTrackObject per track.
+ * single #GESTrackElement per track.
  *
- * If the subclass needs to create more than one #GESTrackObject for a
- * given track, then it should implement the 'create_track_objects'
+ * If the subclass needs to create more than one #GESTrackElement for a
+ * given track, then it should implement the 'create_track_elements'
  * method instead.
  *
- * The implementer of this function shall return the proper #GESTrackObject
+ * The implementer of this function shall return the proper #GESTrackElement
  * that should be controlled by @object for the given @track.
  *
- * The returned #GESTrackObject will be automatically added to the list
+ * The returned #GESTrackElement will be automatically added to the list
  * of objects controlled by the #GESClip.
  *
- * Returns: the #GESTrackObject to be used, or %NULL if it can't provide one
+ * Returns: the #GESTrackElement to be used, or %NULL if it can't provide one
  * for the given @track.
  */
-typedef GESTrackObject *(*GESCreateTrackObjectFunc) (GESClip * object,
+typedef GESTrackElement *(*GESCreateTrackElementFunc) (GESClip * object,
                                                      GESTrackType type);
 
 /**
- * GESCreateTrackObjectsFunc:
+ * GESCreateTrackElementsFunc:
  * @object: a #GESClip
  * @type: a #GESTrackType
  *
  * 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.
+ * return more than one #GESTrackElement(s) for a given #GESTrack.
  *
  * For each object created, the subclass must call
- * ges_clip_add_track_object() with the newly created object
+ * ges_clip_add_track_element() with the newly created object
  * and provided @type.
  *
  * Returns: %TRUE on success %FALSE on failure.
  */
 
-typedef GList * (*GESCreateTrackObjectsFunc) (GESClip * object, GESTrackType type);
+typedef GList * (*GESCreateTrackElementsFunc) (GESClip * object, GESTrackType type);
 
 /**
  * GES_CLIP_HEIGHT:
@@ -111,7 +111,7 @@ typedef GList * (*GESCreateTrackObjectsFunc) (GESClip * object, GESTrackType typ
 
 /**
  * GESClip:
- * @trackobjects: (element-type GES.TrackObject): A list of TrackObject
+ * @trackelements: (element-type GES.TrackElement): A list of TrackElement
  * controlled by this Clip sorted by priority. NOTE: Do not modify.
  *
  * The #GESClip base class.
@@ -121,7 +121,7 @@ struct _GESClip
   GESTimelineElement parent;
 
   /*< readonly >*/
-  GList *trackobjects;
+  GList *trackelements;
 
   /* We don't add those properties to the priv struct for optimization purposes
    * start, inpoint, duration and fullduration are in nanoseconds */
@@ -137,20 +137,20 @@ struct _GESClip
 
 /**
  * GESClipClass:
- * @create_track_object: method to create a single #GESTrackObject for a given #GESTrack.
- * @create_track_objects: method to create multiple #GESTrackObjects for a
+ * @create_track_element: method to create a single #GESTrackElement for a given #GESTrack.
+ * @create_track_elements: method to create multiple #GESTrackElements for a
  * #GESTrack.
- * @fill_track_object: method to fill an associated #GESTrackObject.
- * @need_fill_track: Set to TRUE if @fill_track_object needs to be called.
+ * @fill_track_element: method to fill an associated #GESTrackElement.
+ * @need_fill_track: Set to TRUE if @fill_track_element needs to be called.
  * @snaps: Set to %TRUE if the objects of this type snap with
  *  other objects in a timeline %FALSE otherwise (default is %FALSE). Basically only
  *  sources snap.
- * @track_object_added: Should be overridden by subclasses if they need to perform an
- * operation when a #GESTrackObject is added. Since: 0.10.2
- * @track_object_released: Should be overridden by subclasses if they need to perform
- * action when a #GESTrackObject is released. Since: 0.10.2
+ * @track_element_added: Should be overridden by subclasses if they need to perform an
+ * operation when a #GESTrackElement is added. Since: 0.10.2
+ * @track_element_released: Should be overridden by subclasses if they need to perform
+ * action when a #GESTrackElement is released. Since: 0.10.2
  *
- * Subclasses can override the @create_track_object and @fill_track_object methods.
+ * Subclasses can override the @create_track_element and @fill_track_element methods.
  */
 struct _GESClipClass
 {
@@ -158,18 +158,18 @@ struct _GESClipClass
   GESTimelineElementClass parent_class;
 
   /*< public > */
-  GESCreateTrackObjectFunc create_track_object;
-  GESCreateTrackObjectsFunc create_track_objects;
+  GESCreateTrackElementFunc create_track_element;
+  GESCreateTrackElementsFunc create_track_elements;
 
-  /* FIXME : might need a release_track_object */
-  GESFillTrackObjectFunc fill_track_object;
+  /* FIXME : might need a release_track_element */
+  GESFillTrackElementFunc fill_track_element;
   gboolean need_fill_track;
   gboolean snaps;
 
-  void (*track_object_added)    (GESClip *object,
-                                GESTrackObject *tck_object);
-  void (*track_object_released) (GESClip *object,
-                                GESTrackObject *tck_object);
+  void (*track_element_added)    (GESClip *object,
+                                GESTrackElement *tck_object);
+  void (*track_element_released) (GESClip *object,
+                                GESTrackElement *tck_object);
 
   /*< private >*/
   /* Padding for API extension */
@@ -182,17 +182,17 @@ GType ges_clip_get_type (void);
 void ges_clip_set_layer            (GESClip *object,
                                                GESTimelineLayer  *layer);
 
-/* TrackObject handling */
-GList* ges_clip_get_track_objects            (GESClip *object);
+/* TrackElement handling */
+GList* ges_clip_get_track_elements            (GESClip *object);
 GESTrackType ges_clip_get_supported_formats  (GESClip *object);
-GESTrackObject *ges_clip_create_track_object (GESClip *object, GESTrackType type);
-GList * ges_clip_create_track_objects        (GESClip *object, GESTrackType type);
-gboolean ges_clip_release_track_object       (GESClip *object, GESTrackObject    *trackobject);
+GESTrackElement *ges_clip_create_track_element (GESClip *object, GESTrackType type);
+GList * ges_clip_create_track_elements        (GESClip *object, GESTrackType type);
+gboolean ges_clip_release_track_element       (GESClip *object, GESTrackElement    *trackelement);
 void ges_clip_set_supported_formats          (GESClip *object, GESTrackType       supportedformats);
 gboolean ges_clip_add_asset               (GESClip *object, GESAsset       *asset);
-gboolean ges_clip_add_track_object           (GESClip *object, GESTrackObject    *trobj);
-gboolean ges_clip_fill_track_object          (GESClip *object, GESTrackObject    *trackobj, GstElement *gnlobj);
-GESTrackObject *ges_clip_find_track_object   (GESClip *object, GESTrack          *track,    GType      type);
+gboolean ges_clip_add_track_element           (GESClip *object, GESTrackElement    *trobj);
+gboolean ges_clip_fill_track_element          (GESClip *object, GESTrackElement    *trackelement, GstElement *gnlobj);
+GESTrackElement *ges_clip_find_track_element   (GESClip *object, GESTrack          *track,    GType      type);
 
 /* Layer */
 GESTimelineLayer *ges_clip_get_layer   (GESClip *object);
index f6ecb118b3b3c0240dfda4fcda1bb6181e4a378a..bc5296c8383a1f917fb3e1adab5576dcf0f39c21 100644 (file)
@@ -50,7 +50,7 @@ enum
 
 struct _GESCustomSourceClipPrivate
 {
-  GESFillTrackObjectUserFunc filltrackobjectfunc;
+  GESFillTrackElementUserFunc filltrackelementfunc;
   gpointer user_data;
 };
 
@@ -117,7 +117,7 @@ extractable_get_id (GESExtractable * self)
 {
   GESCustomSourceClipPrivate *priv = GES_CUSTOM_SOURCE_CLIP (self)->priv;
 
-  return g_strdup_printf ("%i!%i", GPOINTER_TO_INT (priv->filltrackobjectfunc),
+  return g_strdup_printf ("%i!%i", GPOINTER_TO_INT (priv->filltrackelementfunc),
       GPOINTER_TO_INT (priv->user_data));
 }
 
@@ -130,11 +130,11 @@ ges_extractable_interface_init (GESExtractableInterface * iface)
 }
 
 static gboolean
-ges_custom_source_clip_fill_track_object (GESClip * object,
-    GESTrackObject * trobject, GstElement * gnlobj);
+ges_custom_source_clip_fill_track_element (GESClip * object,
+    GESTrackElement * trobject, GstElement * gnlobj);
 
-static GESTrackObject *
-ges_custom_source_clip_create_track_object (GESClip * obj, GESTrackType type)
+static GESTrackElement *
+ges_custom_source_clip_create_track_element (GESClip * obj, GESTrackType type)
 {
   return g_object_new (GES_TYPE_TRACK_SOURCE, "track-type", type, NULL);
 }
@@ -146,7 +146,7 @@ _set_property (GObject * object, guint property_id,
   GESCustomSourceClipPrivate *priv = GES_CUSTOM_SOURCE_CLIP (object)->priv;
   switch (property_id) {
     case PROP_FILL_FUNC:
-      priv->filltrackobjectfunc = g_value_get_pointer (value);
+      priv->filltrackelementfunc = g_value_get_pointer (value);
       break;
     case PROP_USER_DATA:
       priv->user_data = g_value_get_pointer (value);
@@ -164,19 +164,20 @@ ges_custom_source_clip_class_init (GESCustomSourceClipClass * klass)
 
   g_type_class_add_private (klass, sizeof (GESCustomSourceClipPrivate));
 
-  clip_class->fill_track_object = ges_custom_source_clip_fill_track_object;
-  clip_class->create_track_object = ges_custom_source_clip_create_track_object;
+  clip_class->fill_track_element = ges_custom_source_clip_fill_track_element;
+  clip_class->create_track_element =
+      ges_custom_source_clip_create_track_element;
 
   object_class->set_property = _set_property;
 
   /**
    * GESCustomSourceClip:fill-func:
    *
-   * The function pointer to create the TrackObject content
+   * The function pointer to create the TrackElement content
    */
   g_object_class_install_property (object_class, PROP_FILL_FUNC,
       g_param_spec_pointer ("fill-func", "Fill func",
-          "A pointer to a GESFillTrackObjectUserFunc",
+          "A pointer to a GESFillTrackElementUserFunc",
           G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
 
   /**
@@ -186,7 +187,7 @@ ges_custom_source_clip_class_init (GESCustomSourceClipClass * klass)
    */
   g_object_class_install_property (object_class, PROP_USER_DATA,
       g_param_spec_pointer ("user-data", "User data",
-          "The user data pointer that will be passed when creating TrackObjects",
+          "The user data pointer that will be passed when creating TrackElements",
           G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
 }
 
@@ -198,17 +199,17 @@ ges_custom_source_clip_init (GESCustomSourceClip * self)
 }
 
 static gboolean
-ges_custom_source_clip_fill_track_object (GESClip * object,
-    GESTrackObject * trobject, GstElement * gnlobj)
+ges_custom_source_clip_fill_track_element (GESClip * object,
+    GESTrackElement * trobject, GstElement * gnlobj)
 {
   gboolean res;
   GESCustomSourceClipPrivate *priv;
 
-  GST_DEBUG ("Calling callback (timelineobj:%p, trackobj:%p, gnlobj:%p)",
+  GST_DEBUG ("Calling callback (timelineobj:%p, trackelement:%p, gnlobj:%p)",
       object, trobject, gnlobj);
 
   priv = GES_CUSTOM_SOURCE_CLIP (object)->priv;
-  res = priv->filltrackobjectfunc (object, trobject, gnlobj, priv->user_data);
+  res = priv->filltrackelementfunc (object, trobject, gnlobj, priv->user_data);
 
   GST_DEBUG ("Returning res:%d", res);
 
@@ -217,7 +218,7 @@ ges_custom_source_clip_fill_track_object (GESClip * object,
 
 /**
  * ges_custom_source_clip_new:
- * @func: (scope notified): The #GESFillTrackObjectUserFunc that will be used to fill the track
+ * @func: (scope notified): The #GESFillTrackElementUserFunc that will be used to fill the track
  * objects.
  * @user_data: (closure): a gpointer that will be used when @func is called.
  *
@@ -226,13 +227,14 @@ ges_custom_source_clip_fill_track_object (GESClip * object,
  * Returns: The new #GESCustomSourceClip.
  */
 GESCustomSourceClip *
-ges_custom_source_clip_new (GESFillTrackObjectUserFunc func, gpointer user_data)
+ges_custom_source_clip_new (GESFillTrackElementUserFunc func,
+    gpointer user_data)
 {
   GESCustomSourceClip *src;
 
   src = g_object_new (GES_TYPE_CUSTOM_SOURCE_CLIP, "supported-formats",
       GES_TRACK_TYPE_CUSTOM, NULL);
-  src->priv->filltrackobjectfunc = func;
+  src->priv->filltrackelementfunc = func;
   src->priv->user_data = user_data;
 
   return src;
@@ -240,7 +242,7 @@ ges_custom_source_clip_new (GESFillTrackObjectUserFunc func, gpointer user_data)
 
 /**
  * ges_asset_custom_source_clip_new:
- * @func: (scope notified): The #GESFillTrackObjectUserFunc that will be used to fill the track
+ * @func: (scope notified): The #GESFillTrackElementUserFunc that will be used to fill the track
  * objects.
  * @user_data: (closure): a gpointer that will be used when @func is called.
  *
@@ -250,7 +252,7 @@ ges_custom_source_clip_new (GESFillTrackObjectUserFunc func, gpointer user_data)
  * Returns: The new #GESAsset.
  */
 GESAsset *
-ges_asset_custom_source_clip_new (GESFillTrackObjectUserFunc func,
+ges_asset_custom_source_clip_new (GESFillTrackElementUserFunc func,
     gpointer user_data)
 {
   GESAsset *asset;
index 9cbeeebedd01854c2f043732dbdb0922ada162ef..0a1fc295356d5505a1c8abe8b1a0a2c4277234d3 100644 (file)
@@ -47,9 +47,9 @@ G_BEGIN_DECLS
 typedef struct _GESCustomSourceClipPrivate   GESCustomSourceClipPrivate;
 
 /**
- * GESFillTrackObjectUserFunc:
+ * GESFillTrackElementUserFunc:
  * @object: the #GESClip controlling the track object
- * @trobject: the #GESTrackObject
+ * @trobject: the #GESTrackElement
  * @gnlobj: the GNonLin object that needs to be filled.
  * @user_data: the gpointer to optional user data
  *
@@ -61,8 +61,8 @@ typedef struct _GESCustomSourceClipPrivate   GESCustomSourceClipPrivate;
  *
  * Returns: TRUE if the implementer succesfully filled the @gnlobj, else #FALSE.
  */
-typedef gboolean (*GESFillTrackObjectUserFunc) (GESClip * object,
-                                            GESTrackObject * trobject,
+typedef gboolean (*GESFillTrackElementUserFunc) (GESClip * object,
+                                            GESTrackElement * trobject,
                                             GstElement * gnlobj,
                                             gpointer user_data);
 
@@ -97,11 +97,11 @@ struct _GESCustomSourceClipClass {
 GType ges_custom_source_clip_get_type (void);
 
 GESCustomSourceClip*
-ges_custom_source_clip_new (GESFillTrackObjectUserFunc func,
+ges_custom_source_clip_new (GESFillTrackElementUserFunc func,
                                gpointer user_data);
 
 GESAsset*
-ges_asset_custom_source_clip_new (GESFillTrackObjectUserFunc func,
+ges_asset_custom_source_clip_new (GESFillTrackElementUserFunc func,
                                gpointer user_data);
 
 
index d0415884d1f7453ef9fa04f2b23daa525b32fa57..8db66a14f60887e830c522b75dd3f81042ca848c 100644 (file)
@@ -52,7 +52,7 @@ enum
 };
 
 static void ges_effect_clip_finalize (GObject * object);
-static GESTrackObject
+static GESTrackElement
     * ges_tl_parse_launch_effect_create_track_obj (GESClip * self,
     GESTrackType type);
 
@@ -143,7 +143,7 @@ ges_effect_clip_class_init (GESEffectClipClass * klass)
           "Bin description of the audio track of the effect",
           NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
 
-  timobj_class->create_track_object =
+  timobj_class->create_track_element =
       ges_tl_parse_launch_effect_create_track_obj;
   timobj_class->need_fill_track = FALSE;
 }
@@ -156,7 +156,7 @@ ges_effect_clip_init (GESEffectClip * self)
 
 }
 
-static GESTrackObject *
+static GESTrackElement *
 ges_tl_parse_launch_effect_create_track_obj (GESClip * self, GESTrackType type)
 {
   const gchar *bin_description = NULL;
index a8d6eb36e34b074665508b70069c70faf181e079..9b8a5523c3441dd37c8105a2430c9e7e7673c137 100644 (file)
@@ -25,7 +25,7 @@
 #include <gio/gio.h>
 
 #include "ges-timeline.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-timeline-element.h"
 
 #include "ges-asset.h"
@@ -47,31 +47,31 @@ GST_DEBUG_CATEGORY_EXTERN (_ges_debug);
 #define _set_priority0 ges_timeline_element_set_priority
 
 G_GNUC_INTERNAL gboolean
-timeline_ripple_object         (GESTimeline *timeline, GESTrackObject *obj,
+timeline_ripple_object         (GESTimeline *timeline, GESTrackElement *obj,
                                     GList * layers, GESEdge edge,
                                     guint64 position);
 
 G_GNUC_INTERNAL gboolean
-timeline_slide_object          (GESTimeline *timeline, GESTrackObject *obj,
+timeline_slide_object          (GESTimeline *timeline, GESTrackElement *obj,
                                     GList * layers, GESEdge edge, guint64 position);
 
 G_GNUC_INTERNAL gboolean
-timeline_roll_object           (GESTimeline *timeline, GESTrackObject *obj,
+timeline_roll_object           (GESTimeline *timeline, GESTrackElement *obj,
                                     GList * layers, GESEdge edge, guint64 position);
 
 G_GNUC_INTERNAL gboolean
-timeline_trim_object           (GESTimeline *timeline, GESTrackObject * object,
+timeline_trim_object           (GESTimeline *timeline, GESTrackElement * object,
                                     GList * layers, GESEdge edge, guint64 position);
 G_GNUC_INTERNAL gboolean
-ges_timeline_trim_object_simple (GESTimeline * timeline, GESTrackObject * obj,
+ges_timeline_trim_object_simple (GESTimeline * timeline, GESTrackElement * obj,
                                  GList * layers, GESEdge edge, guint64 position, gboolean snapping);
 
 G_GNUC_INTERNAL gboolean
-ges_timeline_move_object_simple (GESTimeline * timeline, GESTrackObject * object,
+ges_timeline_move_object_simple (GESTimeline * timeline, GESTrackElement * object,
                                  GList * layers, GESEdge edge, guint64 position);
 
 G_GNUC_INTERNAL gboolean
-timeline_move_object           (GESTimeline *timeline, GESTrackObject * object,
+timeline_move_object           (GESTimeline *timeline, GESTrackElement * object,
                                     GList * layers, GESEdge edge, guint64 position);
 
 G_GNUC_INTERNAL gboolean
@@ -205,7 +205,7 @@ void ges_base_xml_formatter_add_encoding_profile               (GESBaseXmlFormat
                                                                  gboolean variableframerate,
                                                                  GstStructure * properties,
                                                                  GError ** error);
-G_GNUC_INTERNAL void ges_base_xml_formatter_add_track_object    (GESBaseXmlFormatter *self,
+G_GNUC_INTERNAL void ges_base_xml_formatter_add_track_element    (GESBaseXmlFormatter *self,
                                                                  GType effect_type,
                                                                  const gchar *asset_id,
                                                                  const gchar * track_id,
index 0b1dcb550d8ce2484d9b4f54661e772d4e045895..065046077cff697cbac5db9cec0d7495b8dc54e6 100644 (file)
@@ -70,7 +70,7 @@ struct _GESPitiviFormatterPrivate
    *       "effect_name": name
    *       "effect_props": {"propname": value}}}
    */
-  GHashTable *track_objects_table;
+  GHashTable *track_elements_table;
 
   /* {factory-ref: [track-object-ref-id,...]} */
   GHashTable *clips_table;
@@ -148,7 +148,7 @@ write_int_attribute (xmlTextWriterPtr writer, guint64 nb, const gchar * attr,
 }
 
 static void
-save_track_objects (xmlTextWriterPtr writer, GList * source_list,
+save_track_elements (xmlTextWriterPtr writer, GList * source_list,
     GESTrackType type, gint * id)
 {
   GList *tmp, *tck_objs, *tmp_tck;
@@ -166,15 +166,15 @@ save_track_objects (xmlTextWriterPtr writer, GList * source_list,
     object = srcmap->obj;
 
     /* Save track associated objects */
-    tck_objs = ges_clip_get_track_objects (object);
+    tck_objs = ges_clip_get_track_elements (object);
     for (tmp_tck = tck_objs; tmp_tck; tmp_tck = tmp_tck->next) {
       xmlChar *cast;
-      GESTrackObject *tckobj = GES_TRACK_OBJECT (tmp_tck->data);
-      GESTrack *track = ges_track_object_get_track (tckobj);
+      GESTrackElement *trackelement = GES_TRACK_ELEMENT (tmp_tck->data);
+      GESTrack *track = ges_track_element_get_track (trackelement);
       const gchar *active, *locked;
 
       if (!track) {
-        GST_WARNING ("Track object %p not in a track yet", tckobj);
+        GST_WARNING ("Track object %p not in a track yet", trackelement);
         continue;
       }
 
@@ -187,16 +187,18 @@ save_track_objects (xmlTextWriterPtr writer, GList * source_list,
       xmlTextWriterStartElement (writer, BAD_CAST "track-object");
 
       active =
-          ges_track_object_is_active (tckobj) ? "(bool)True" : "(bool)False";
+          ges_track_element_is_active (trackelement) ? "(bool)True" :
+          "(bool)False";
       xmlTextWriterWriteAttribute (writer, BAD_CAST "active", BAD_CAST active);
       locked =
-          ges_track_object_is_locked (tckobj) ? "(bool)True" : "(bool)False";
+          ges_track_element_is_locked (trackelement) ? "(bool)True" :
+          "(bool)False";
       xmlTextWriterWriteAttribute (writer, BAD_CAST "locked", BAD_CAST locked);
 
       /*  Here the priority correspond to the layer priority */
       write_int_attribute (writer, srcmap->priority, "priority", "(int)");
-      g_object_get (G_OBJECT (tckobj), "duration", &duration, "start", &start,
-          "in-point", &inpoint, NULL);
+      g_object_get (G_OBJECT (trackelement), "duration", &duration, "start",
+          &start, "in-point", &inpoint, NULL);
       write_int_attribute (writer, duration, "duration", "(gint64)");
       write_int_attribute (writer, start, "start", "(gint64)");
       write_int_attribute (writer, inpoint, "in_point", "(gint64)");
@@ -205,7 +207,7 @@ save_track_objects (xmlTextWriterPtr writer, GList * source_list,
       xmlTextWriterWriteAttribute (writer, BAD_CAST "id", BAD_CAST cast);
       xmlFree (cast);
 
-      if (GES_IS_TRACK_EFFECT (tckobj)) {
+      if (GES_IS_TRACK_EFFECT (trackelement)) {
         GParamSpec **pspecs, *spec;
         gchar *serialized, *concatenated;
         guint n_props = 0;
@@ -213,7 +215,7 @@ save_track_objects (xmlTextWriterPtr writer, GList * source_list,
         xmlTextWriterWriteAttribute (writer, BAD_CAST "type",
             BAD_CAST "pitivi.timeline.track.TrackEffect");
 
-        g_object_get (tckobj, "bin-description", &bin_desc, NULL);
+        g_object_get (trackelement, "bin-description", &bin_desc, NULL);
         xmlTextWriterStartElement (writer, BAD_CAST "effect");
         xmlTextWriterStartElement (writer, BAD_CAST "factory");
         xmlTextWriterWriteAttribute (writer, BAD_CAST "name",
@@ -221,7 +223,8 @@ save_track_objects (xmlTextWriterPtr writer, GList * source_list,
         xmlTextWriterEndElement (writer);
         xmlTextWriterStartElement (writer, BAD_CAST "gst-element-properties");
 
-        pspecs = ges_track_object_list_children_properties (tckobj, &n_props);
+        pspecs =
+            ges_track_element_list_children_properties (trackelement, &n_props);
 
         j = 0;
 
@@ -230,7 +233,8 @@ save_track_objects (xmlTextWriterPtr writer, GList * source_list,
 
           spec = pspecs[j];
           g_value_init (&val, spec->value_type);
-          ges_track_object_get_child_property_by_pspec (tckobj, spec, &val);
+          ges_track_element_get_child_property_by_pspec (trackelement, spec,
+              &val);
           serialized = gst_value_serialize (&val);
           if (!g_strcmp0 (spec->name, (gchar *) "preset")) {
             concatenated =
@@ -258,7 +262,7 @@ save_track_objects (xmlTextWriterPtr writer, GList * source_list,
 
       } else {
         xmlTextWriterWriteAttribute (writer, BAD_CAST "type",
-            BAD_CAST "pitivi.timeline.track.SourceTrackObject");
+            BAD_CAST "pitivi.timeline.track.SourceTrackElement");
 
         xmlTextWriterStartElement (writer, BAD_CAST "factory-ref");
         xmlTextWriterWriteAttribute (writer, BAD_CAST "id",
@@ -267,8 +271,8 @@ save_track_objects (xmlTextWriterPtr writer, GList * source_list,
       xmlTextWriterEndElement (writer);
       xmlTextWriterEndElement (writer);
 
-      /* We add effects at the end of the trackobject list */
-      if (GES_IS_TRACK_EFFECT (tckobj)) {
+      /* We add effects at the end of the trackelement list */
+      if (GES_IS_TRACK_EFFECT (trackelement)) {
         srcmap->tck_obj_ids = g_list_append (srcmap->tck_obj_ids,
             xmlXPathCastNumberToString (*id));
       } else {
@@ -324,7 +328,7 @@ save_tracks (GESTimeline * timeline, xmlTextWriterPtr writer,
       continue;
     }
 
-    save_track_objects (writer, source_list, type, &id);
+    save_track_elements (writer, source_list, type, &id);
     xmlTextWriterEndElement (writer);
   }
 
@@ -386,7 +390,7 @@ save_sources (GESPitiviFormatter * formatter, GList * layers,
                 uriclip_uri));
         srcmap->obj = g_object_ref (clip);
         srcmap->priority = ges_timeline_layer_get_priority (layer);
-        /* We fill up the tck_obj_ids in save_track_objects */
+        /* We fill up the tck_obj_ids in save_track_elements */
         source_list = g_list_append (source_list, srcmap);
       }
     }
@@ -585,7 +589,7 @@ list_sources (GESFormatter * self)
 }
 
 static gboolean
-parse_track_objects (GESFormatter * self)
+parse_track_elements (GESFormatter * self)
 {
   GESPitiviFormatterPrivate *priv = GES_PITIVI_FORMATTER (self)->priv;
   xmlXPathObjectPtr xpathObj;
@@ -660,7 +664,7 @@ parse_track_objects (GESFormatter * self)
     if (effect_table)
       g_hash_table_insert (table, g_strdup ("effect_props"), effect_table);
 
-    g_hash_table_insert (priv->track_objects_table, g_strdup (id), table);
+    g_hash_table_insert (priv->track_elements_table, g_strdup (id), table);
   }
 
   xmlXPathFreeObject (xpathObj);
@@ -674,7 +678,7 @@ parse_clips (GESFormatter * self)
   xmlNodeSetPtr nodes;
   xmlXPathObjectPtr xpathObj;
   xmlNodePtr clip_nd, tmp_nd, tmp_nd2;
-  xmlChar *tckobjrefId, *facrefId = NULL;
+  xmlChar *trackelementrefId, *facrefId = NULL;
 
   GList *reflist = NULL;
   GESPitiviFormatterPrivate *priv = GES_PITIVI_FORMATTER (self)->priv;
@@ -695,7 +699,7 @@ parse_clips (GESFormatter * self)
     clip_nd = nodes->nodeTab[j];
 
     for (tmp_nd = clip_nd->children; tmp_nd; tmp_nd = tmp_nd->next) {
-      /* We assume that factory-ref is always before the tckobjs-ref */
+      /* We assume that factory-ref is always before the trackelements-ref */
       if (!xmlStrcmp (tmp_nd->name, (xmlChar *) "factory-ref")) {
         facrefId = xmlGetProp (tmp_nd, (xmlChar *) "id");
 
@@ -705,14 +709,15 @@ parse_clips (GESFormatter * self)
           if (!xmlStrcmp (tmp_nd2->name, (xmlChar *) "track-object-ref")) {
             /* We add the track object ref ID to the list of the current
              * Clip tracks, this way we can merge 2
-             * Clip-s into 1 when we have unlinked TrackObject-s */
+             * Clip-s into 1 when we have unlinked TrackElement-s */
             reflist = g_hash_table_lookup (clips_table, facrefId);
-            tckobjrefId = xmlGetProp (tmp_nd2, (xmlChar *) "id");
-            reflist = g_list_append (reflist, g_strdup ((gchar *) tckobjrefId));
+            trackelementrefId = xmlGetProp (tmp_nd2, (xmlChar *) "id");
+            reflist =
+                g_list_append (reflist, g_strdup ((gchar *) trackelementrefId));
             g_hash_table_insert (clips_table, g_strdup ((gchar *) facrefId),
                 reflist);
 
-            xmlFree (tckobjrefId);
+            xmlFree (trackelementrefId);
           }
         }
       }
@@ -743,8 +748,8 @@ set_properties (GObject * obj, GHashTable * props_table)
 }
 
 static void
-track_object_added_cb (GESClip * object,
-    GESTrackObject * track_object, GHashTable * props_table)
+track_element_added_cb (GESClip * object,
+    GESTrackElement * track_element, GHashTable * props_table)
 {
   gchar *media_type = NULL, *lockedstr;
   GList *tck_objs = NULL, *tmp = NULL;
@@ -754,7 +759,7 @@ track_object_added_cb (GESClip * object,
   gint type = 0;
   GESPitiviFormatter *formatter;
 
-  tck_objs = ges_clip_get_track_objects (object);
+  tck_objs = ges_clip_get_track_elements (object);
   media_type = (gchar *) g_hash_table_lookup (props_table, "media_type");
   lockedstr = (gchar *) g_hash_table_lookup (props_table, "locked");
 
@@ -779,15 +784,15 @@ track_object_added_cb (GESClip * object,
 
   for (tmp = tck_objs; tmp; tmp = tmp->next) {
 
-    if (!GES_IS_TRACK_OBJECT (tmp->data)) {
+    if (!GES_IS_TRACK_ELEMENT (tmp->data)) {
       /* If we arrive here something massively screwed */
-      GST_ERROR ("Not a TrackObject, this is a bug");
+      GST_ERROR ("Not a TrackElement, this is a bug");
       continue;
     }
 
-    track = ges_track_object_get_track (tmp->data);
+    track = ges_track_element_get_track (tmp->data);
     if (!track) {
-      GST_WARNING ("TrackObject not in a track yet");
+      GST_WARNING ("TrackElement not in a track yet");
       continue;
     }
 
@@ -802,11 +807,11 @@ track_object_added_cb (GESClip * object,
             && track->type == GES_TRACK_TYPE_AUDIO)) {
 
       /* We unlock the track objects so we do not move the whole Clip */
-      ges_track_object_set_locked (tmp->data, FALSE);
+      ges_track_element_set_locked (tmp->data, FALSE);
       set_properties (G_OBJECT (tmp->data), props_table);
 
       if (locked)
-        ges_track_object_set_locked (tmp->data, TRUE);
+        ges_track_element_set_locked (tmp->data, TRUE);
 
       type = track->type;
       g_object_get (tmp->data, "start", &start, "duration", &duration, NULL);
@@ -814,29 +819,29 @@ track_object_added_cb (GESClip * object,
   }
 
   if (has_effect) {
-    tck_objs = ges_clip_get_track_objects (object);
+    tck_objs = ges_clip_get_track_elements (object);
 
     /* FIXME make sure this is the way we want to handle that
-     * ie: set duration and start as the other trackobject
+     * ie: set duration and start as the other trackelement
      * and no let full control to the user. */
 
     for (tmp = tck_objs; tmp; tmp = tmp->next) {
       /* We set the effects start and duration */
-      track = ges_track_object_get_track (tmp->data);
+      track = ges_track_element_get_track (tmp->data);
 
       if (GES_IS_TRACK_PARSE_LAUNCH_EFFECT (tmp->data)
           && (type == track->type)) {
         /* We lock the track objects so we do not move the whole Clip */
-        ges_track_object_set_locked (tmp->data, FALSE);
+        ges_track_element_set_locked (tmp->data, FALSE);
         g_object_set (tmp->data, "start", start, "duration", duration, NULL);
         if (locked)
-          ges_track_object_set_locked (tmp->data, TRUE);
+          ges_track_element_set_locked (tmp->data, TRUE);
       }
     }
   }
 
   /* Disconnect the signal */
-  g_signal_handlers_disconnect_by_func (object, track_object_added_cb,
+  g_signal_handlers_disconnect_by_func (object, track_element_added_cb,
       props_table);
 }
 
@@ -853,12 +858,12 @@ make_source (GESFormatter * self, GList * reflist, GHashTable * source_table)
   GESUriClip *src = NULL;
   gint prio;
   gboolean a_avail = FALSE, v_avail = FALSE, video;
-  GHashTable *tckobj_table = priv->track_objects_table;
+  GHashTable *trackelement_table = priv->track_elements_table;
 
   for (tmp = reflist; tmp; tmp = tmp->next) {
 
     /* Get the layer */
-    props_table = g_hash_table_lookup (tckobj_table, (gchar *) tmp->data);
+    props_table = g_hash_table_lookup (trackelement_table, (gchar *) tmp->data);
     prio_str = (gchar *) g_hash_table_lookup (props_table, "priority");
     prio_array = g_strsplit (prio_str, ")", 0);
     prio = (gint) g_ascii_strtod (prio_array[1], NULL);
@@ -918,7 +923,7 @@ make_source (GESFormatter * self, GList * reflist, GHashTable * source_table)
         ges_timeline_layer_add_object (layer, GES_CLIP (src));
 
         g_signal_connect (src, "track-object-added",
-            G_CALLBACK (track_object_added_cb), props_table);
+            G_CALLBACK (track_element_added_cb), props_table);
 
         priv->sources_to_load = g_list_prepend (priv->sources_to_load, src);
       }
@@ -929,20 +934,20 @@ make_source (GESFormatter * self, GList * reflist, GHashTable * source_table)
 
       effect = ges_track_parse_launch_effect_new ((gchar *)
           g_hash_table_lookup (props_table, (gchar *) "effect_name"));
-      ges_track_object_set_track_type (GES_TRACK_OBJECT (effect),
+      ges_track_element_set_track_type (GES_TRACK_ELEMENT (effect),
           (video ? GES_TRACK_TYPE_VIDEO : GES_TRACK_TYPE_AUDIO));
       effect_table =
           g_hash_table_lookup (props_table, (gchar *) "effect_props");
 
-      ges_clip_add_track_object (GES_CLIP (src), GES_TRACK_OBJECT (effect));
+      ges_clip_add_track_element (GES_CLIP (src), GES_TRACK_ELEMENT (effect));
 
       if (!g_strcmp0 (active, (gchar *) "(bool)False"))
-        ges_track_object_set_active (GES_TRACK_OBJECT (effect), FALSE);
+        ges_track_element_set_active (GES_TRACK_ELEMENT (effect), FALSE);
 
       if (video)
-        ges_track_add_object (priv->trackv, GES_TRACK_OBJECT (effect));
+        ges_track_add_object (priv->trackv, GES_TRACK_ELEMENT (effect));
       else
-        ges_track_add_object (priv->tracka, GES_TRACK_OBJECT (effect));
+        ges_track_add_object (priv->tracka, GES_TRACK_ELEMENT (effect));
 
       /* Set effect properties */
       keys = g_hash_table_get_keys (effect_table);
@@ -959,11 +964,11 @@ make_source (GESFormatter * self, GList * reflist, GHashTable * source_table)
         if (g_strstr_len (prop_val, -1, "(GEnum)")) {
           gchar **val = g_strsplit (prop_val, ")", 2);
 
-          ges_track_object_set_child_properties (GES_TRACK_OBJECT (effect),
+          ges_track_element_set_child_properties (GES_TRACK_ELEMENT (effect),
               (gchar *) tmp_key->data, atoi (val[1]), NULL);
           g_strfreev (val);
 
-        } else if (ges_track_object_lookup_child (GES_TRACK_OBJECT (effect),
+        } else if (ges_track_element_lookup_child (GES_TRACK_ELEMENT (effect),
                 (gchar *) tmp->data, NULL, &spec)) {
           gchar *caps_str = g_strdup_printf ("structure1, property1=%s;",
               prop_val);
@@ -973,7 +978,7 @@ make_source (GESFormatter * self, GList * reflist, GHashTable * source_table)
           structure = gst_caps_get_structure (caps, 0);
           value = gst_structure_get_value (structure, "property1");
 
-          ges_track_object_set_child_property_by_pspec (GES_TRACK_OBJECT
+          ges_track_element_set_child_property_by_pspec (GES_TRACK_ELEMENT
               (effect), spec, (GValue *) value);
           gst_caps_unref (caps);
         }
@@ -1056,7 +1061,7 @@ load_pitivi_file_from_uri (GESFormatter * self,
     return FALSE;
   }
 
-  if (!parse_track_objects (self)) {
+  if (!parse_track_elements (self)) {
     GST_ERROR ("Couldn't find track objects markup in the xptv file");
     return FALSE;
   }
@@ -1102,8 +1107,8 @@ ges_pitivi_formatter_finalize (GObject * object)
   if (priv->layers_table != NULL)
     g_hash_table_destroy (priv->layers_table);
 
-  if (priv->track_objects_table != NULL) {
-    g_hash_table_destroy (priv->track_objects_table);
+  if (priv->track_elements_table != NULL) {
+    g_hash_table_destroy (priv->track_elements_table);
   }
 
   G_OBJECT_CLASS (ges_pitivi_formatter_parent_class)->finalize (object);
@@ -1142,7 +1147,7 @@ ges_pitivi_formatter_init (GESPitiviFormatter * self)
 
   priv = self->priv;
 
-  priv->track_objects_table =
+  priv->track_elements_table =
       g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
       (GDestroyNotify) g_hash_table_destroy);
 
index 678d5944548cd25249c12a22a7f00dc7e7747b62..779df81a7c2488fcb0127b76e2cda57ace2340e5 100644 (file)
@@ -32,7 +32,7 @@
 #include "ges-internal.h"
 #include "ges-test-clip.h"
 #include "ges-source-clip.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-video-test-source.h"
 #include "ges-track-audio-test-source.h"
 #include <string.h>
@@ -56,8 +56,8 @@ enum
   PROP_VOLUME,
 };
 
-static GESTrackObject
-    * ges_test_clip_create_track_object (GESClip * obj, GESTrackType type);
+static GESTrackElement
+    * ges_test_clip_create_track_element (GESClip * obj, GESTrackType type);
 
 static void
 ges_test_clip_get_property (GObject * object, guint property_id,
@@ -159,7 +159,7 @@ ges_test_clip_class_init (GESTestClipClass * klass)
       g_param_spec_boolean ("mute", "Mute", "Mute audio track",
           FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
-  timobj_class->create_track_object = ges_test_clip_create_track_object;
+  timobj_class->create_track_element = ges_test_clip_create_track_element;
   timobj_class->need_fill_track = FALSE;
 }
 
@@ -185,7 +185,7 @@ ges_test_clip_init (GESTestClip * self)
 void
 ges_test_clip_set_mute (GESTestClip * self, gboolean mute)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, mute:%d", self, mute);
@@ -193,16 +193,17 @@ ges_test_clip_set_mute (GESTestClip * self, gboolean mute)
   self->priv->mute = mute;
 
   /* Go over tracked objects, and update 'active' status on all audio objects */
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_AUDIO)
-      ges_track_object_set_active (trackobject, !mute);
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_AUDIO)
+      ges_track_element_set_active (trackelement, !mute);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -216,21 +217,21 @@ ges_test_clip_set_mute (GESTestClip * self, gboolean mute)
 void
 ges_test_clip_set_vpattern (GESTestClip * self, GESVideoTestPattern vpattern)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   self->priv->vpattern = vpattern;
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
-    if (GES_IS_TRACK_VIDEO_TEST_SOURCE (trackobject))
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
+    if (GES_IS_TRACK_VIDEO_TEST_SOURCE (trackelement))
       ges_track_video_test_source_set_pattern (
-          (GESTrackVideoTestSource *) trackobject, vpattern);
+          (GESTrackVideoTestSource *) trackelement, vpattern);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -244,21 +245,21 @@ ges_test_clip_set_vpattern (GESTestClip * self, GESVideoTestPattern vpattern)
 void
 ges_test_clip_set_frequency (GESTestClip * self, gdouble freq)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   self->priv->freq = freq;
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
-    if (GES_IS_TRACK_AUDIO_TEST_SOURCE (trackobject))
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
+    if (GES_IS_TRACK_AUDIO_TEST_SOURCE (trackelement))
       ges_track_audio_test_source_set_freq (
-          (GESTrackAudioTestSource *) trackobject, freq);
+          (GESTrackAudioTestSource *) trackelement, freq);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -272,21 +273,21 @@ ges_test_clip_set_frequency (GESTestClip * self, gdouble freq)
 void
 ges_test_clip_set_volume (GESTestClip * self, gdouble volume)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   self->priv->volume = volume;
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
-    if (GES_IS_TRACK_AUDIO_TEST_SOURCE (trackobject))
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
+    if (GES_IS_TRACK_AUDIO_TEST_SOURCE (trackelement))
       ges_track_audio_test_source_set_volume (
-          (GESTrackAudioTestSource *) trackobject, volume);
+          (GESTrackAudioTestSource *) trackelement, volume);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -345,24 +346,24 @@ ges_test_clip_get_volume (GESTestClip * self)
   return self->priv->volume;
 }
 
-static GESTrackObject *
-ges_test_clip_create_track_object (GESClip * obj, GESTrackType type)
+static GESTrackElement *
+ges_test_clip_create_track_element (GESClip * obj, GESTrackType type)
 {
   GESTestClipPrivate *priv = GES_TEST_CLIP (obj)->priv;
-  GESTrackObject *res = NULL;
+  GESTrackElement *res = NULL;
 
   GST_DEBUG ("Creating a GESTrackTestSource for type: %s",
       ges_track_type_name (type));
 
   if (type == GES_TRACK_TYPE_VIDEO) {
-    res = (GESTrackObject *) ges_track_video_test_source_new ();
+    res = (GESTrackElement *) ges_track_video_test_source_new ();
     ges_track_video_test_source_set_pattern (
         (GESTrackVideoTestSource *) res, priv->vpattern);
   } else if (type == GES_TRACK_TYPE_AUDIO) {
-    res = (GESTrackObject *) ges_track_audio_test_source_new ();
+    res = (GESTrackElement *) ges_track_audio_test_source_new ();
 
     if (priv->mute)
-      ges_track_object_set_active (res, FALSE);
+      ges_track_element_set_active (res, FALSE);
 
     ges_track_audio_test_source_set_freq ((GESTrackAudioTestSource *) res,
         priv->freq);
index 35971a139f48f675be2a4917872fcc24de955912..f27caca7ef8fc863e4aa6d2f6d3bd286fadb36e1 100644 (file)
@@ -27,7 +27,7 @@
 
 #include "ges-internal.h"
 #include "ges-text-overlay-clip.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-text-overlay.h"
 #include <string.h>
 
@@ -63,8 +63,8 @@ enum
   PROP_YPOS,
 };
 
-static GESTrackObject
-    * ges_overlay_text_clip_create_track_object (GESClip * obj,
+static GESTrackElement
+    * ges_overlay_text_clip_create_track_element (GESClip * obj,
     GESTrackType type);
 
 static void
@@ -202,7 +202,8 @@ ges_overlay_text_clip_class_init (GESTextOverlayClipClass * klass)
           GES_TEXT_HALIGN_TYPE, DEFAULT_PROP_HALIGNMENT,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 
-  timobj_class->create_track_object = ges_overlay_text_clip_create_track_object;
+  timobj_class->create_track_element =
+      ges_overlay_text_clip_create_track_element;
   timobj_class->need_fill_track = FALSE;
 
   /**
@@ -265,7 +266,7 @@ ges_overlay_text_clip_init (GESTextOverlayClip * self)
 void
 ges_overlay_text_clip_set_text (GESTextOverlayClip * self, const gchar * text)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, text:%s", self, text);
@@ -275,17 +276,18 @@ ges_overlay_text_clip_set_text (GESTextOverlayClip * self, const gchar * text)
 
   self->priv->text = g_strdup (text);
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
-      ges_track_text_overlay_set_text (GES_TRACK_TEXT_OVERLAY
-          (trackobject), self->priv->text);
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_VIDEO)
+      ges_track_text_overlay_set_text (GES_TRACK_TEXT_OVERLAY (trackelement),
+          self->priv->text);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -300,7 +302,7 @@ void
 ges_overlay_text_clip_set_font_desc (GESTextOverlayClip * self,
     const gchar * font_desc)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, font_desc:%s", self, font_desc);
@@ -310,17 +312,18 @@ ges_overlay_text_clip_set_font_desc (GESTextOverlayClip * self,
 
   self->priv->font_desc = g_strdup (font_desc);
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_VIDEO)
       ges_track_text_overlay_set_font_desc (GES_TRACK_TEXT_OVERLAY
-          (trackobject), self->priv->font_desc);
+          (trackelement), self->priv->font_desc);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 
 }
 
@@ -336,24 +339,25 @@ void
 ges_overlay_text_clip_set_halign (GESTextOverlayClip * self,
     GESTextHAlign halign)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, halign:%d", self, halign);
 
   self->priv->halign = halign;
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_VIDEO)
       ges_track_text_overlay_set_halignment (GES_TRACK_TEXT_OVERLAY
-          (trackobject), self->priv->halign);
+          (trackelement), self->priv->halign);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 
 }
 
@@ -369,24 +373,25 @@ void
 ges_overlay_text_clip_set_valign (GESTextOverlayClip * self,
     GESTextVAlign valign)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, valign:%d", self, valign);
 
   self->priv->valign = valign;
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_VIDEO)
       ges_track_text_overlay_set_valignment (GES_TRACK_TEXT_OVERLAY
-          (trackobject), self->priv->valign);
+          (trackelement), self->priv->valign);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 
 }
 
@@ -402,24 +407,25 @@ ges_overlay_text_clip_set_valign (GESTextOverlayClip * self,
 void
 ges_overlay_text_clip_set_color (GESTextOverlayClip * self, guint32 color)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, color:%d", self, color);
 
   self->priv->color = color;
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
-      ges_track_text_overlay_set_color (GES_TRACK_TEXT_OVERLAY
-          (trackobject), self->priv->color);
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_VIDEO)
+      ges_track_text_overlay_set_color (GES_TRACK_TEXT_OVERLAY (trackelement),
+          self->priv->color);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -434,24 +440,25 @@ ges_overlay_text_clip_set_color (GESTextOverlayClip * self, guint32 color)
 void
 ges_overlay_text_clip_set_xpos (GESTextOverlayClip * self, gdouble position)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, xpos:%f", self, position);
 
   self->priv->xpos = position;
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
-      ges_track_text_overlay_set_xpos (GES_TRACK_TEXT_OVERLAY
-          (trackobject), self->priv->xpos);
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_VIDEO)
+      ges_track_text_overlay_set_xpos (GES_TRACK_TEXT_OVERLAY (trackelement),
+          self->priv->xpos);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -466,24 +473,25 @@ ges_overlay_text_clip_set_xpos (GESTextOverlayClip * self, gdouble position)
 void
 ges_overlay_text_clip_set_ypos (GESTextOverlayClip * self, gdouble position)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, ypos:%f", self, position);
 
   self->priv->ypos = position;
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_VIDEO)
-      ges_track_text_overlay_set_ypos (GES_TRACK_TEXT_OVERLAY
-          (trackobject), self->priv->ypos);
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_VIDEO)
+      ges_track_text_overlay_set_ypos (GES_TRACK_TEXT_OVERLAY (trackelement),
+          self->priv->ypos);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -594,17 +602,17 @@ ges_overlay_text_clip_get_ypos (GESTextOverlayClip * self)
   return self->priv->ypos;
 }
 
-static GESTrackObject *
-ges_overlay_text_clip_create_track_object (GESClip * obj, GESTrackType type)
+static GESTrackElement *
+ges_overlay_text_clip_create_track_element (GESClip * obj, GESTrackType type)
 {
 
   GESTextOverlayClipPrivate *priv = GES_OVERLAY_TEXT_CLIP (obj)->priv;
-  GESTrackObject *res = NULL;
+  GESTrackElement *res = NULL;
 
   GST_DEBUG ("Creating a GESTrackOverlay");
 
   if (type == GES_TRACK_TYPE_VIDEO) {
-    res = (GESTrackObject *) ges_track_text_overlay_new ();
+    res = (GESTrackElement *) ges_track_text_overlay_new ();
     GST_DEBUG ("Setting text property");
     ges_track_text_overlay_set_text ((GESTrackTextOverlay *) res, priv->text);
     ges_track_text_overlay_set_font_desc ((GESTrackTextOverlay *) res,
index 870270d881730cb4111b90a64f5cce6ea2626a5b..40522f69ce2099f209e66d0b846ad9e09945b98d 100644 (file)
@@ -461,7 +461,7 @@ ges_timeline_layer_is_empty (GESTimelineLayer * layer)
  * An object can only be added to one layer.
  *
  * Calling this method will construct and properly set all the media related
- * elements on @object. If you need to know when those objects (actually #GESTrackObject)
+ * elements on @object. If you need to know when those objects (actually #GESTrackElement)
  * are constructed, you should connect to the object::track-object-added signal which
  * is emited right after those elements are ready to be used.
  *
index d926bb0fc1f6c9a2b6234ea14a0b4c83dcd5dc31..71b76dd2776cdaf7c5fdc7479d2f0357f2c1617a 100644 (file)
@@ -48,7 +48,7 @@
 typedef struct _MoveContext MoveContext;
 
 static GPtrArray *select_tracks_for_object_default (GESTimeline * timeline,
-    GESClip * clip, GESTrackObject * tr_obj, gpointer user_data);
+    GESClip * clip, GESTrackElement * tr_obj, gpointer user_data);
 static inline void init_movecontext (MoveContext * mv_ctx, gboolean first_init);
 static void ges_extractable_interface_init (GESExtractableInterface * iface);
 static void ges_meta_container_interface_init
@@ -72,7 +72,7 @@ typedef struct TrackObjIters
   GSequenceIter *iter_by_layer;
 
   GESTimelineLayer *layer;
-  GESTrackObject *tckobj;
+  GESTrackElement *trackelement;
 } TrackObjIters;
 
 static void
@@ -94,7 +94,7 @@ struct _MoveContext
   GESEditMode mode;
 
   /* Ripple and Roll Objects */
-  GList *moving_tckobjs;
+  GList *moving_trackelements;
 
   /* We use it as a set of Clip to move between layers */
   GHashTable *moving_clips;
@@ -113,8 +113,8 @@ struct _MoveContext
   gboolean needs_move_ctx;
 
   /* Last snapping  properties */
-  GESTrackObject *last_snaped1;
-  GESTrackObject *last_snaped2;
+  GESTrackElement *last_snaped1;
+  GESTrackElement *last_snaped2;
   GstClockTime *last_snap_ts;
 };
 
@@ -136,13 +136,13 @@ struct _GESTimelinePrivate
   GHashTable *by_object;        /* {timecode: TrackSource} */
   GHashTable *obj_iters;        /* {TrackSource: TrackObjIters} */
   GSequence *starts_ends;       /* Sorted list of starts/ends */
-  /* We keep 1 reference to our trackobject here */
+  /* We keep 1 reference to our trackelement here */
   GSequence *tracksources;      /* TrackSource-s sorted by start/priorities */
 
   GList *priv_tracks;
   /* FIXME: We should definitly offer an API over this,
-   * probably through a ges_timeline_layer_get_track_objects () method */
-  GHashTable *by_layer;         /* {layer: GSequence of TrackObject by start/priorities} */
+   * probably through a ges_timeline_layer_get_track_elements () method */
+  GHashTable *by_layer;         /* {layer: GSequence of TrackElement by start/priorities} */
 
   /* The set of auto_transitions we control, currently the key is
    * pointerToPreviousiTrackObjAdresspointerToNextTrackObjAdress as a string,
@@ -306,7 +306,7 @@ ges_timeline_dispose (GObject * object)
   g_hash_table_unref (priv->obj_iters);
   g_sequence_free (priv->starts_ends);
   g_sequence_free (priv->tracksources);
-  g_list_free (priv->movecontext.moving_tckobjs);
+  g_list_free (priv->movecontext.moving_trackelements);
   g_hash_table_unref (priv->movecontext.moving_clips);
 
   g_hash_table_unref (priv->auto_transitions);
@@ -450,42 +450,42 @@ ges_timeline_class_init (GESTimelineClass * klass)
   /**
    * GESTimeline::track-objects-snapping:
    * @timeline: the #GESTimeline
-   * @obj1: the first #GESTrackObject that was snapping.
-   * @obj2: the second #GESTrackObject that was snapping.
+   * @obj1: the first #GESTrackElement that was snapping.
+   * @obj2: the second #GESTrackElement that was snapping.
    * @position: the position where the two objects finally snapping.
    *
-   * Will be emitted when the 2 #GESTrackObject first snapped
+   * Will be emitted when the 2 #GESTrackElement first snapped
    *
    * Since: 0.10.XX
    */
   ges_timeline_signals[SNAPING_STARTED] =
       g_signal_new ("snapping-started", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
-      G_TYPE_NONE, 3, GES_TYPE_TRACK_OBJECT, GES_TYPE_TRACK_OBJECT,
+      G_TYPE_NONE, 3, GES_TYPE_TRACK_ELEMENT, GES_TYPE_TRACK_ELEMENT,
       G_TYPE_UINT64);
 
   /**
    * GESTimeline::snapping-end:
    * @timeline: the #GESTimeline
-   * @obj1: the first #GESTrackObject that was snapping.
-   * @obj2: the second #GESTrackObject that was snapping.
+   * @obj1: the first #GESTrackElement that was snapping.
+   * @obj2: the second #GESTrackElement that was snapping.
    * @position: the position where the two objects finally snapping.
    *
-   * Will be emitted when the 2 #GESTrackObject ended to snap
+   * Will be emitted when the 2 #GESTrackElement ended to snap
    *
    * Since: 0.10.XX
    */
   ges_timeline_signals[SNAPING_ENDED] =
       g_signal_new ("snapping-ended", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
-      G_TYPE_NONE, 3, GES_TYPE_TRACK_OBJECT, GES_TYPE_TRACK_OBJECT,
+      G_TYPE_NONE, 3, GES_TYPE_TRACK_ELEMENT, GES_TYPE_TRACK_ELEMENT,
       G_TYPE_UINT64);
 
   /**
    * GESTimeline::select-tracks-for-object:
    * @timeline: the #GESTimeline
    * @clip: The #GESClip on which @track-object will land
-   * @track-object: The #GESTrackObject for which to choose the tracks it should land into
+   * @track-object: The #GESTrackElement for which to choose the tracks it should land into
    *
    * Returns: (transfer full) (element-type GESTrack): a #GPtrArray of #GESTrack-s where that object should be added
    *
@@ -494,7 +494,7 @@ ges_timeline_class_init (GESTimelineClass * klass)
   ges_timeline_signals[SELECT_TRACKS_FOR_OBJECT] =
       g_signal_new ("select-tracks-for-object", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, 0, _gst_array_accumulator, NULL, NULL,
-      G_TYPE_PTR_ARRAY, 2, GES_TYPE_CLIP, GES_TYPE_TRACK_OBJECT);
+      G_TYPE_PTR_ARRAY, 2, GES_TYPE_CLIP, GES_TYPE_TRACK_ELEMENT);
 }
 
 static void
@@ -595,7 +595,7 @@ find_layer_by_prio (GESTimelineLayer * a, gpointer pprio)
 }
 
 static void
-sort_track_objects (GESTimeline * timeline, TrackObjIters * iters)
+sort_track_elements (GESTimeline * timeline, TrackObjIters * iters)
 {
   g_sequence_sort_changed (iters->iter_obj,
       (GCompareDataFunc) element_start_compare, NULL);
@@ -623,7 +623,7 @@ custom_find_track (TrackPrivate * tr_priv, GESTrack * track)
 static inline void
 sort_starts_ends_end (GESTimeline * timeline, TrackObjIters * iters)
 {
-  GESTimelineElement *obj = GES_TIMELINE_ELEMENT (iters->tckobj);
+  GESTimelineElement *obj = GES_TIMELINE_ELEMENT (iters->trackelement);
   GESTimelinePrivate *priv = timeline->priv;
   guint64 *end = g_hash_table_lookup (priv->by_end, obj);
 
@@ -637,7 +637,7 @@ sort_starts_ends_end (GESTimeline * timeline, TrackObjIters * iters)
 static inline void
 sort_starts_ends_start (GESTimeline * timeline, TrackObjIters * iters)
 {
-  GESTimelineElement *obj = GES_TIMELINE_ELEMENT (iters->tckobj);
+  GESTimelineElement *obj = GES_TIMELINE_ELEMENT (iters->trackelement);
   GESTimelinePrivate *priv = timeline->priv;
   guint64 *start = g_hash_table_lookup (priv->by_start, obj);
 
@@ -666,11 +666,11 @@ _destroy_auto_transition_cb (GESAutoTransition * auto_transition,
 }
 
 static GESAutoTransition *
-create_transition (GESTimeline * timeline, GESTrackObject * previous,
-    GESTrackObject * next, GESClip * transition,
+create_transition (GESTimeline * timeline, GESTrackElement * previous,
+    GESTrackElement * next, GESClip * transition,
     GESTimelineLayer * layer, guint64 start, guint64 duration)
 {
-  GList *tckobjs;
+  GList *trackelements;
   GESAsset *asset;
   GESAutoTransition *auto_transition;
 
@@ -679,16 +679,17 @@ create_transition (GESTimeline * timeline, GESTrackObject * previous,
     asset = ges_asset_request (GES_TYPE_TRANSITION_CLIP, "crossfade", NULL);
     transition =
         ges_timeline_layer_add_asset (layer, asset, start, 0, duration, 1,
-        ges_track_object_get_track_type (next));
+        ges_track_element_get_track_type (next));
   } else {
     GST_DEBUG_OBJECT (timeline,
         "Reusing already existing transition: %" GST_PTR_FORMAT, transition);
   }
 
-  /* We know there is only 1 TrackObject */
-  tckobjs = ges_clip_get_track_objects (transition);
-  auto_transition = ges_auto_transition_new (tckobjs->data, previous, next);
-  g_list_free_full (tckobjs, gst_object_unref);
+  /* We know there is only 1 TrackElement */
+  trackelements = ges_clip_get_track_elements (transition);
+  auto_transition =
+      ges_auto_transition_new (trackelements->data, previous, next);
+  g_list_free_full (trackelements, gst_object_unref);
 
   g_signal_connect (auto_transition, "destroy-me",
       G_CALLBACK (_destroy_auto_transition_cb), timeline);
@@ -700,13 +701,13 @@ create_transition (GESTimeline * timeline, GESTrackObject * previous,
 }
 
 typedef GESAutoTransition *(*GetAutoTransitionFunc) (GESTimeline * timeline,
-    GESTimelineLayer * layer, GESTrack * track, GESTrackObject * previous,
-    GESTrackObject * next, GstClockTime transition_duration);
+    GESTimelineLayer * layer, GESTrack * track, GESTrackElement * previous,
+    GESTrackElement * next, GstClockTime transition_duration);
 
 static GESAutoTransition *
 _find_transition_from_auto_transitions (GESTimeline * timeline,
-    GESTimelineLayer * layer, GESTrack * track, GESTrackObject * prev,
-    GESTrackObject * next, GstClockTime transition_duration)
+    GESTimelineLayer * layer, GESTrack * track, GESTrackElement * prev,
+    GESTrackElement * next, GstClockTime transition_duration)
 {
   GESAutoTransition *auto_transition;
 
@@ -720,8 +721,8 @@ _find_transition_from_auto_transitions (GESTimeline * timeline,
 
 static GESAutoTransition *
 _create_auto_transition_from_transitions (GESTimeline * timeline,
-    GESTimelineLayer * layer, GESTrack * track, GESTrackObject * prev,
-    GESTrackObject * next, GstClockTime transition_duration)
+    GESTimelineLayer * layer, GESTrack * track, GESTrackElement * prev,
+    GESTrackElement * next, GstClockTime transition_duration)
 {
   GSequenceIter *tmp_iter;
   GSequence *by_layer_sequence;
@@ -743,9 +744,9 @@ _create_auto_transition_from_transitions (GESTimeline * timeline,
   for (tmp_iter = g_sequence_get_begin_iter (by_layer_sequence);
       tmp_iter && !g_sequence_iter_is_end (tmp_iter);
       tmp_iter = g_sequence_iter_next (tmp_iter)) {
-    GESTrackObject *maybe_transition = g_sequence_get (tmp_iter);
+    GESTrackElement *maybe_transition = g_sequence_get (tmp_iter);
 
-    if (ges_track_object_get_track (maybe_transition) != track)
+    if (ges_track_element_get_track (maybe_transition) != track)
       continue;
 
     if (_START (maybe_transition) > _START (next))
@@ -756,10 +757,10 @@ _create_auto_transition_from_transitions (GESTimeline * timeline,
     else if (GES_IS_TRACK_TRANSITION (maybe_transition))
       /* Use that transition */
       /* TODO We should make sure that the transition contains only
-       * TrackObject-s in @track and if it is not the case properly unlink the
+       * TrackElement-s in @track and if it is not the case properly unlink the
        * object to use it */
       return create_transition (timeline, prev, next,
-          ges_track_object_get_clip (maybe_transition), layer,
+          ges_track_element_get_clip (maybe_transition), layer,
           _START (next), transition_duration);
   }
 
@@ -772,7 +773,7 @@ _create_auto_transition_from_transitions (GESTimeline * timeline,
  * track */
 static void
 _create_transitions_on_layer (GESTimeline * timeline, GESTimelineLayer * layer,
-    GESTrack * track, GESTrackObject * initiating_obj,
+    GESTrack * track, GESTrackElement * initiating_obj,
     GetAutoTransitionFunc get_auto_transition)
 {
   guint32 layer_prio;
@@ -780,7 +781,7 @@ _create_transitions_on_layer (GESTimeline * timeline, GESTimelineLayer * layer,
   GESAutoTransition *transition;
 
   GESTrack *ctrack = track;
-  GList *entered = NULL;        /* List of TrackObject for wich we walk through the
+  GList *entered = NULL;        /* List of TrackElement for wich we walk through the
                                  * "start" but not the "end" in the starts_ends list */
   GESTimelinePrivate *priv = timeline->priv;
 
@@ -793,16 +794,16 @@ _create_transitions_on_layer (GESTimeline * timeline, GESTimelineLayer * layer,
       iter = g_sequence_iter_next (iter)) {
     GList *tmp;
     guint *start_or_end = g_sequence_get (iter);
-    GESTrackObject *next = g_hash_table_lookup (timeline->priv->by_object,
+    GESTrackElement *next = g_hash_table_lookup (timeline->priv->by_object,
         start_or_end);
 
     /* Only object that are in that layer and track */
     if ((_PRIORITY (next) / LAYER_HEIGHT) != layer_prio ||
-        (track && track != ges_track_object_get_track (next)))
+        (track && track != ges_track_element_get_track (next)))
       continue;
 
     if (track == NULL)
-      ctrack = ges_track_object_get_track (next);
+      ctrack = ges_track_element_get_track (next);
 
     if (start_or_end == g_hash_table_lookup (priv->by_end, next)) {
       if (initiating_obj == next) {
@@ -819,9 +820,9 @@ _create_transitions_on_layer (GESTimeline * timeline, GESTimelineLayer * layer,
     for (tmp = entered; tmp; tmp = tmp->next) {
       gint64 transition_duration;
 
-      GESTrackObject *prev = tmp->data;
+      GESTrackElement *prev = tmp->data;
 
-      if (ctrack != ges_track_object_get_track (prev))
+      if (ctrack != ges_track_element_get_track (prev))
         continue;
 
       transition_duration = (_START (prev) + _DURATION (prev)) - _START (next);
@@ -844,7 +845,7 @@ _create_transitions_on_layer (GESTimeline * timeline, GESTimelineLayer * layer,
 
 /* @tck_obj must be a GESTrackSource */
 static void
-create_transitions (GESTimeline * timeline, GESTrackObject * tck_obj)
+create_transitions (GESTimeline * timeline, GESTrackElement * tck_obj)
 {
   GESTrack *track;
   GList *layer_node;
@@ -856,7 +857,7 @@ create_transitions (GESTimeline * timeline, GESTrackObject * tck_obj)
 
   GST_DEBUG_OBJECT (timeline, "Creating transitions around %p", tck_obj);
 
-  track = ges_track_object_get_track (tck_obj);
+  track = ges_track_element_get_track (tck_obj);
   layer_node = g_list_find_custom (timeline->layers,
       GINT_TO_POINTER (_PRIORITY (tck_obj) / LAYER_HEIGHT),
       (GCompareFunc) find_layer_by_prio);
@@ -875,7 +876,7 @@ init_movecontext (MoveContext * mv_ctx, gboolean first_init)
   if (G_UNLIKELY (first_init))
     mv_ctx->moving_clips = g_hash_table_new (g_direct_hash, g_direct_equal);
 
-  mv_ctx->moving_tckobjs = NULL;
+  mv_ctx->moving_trackelements = NULL;
   mv_ctx->max_trim_pos = G_MAXUINT64;
   mv_ctx->min_move_layer = G_MAXUINT;
   mv_ctx->max_layer_prio = 0;
@@ -887,31 +888,33 @@ init_movecontext (MoveContext * mv_ctx, gboolean first_init)
 static inline void
 clean_movecontext (MoveContext * mv_ctx)
 {
-  g_list_free (mv_ctx->moving_tckobjs);
+  g_list_free (mv_ctx->moving_trackelements);
   g_hash_table_remove_all (mv_ctx->moving_clips);
   init_movecontext (mv_ctx, FALSE);
 }
 
 static void
-stop_tracking_track_object (GESTimeline * timeline, GESTrackObject * tckobj)
+stop_tracking_track_element (GESTimeline * timeline,
+    GESTrackElement * trackelement)
 {
   guint64 *start, *end;
   TrackObjIters *iters;
   GESTimelinePrivate *priv = timeline->priv;
 
-  iters = g_hash_table_lookup (priv->obj_iters, tckobj);
+  iters = g_hash_table_lookup (priv->obj_iters, trackelement);
   if (G_LIKELY (iters->iter_by_layer)) {
     g_sequence_remove (iters->iter_by_layer);
   } else {
-    GST_WARNING_OBJECT (timeline, "TrackObject %p was in no layer", tckobj);
+    GST_WARNING_OBJECT (timeline, "TrackElement %p was in no layer",
+        trackelement);
   }
 
-  if (GES_IS_TRACK_SOURCE (tckobj)) {
-    start = g_hash_table_lookup (priv->by_start, tckobj);
-    end = g_hash_table_lookup (priv->by_end, tckobj);
+  if (GES_IS_TRACK_SOURCE (trackelement)) {
+    start = g_hash_table_lookup (priv->by_start, trackelement);
+    end = g_hash_table_lookup (priv->by_end, trackelement);
 
-    g_hash_table_remove (priv->by_start, tckobj);
-    g_hash_table_remove (priv->by_end, tckobj);
+    g_hash_table_remove (priv->by_start, trackelement);
+    g_hash_table_remove (priv->by_end, trackelement);
     g_hash_table_remove (priv->by_object, end);
     g_hash_table_remove (priv->by_object, start);
     g_sequence_remove (iters->iter_start);
@@ -919,79 +922,82 @@ stop_tracking_track_object (GESTimeline * timeline, GESTrackObject * tckobj)
     g_sequence_remove (iters->iter_obj);
     timeline_update_duration (timeline);
   }
-  g_hash_table_remove (priv->obj_iters, tckobj);
+  g_hash_table_remove (priv->obj_iters, trackelement);
 }
 
 static void
-start_tracking_track_object (GESTimeline * timeline, GESTrackObject * tckobj)
+start_tracking_track_element (GESTimeline * timeline,
+    GESTrackElement * trackelement)
 {
   guint64 *pstart, *pend;
   GSequence *by_layer_sequence;
   TrackObjIters *iters;
   GESTimelinePrivate *priv = timeline->priv;
 
-  guint layer_prio = _PRIORITY (tckobj) / LAYER_HEIGHT;
+  guint layer_prio = _PRIORITY (trackelement) / LAYER_HEIGHT;
   GList *layer_node = g_list_find_custom (timeline->layers,
       GINT_TO_POINTER (layer_prio), (GCompareFunc) find_layer_by_prio);
   GESTimelineLayer *layer = layer_node ? layer_node->data : NULL;
 
   iters = g_slice_new0 (TrackObjIters);
 
-  /* We add all TrackObject to obj_iters as we always follow them
+  /* We add all TrackElement to obj_iters as we always follow them
    * in the by_layer Sequences */
-  g_hash_table_insert (priv->obj_iters, tckobj, iters);
+  g_hash_table_insert (priv->obj_iters, trackelement, iters);
 
   /* Track all objects by layer */
   if (G_UNLIKELY (layer == NULL)) {
-    /* We handle the case where we have TrackObject that are in no layer by not
+    /* We handle the case where we have TrackElement that are in no layer by not
      * tracking them
      *
      * FIXME: Check if we should rather try to track them in some sort of
-     * dummy layer, or even refuse TrackObjects to be added in Tracks if
+     * dummy layer, or even refuse TrackElements to be added in Tracks if
      * they land in no layer the timeline controls.
      */
-    GST_ERROR_OBJECT (timeline, "Adding a TrackObject that lands in no layer "
+    GST_ERROR_OBJECT (timeline, "Adding a TrackElement that lands in no layer "
         "we are controlling");
   } else {
     by_layer_sequence = g_hash_table_lookup (priv->by_layer, layer);
-    iters->iter_by_layer = g_sequence_insert_sorted (by_layer_sequence, tckobj,
+    iters->iter_by_layer =
+        g_sequence_insert_sorted (by_layer_sequence, trackelement,
         (GCompareDataFunc) element_start_compare, NULL);
     iters->layer = layer;
   }
 
-  if (GES_IS_TRACK_SOURCE (tckobj)) {
+  if (GES_IS_TRACK_SOURCE (trackelement)) {
     /* Track only sources for timeline edition and snapping */
     pstart = g_malloc (sizeof (guint64));
     pend = g_malloc (sizeof (guint64));
-    *pstart = _START (tckobj);
-    *pend = *pstart + _DURATION (tckobj);
+    *pstart = _START (trackelement);
+    *pend = *pstart + _DURATION (trackelement);
 
     iters->iter_start = g_sequence_insert_sorted (priv->starts_ends, pstart,
         (GCompareDataFunc) compare_uint64, NULL);
     iters->iter_end = g_sequence_insert_sorted (priv->starts_ends, pend,
         (GCompareDataFunc) compare_uint64, NULL);
     iters->iter_obj =
-        g_sequence_insert_sorted (priv->tracksources, g_object_ref (tckobj),
-        (GCompareDataFunc) element_start_compare, NULL);
-    iters->tckobj = tckobj;
+        g_sequence_insert_sorted (priv->tracksources,
+        g_object_ref (trackelement), (GCompareDataFunc) element_start_compare,
+        NULL);
+    iters->trackelement = trackelement;
 
-    g_hash_table_insert (priv->by_start, tckobj, pstart);
-    g_hash_table_insert (priv->by_object, pstart, tckobj);
-    g_hash_table_insert (priv->by_end, tckobj, pend);
-    g_hash_table_insert (priv->by_object, pend, tckobj);
+    g_hash_table_insert (priv->by_start, trackelement, pstart);
+    g_hash_table_insert (priv->by_object, pstart, trackelement);
+    g_hash_table_insert (priv->by_end, trackelement, pend);
+    g_hash_table_insert (priv->by_object, pend, trackelement);
 
     timeline->priv->movecontext.needs_move_ctx = TRUE;
 
     timeline_update_duration (timeline);
-    create_transitions (timeline, tckobj);
+    create_transitions (timeline, trackelement);
   }
 }
 
 static inline void
-ges_timeline_emit_snappig (GESTimeline * timeline, GESTrackObject * obj1,
+ges_timeline_emit_snappig (GESTimeline * timeline, GESTrackElement * obj1,
     guint64 * timecode)
 {
-  GESTrackObject *obj2;
+  GESTrackElement *obj2;
   MoveContext *mv_ctx = &timeline->priv->movecontext;
   GstClockTime snap_time = timecode ? *timecode : 0;
   GstClockTime last_snap_ts = mv_ctx->last_snap_ts ?
@@ -1036,12 +1042,13 @@ ges_timeline_emit_snappig (GESTimeline * timeline, GESTrackObject * obj1,
 }
 
 static guint64 *
-ges_timeline_snap_position (GESTimeline * timeline, GESTrackObject * trackobj,
-    guint64 * current, guint64 timecode, gboolean emit)
+ges_timeline_snap_position (GESTimeline * timeline,
+    GESTrackElement * trackelement, guint64 * current, guint64 timecode,
+    gboolean emit)
 {
   GESTimelinePrivate *priv = timeline->priv;
   GSequenceIter *iter, *prev_iter, *nxt_iter;
-  GESTrackObject *tmp_tckobj;
+  GESTrackElement *tmp_trackelement;
   GESClip *tmp_clip, *clip;
 
   GstClockTime *last_snap_ts = priv->movecontext.last_snap_ts;
@@ -1063,7 +1070,7 @@ ges_timeline_snap_position (GESTimeline * timeline, GESTrackObject * trackobj,
     }
   }
 
-  clip = ges_track_object_get_clip (trackobj);
+  clip = ges_track_element_get_clip (trackelement);
 
   iter = g_sequence_search (priv->starts_ends, &timecode,
       (GCompareDataFunc) compare_uint64, NULL);
@@ -1073,8 +1080,8 @@ ges_timeline_snap_position (GESTimeline * timeline, GESTrackObject * trackobj,
   nxt_iter = iter;
   while (!g_sequence_iter_is_end (nxt_iter)) {
     next_tc = g_sequence_get (iter);
-    tmp_tckobj = g_hash_table_lookup (timeline->priv->by_object, next_tc);
-    tmp_clip = ges_track_object_get_clip (tmp_tckobj);
+    tmp_trackelement = g_hash_table_lookup (timeline->priv->by_object, next_tc);
+    tmp_clip = ges_track_element_get_clip (tmp_trackelement);
 
     off = timecode > *next_tc ? timecode - *next_tc : *next_tc - timecode;
     if (next_tc != current && off <= snap_distance && clip != tmp_clip) {
@@ -1092,8 +1099,8 @@ ges_timeline_snap_position (GESTimeline * timeline, GESTrackObject * trackobj,
   prev_iter = g_sequence_iter_prev (iter);
   while (!g_sequence_iter_is_begin (prev_iter)) {
     prev_tc = g_sequence_get (prev_iter);
-    tmp_tckobj = g_hash_table_lookup (timeline->priv->by_object, prev_tc);
-    tmp_clip = ges_track_object_get_clip (tmp_tckobj);
+    tmp_trackelement = g_hash_table_lookup (timeline->priv->by_object, prev_tc);
+    tmp_clip = ges_track_element_get_clip (tmp_trackelement);
 
     off1 = timecode > *prev_tc ? timecode - *prev_tc : *prev_tc - timecode;
     if (prev_tc != current && off1 < off && off1 <= snap_distance &&
@@ -1112,7 +1119,7 @@ done:
   if (emit) {
     GstClockTime snap_time = ret ? *ret : GST_CLOCK_TIME_NONE;
 
-    ges_timeline_emit_snappig (timeline, trackobj, ret);
+    ges_timeline_emit_snappig (timeline, trackelement, ret);
 
     GST_DEBUG_OBJECT (timeline, "Snaping at %" GST_TIME_FORMAT,
         GST_TIME_ARGS (snap_time));
@@ -1122,13 +1129,13 @@ done:
 }
 
 static inline GESClip *
-add_moving_clip (MoveContext * mv_ctx, GESTrackObject * tckobj)
+add_moving_clip (MoveContext * mv_ctx, GESTrackElement * trackelement)
 {
   GESClip *clip;
   GESTimelineLayer *layer;
   guint layer_prio;
 
-  clip = ges_track_object_get_clip (tckobj);
+  clip = ges_track_element_get_clip (trackelement);
 
   /* Avoid recalculating */
   if (!g_hash_table_lookup (mv_ctx->moving_clips, clip)) {
@@ -1153,39 +1160,40 @@ add_moving_clip (MoveContext * mv_ctx, GESTrackObject * tckobj)
 }
 
 static gboolean
-ges_move_context_set_objects (GESTimeline * timeline, GESTrackObject * obj,
+ges_move_context_set_objects (GESTimeline * timeline, GESTrackElement * obj,
     GESEdge edge)
 {
   TrackObjIters *iters;
-  GESTrackObject *tmptckobj;
+  GESTrackElement *tmptrackelement;
   guint64 start, end, tmpend;
-  GSequenceIter *iter, *tckobj_iter;
+  GSequenceIter *iter, *trackelement_iter;
 
   MoveContext *mv_ctx = &timeline->priv->movecontext;
 
   iters = g_hash_table_lookup (timeline->priv->obj_iters, obj);
-  tckobj_iter = iters->iter_obj;
+  trackelement_iter = iters->iter_obj;
   switch (edge) {
     case GES_EDGE_START:
       /* set it properly in the context of "trimming" */
       mv_ctx->max_trim_pos = 0;
       start = _START (obj);
 
-      if (g_sequence_iter_is_begin (tckobj_iter))
+      if (g_sequence_iter_is_begin (trackelement_iter))
         break;
 
       /* Look for the objects */
-      for (iter = g_sequence_iter_prev (tckobj_iter);
+      for (iter = g_sequence_iter_prev (trackelement_iter);
           iter && !g_sequence_iter_is_end (iter);
           iter = g_sequence_iter_prev (iter)) {
 
-        tmptckobj = GES_TRACK_OBJECT (g_sequence_get (iter));
-        tmpend = _START (tmptckobj) + _DURATION (tmptckobj);
+        tmptrackelement = GES_TRACK_ELEMENT (g_sequence_get (iter));
+        tmpend = _START (tmptrackelement) + _DURATION (tmptrackelement);
 
         if (tmpend <= start) {
-          mv_ctx->max_trim_pos = MAX (mv_ctx->max_trim_pos, _START (tmptckobj));
-          mv_ctx->moving_tckobjs =
-              g_list_prepend (mv_ctx->moving_tckobjs, tmptckobj);
+          mv_ctx->max_trim_pos =
+              MAX (mv_ctx->max_trim_pos, _START (tmptrackelement));
+          mv_ctx->moving_trackelements =
+              g_list_prepend (mv_ctx->moving_trackelements, tmptrackelement);
         }
 
         if (g_sequence_iter_is_begin (iter))
@@ -1199,16 +1207,16 @@ ges_move_context_set_objects (GESTimeline * timeline, GESTrackObject * obj,
       mv_ctx->max_trim_pos = G_MAXUINT64;
 
       /* Look for folowing objects */
-      for (iter = g_sequence_iter_next (tckobj_iter);
+      for (iter = g_sequence_iter_next (trackelement_iter);
           iter && !g_sequence_iter_is_end (iter);
           iter = g_sequence_iter_next (iter)) {
-        tmptckobj = GES_TRACK_OBJECT (g_sequence_get (iter));
+        tmptrackelement = GES_TRACK_ELEMENT (g_sequence_get (iter));
 
-        if (_START (tmptckobj) >= end) {
-          tmpend = _START (tmptckobj) + _DURATION (tmptckobj);
+        if (_START (tmptrackelement) >= end) {
+          tmpend = _START (tmptrackelement) + _DURATION (tmptrackelement);
           mv_ctx->max_trim_pos = MIN (mv_ctx->max_trim_pos, tmpend);
-          mv_ctx->moving_tckobjs =
-              g_list_prepend (mv_ctx->moving_tckobjs, tmptckobj);
+          mv_ctx->moving_trackelements =
+              g_list_prepend (mv_ctx->moving_trackelements, tmptrackelement);
         }
       }
       break;
@@ -1221,13 +1229,13 @@ ges_move_context_set_objects (GESTimeline * timeline, GESTrackObject * obj,
 }
 
 static gboolean
-ges_timeline_set_moving_context (GESTimeline * timeline, GESTrackObject * obj,
+ges_timeline_set_moving_context (GESTimeline * timeline, GESTrackElement * obj,
     GESEditMode mode, GESEdge edge, GList * layers)
 {
-  /* A TrackObject that could initiate movement for other object */
-  GESTrackObject *editor_tckobj = NULL;
+  /* A TrackElement that could initiate movement for other object */
+  GESTrackElement *editor_trackelement = NULL;
   MoveContext *mv_ctx = &timeline->priv->movecontext;
-  GESClip *clip = ges_track_object_get_clip (obj);
+  GESClip *clip = ges_track_element_get_clip (obj);
 
   /* Still in the same mv_ctx */
   if ((mv_ctx->obj == clip && mv_ctx->mode == mode &&
@@ -1253,26 +1261,27 @@ ges_timeline_set_moving_context (GESTimeline * timeline, GESTrackObject * obj,
   if (GES_IS_TRACK_SOURCE (obj) == FALSE) {
     GList *tmp;
 
-    for (tmp = clip->trackobjects; tmp; tmp = tmp->next) {
+    for (tmp = clip->trackelements; tmp; tmp = tmp->next) {
       if (GES_IS_TRACK_SOURCE (tmp->data)) {
-        editor_tckobj = tmp->data;
+        editor_trackelement = tmp->data;
         break;
       }
     }
   } else {
-    editor_tckobj = obj;
+    editor_trackelement = obj;
   }
 
-  if (editor_tckobj) {
+  if (editor_trackelement) {
     switch (mode) {
       case GES_EDIT_MODE_RIPPLE:
       case GES_EDIT_MODE_ROLL:
-        if (!(ges_move_context_set_objects (timeline, editor_tckobj, edge)))
+        if (!(ges_move_context_set_objects (timeline, editor_trackelement,
+                    edge)))
           return FALSE;
       default:
         break;
     }
-    add_moving_clip (&timeline->priv->movecontext, editor_tckobj);
+    add_moving_clip (&timeline->priv->movecontext, editor_trackelement);
   } else {
     /* We add the main object to the moving_clips set */
     add_moving_clip (&timeline->priv->movecontext, obj);
@@ -1283,7 +1292,7 @@ ges_timeline_set_moving_context (GESTimeline * timeline, GESTrackObject * obj,
 }
 
 gboolean
-ges_timeline_trim_object_simple (GESTimeline * timeline, GESTrackObject * obj,
+ges_timeline_trim_object_simple (GESTimeline * timeline, GESTrackElement * obj,
     GList * layers, GESEdge edge, guint64 position, gboolean snapping)
 {
   guint64 nstart, start, inpoint, duration, max_duration, *snapped, *cur;
@@ -1353,11 +1362,11 @@ ges_timeline_trim_object_simple (GESTimeline * timeline, GESTrackObject * obj,
 }
 
 gboolean
-timeline_ripple_object (GESTimeline * timeline, GESTrackObject * obj,
+timeline_ripple_object (GESTimeline * timeline, GESTrackElement * obj,
     GList * layers, GESEdge edge, guint64 position)
 {
   GList *tmp, *moved_clips = NULL;
-  GESTrackObject *tckobj;
+  GESTrackElement *trackelement;
   GESClip *clip;
   guint64 duration, new_start, *snapped, *cur;
   gint64 offset;
@@ -1382,22 +1391,22 @@ timeline_ripple_object (GESTimeline * timeline, GESTrackObject * obj,
 
       offset = position - _START (obj);
 
-      for (tmp = mv_ctx->moving_tckobjs; tmp; tmp = tmp->next) {
-        tckobj = GES_TRACK_OBJECT (tmp->data);
-        new_start = _START (tckobj) + offset;
+      for (tmp = mv_ctx->moving_trackelements; tmp; tmp = tmp->next) {
+        trackelement = GES_TRACK_ELEMENT (tmp->data);
+        new_start = _START (trackelement) + offset;
 
-        clip = add_moving_clip (mv_ctx, tckobj);
+        clip = add_moving_clip (mv_ctx, trackelement);
 
-        if (ges_track_object_is_locked (tckobj) == TRUE) {
+        if (ges_track_element_is_locked (trackelement) == TRUE) {
 
           /* Make sure not to move 2 times the same Clip */
           if (g_list_find (moved_clips, clip) == NULL) {
-            _set_start0 (GES_TIMELINE_ELEMENT (tckobj), new_start);
+            _set_start0 (GES_TIMELINE_ELEMENT (trackelement), new_start);
             moved_clips = g_list_prepend (moved_clips, clip);
           }
 
         } else {
-          _set_start0 (GES_TIMELINE_ELEMENT (tckobj), new_start);
+          _set_start0 (GES_TIMELINE_ELEMENT (trackelement), new_start);
         }
       }
       g_list_free (moved_clips);
@@ -1418,22 +1427,22 @@ timeline_ripple_object (GESTimeline * timeline, GESTrackObject * obj,
       _set_duration0 (GES_TIMELINE_ELEMENT (obj), position - _START (obj));
 
       offset = _DURATION (obj) - duration;
-      for (tmp = mv_ctx->moving_tckobjs; tmp; tmp = tmp->next) {
-        tckobj = GES_TRACK_OBJECT (tmp->data);
-        new_start = _START (tckobj) + offset;
+      for (tmp = mv_ctx->moving_trackelements; tmp; tmp = tmp->next) {
+        trackelement = GES_TRACK_ELEMENT (tmp->data);
+        new_start = _START (trackelement) + offset;
 
-        clip = add_moving_clip (mv_ctx, tckobj);
+        clip = add_moving_clip (mv_ctx, trackelement);
 
-        if (ges_track_object_is_locked (tckobj) == TRUE) {
+        if (ges_track_element_is_locked (trackelement) == TRUE) {
 
           /* Make sure not to move 2 times the same Clip */
           if (g_list_find (moved_clips, clip) == NULL) {
-            _set_start0 (GES_TIMELINE_ELEMENT (tckobj), new_start);
+            _set_start0 (GES_TIMELINE_ELEMENT (trackelement), new_start);
             moved_clips = g_list_prepend (moved_clips, clip);
           }
 
         } else {
-          _set_start0 (GES_TIMELINE_ELEMENT (tckobj), new_start);
+          _set_start0 (GES_TIMELINE_ELEMENT (trackelement), new_start);
         }
       }
 
@@ -1462,7 +1471,7 @@ error:
 }
 
 gboolean
-timeline_slide_object (GESTimeline * timeline, GESTrackObject * obj,
+timeline_slide_object (GESTimeline * timeline, GESTrackElement * obj,
     GList * layers, GESEdge edge, guint64 position)
 {
 
@@ -1473,7 +1482,7 @@ timeline_slide_object (GESTimeline * timeline, GESTrackObject * obj,
 }
 
 gboolean
-timeline_trim_object (GESTimeline * timeline, GESTrackObject * object,
+timeline_trim_object (GESTimeline * timeline, GESTrackElement * object,
     GList * layers, GESEdge edge, guint64 position)
 {
   gboolean ret = FALSE;
@@ -1496,7 +1505,7 @@ end:
 }
 
 gboolean
-timeline_roll_object (GESTimeline * timeline, GESTrackObject * obj,
+timeline_roll_object (GESTimeline * timeline, GESTrackElement * obj,
     GList * layers, GESEdge edge, guint64 position)
 {
   MoveContext *mv_ctx = &timeline->priv->movecontext;
@@ -1539,17 +1548,18 @@ timeline_roll_object (GESTimeline * timeline, GESTrackObject * obj,
       position = _START (obj);
 
       /* Send back changes to the neighbourhood */
-      for (tmp = mv_ctx->moving_tckobjs; tmp; tmp = tmp->next) {
-        GESTrackObject *tmptckobj = GES_TRACK_OBJECT (tmp->data);
+      for (tmp = mv_ctx->moving_trackelements; tmp; tmp = tmp->next) {
+        GESTrackElement *tmptrackelement = GES_TRACK_ELEMENT (tmp->data);
 
-        tmpstart = _START (tmptckobj);
-        tmpduration = _DURATION (tmptckobj);
+        tmpstart = _START (tmptrackelement);
+        tmpduration = _DURATION (tmptrackelement);
         tmpend = tmpstart + tmpduration;
 
         /* Check that the object should be resized at this position
          * even if an error accurs, we keep doing our job */
         if (tmpend == start) {
-          ret &= ges_timeline_trim_object_simple (timeline, tmptckobj, NULL,
+          ret &=
+              ges_timeline_trim_object_simple (timeline, tmptrackelement, NULL,
               GES_EDGE_END, position, FALSE);
           break;
         }
@@ -1576,17 +1586,18 @@ timeline_roll_object (GESTimeline * timeline, GESTrackObject * obj,
       position = _START (obj) + _DURATION (obj);
 
       /* Send back changes to the neighbourhood */
-      for (tmp = mv_ctx->moving_tckobjs; tmp; tmp = tmp->next) {
-        GESTrackObject *tmptckobj = GES_TRACK_OBJECT (tmp->data);
+      for (tmp = mv_ctx->moving_trackelements; tmp; tmp = tmp->next) {
+        GESTrackElement *tmptrackelement = GES_TRACK_ELEMENT (tmp->data);
 
-        tmpstart = _START (tmptckobj);
-        tmpduration = _DURATION (tmptckobj);
+        tmpstart = _START (tmptrackelement);
+        tmpduration = _DURATION (tmptrackelement);
         tmpend = tmpstart + tmpduration;
 
         /* Check that the object should be resized at this position
          * even if an error accure, we keep doing our job */
         if (end == tmpstart) {
-          ret &= ges_timeline_trim_object_simple (timeline, tmptckobj, NULL,
+          ret &=
+              ges_timeline_trim_object_simple (timeline, tmptrackelement, NULL,
               GES_EDGE_START, position, FALSE);
         }
       }
@@ -1611,7 +1622,7 @@ error:
 }
 
 gboolean
-timeline_move_object (GESTimeline * timeline, GESTrackObject * object,
+timeline_move_object (GESTimeline * timeline, GESTrackElement * object,
     GList * layers, GESEdge edge, guint64 position)
 {
   if (!ges_timeline_set_moving_context (timeline, object, GES_EDIT_MODE_RIPPLE,
@@ -1628,7 +1639,7 @@ timeline_move_object (GESTimeline * timeline, GESTrackObject * object,
 
 gboolean
 ges_timeline_move_object_simple (GESTimeline * timeline,
-    GESTrackObject * object, GList * layers, GESEdge edge, guint64 position)
+    GESTrackElement * object, GList * layers, GESEdge edge, guint64 position)
 {
   guint64 *snap_end, *snap_st, *cur, off1, off2, end;
 
@@ -1718,27 +1729,27 @@ timeline_context_to_layer (GESTimeline * timeline, gint offset)
 }
 
 static void
-add_object_to_track (GESClip * object, GESTrackObject * track_object,
+add_object_to_track (GESClip * object, GESTrackElement * track_element,
     GESTrack * track)
 {
-  if (!ges_clip_add_track_object (object, track_object)) {
+  if (!ges_clip_add_track_element (object, track_element)) {
     GST_WARNING_OBJECT (object,
         "Failed to add track object to timeline object");
-    gst_object_unref (track_object);
+    gst_object_unref (track_element);
     return;
   }
 
-  if (!ges_track_add_object (track, track_object)) {
+  if (!ges_track_add_object (track, track_element)) {
     GST_WARNING_OBJECT (object, "Failed to add track object to track");
-    ges_clip_release_track_object (object, track_object);
-    gst_object_unref (track_object);
+    ges_clip_release_track_element (object, track_element);
+    gst_object_unref (track_element);
     return;
   }
 }
 
 static GPtrArray *
 select_tracks_for_object_default (GESTimeline * timeline,
-    GESClip * clip, GESTrackObject * tr_object, gpointer user_data)
+    GESClip * clip, GESTrackElement * tr_object, gpointer user_data)
 {
   GPtrArray *result;
   GList *tmp;
@@ -1748,7 +1759,7 @@ select_tracks_for_object_default (GESTimeline * timeline,
   for (tmp = timeline->tracks; tmp; tmp = tmp->next) {
     GESTrack *track = GES_TRACK (tmp->data);
 
-    if ((track->type & ges_track_object_get_track_type (tr_object))) {
+    if ((track->type & ges_track_element_get_track_type (tr_object))) {
       gst_object_ref (track);
       g_ptr_array_add (result, track);
     }
@@ -1764,10 +1775,10 @@ add_object_to_tracks (GESTimeline * timeline, GESClip * object,
   gint i;
   GPtrArray *tracks = NULL;
   GESTrackType types, visited_type = GES_TRACK_TYPE_UNKNOWN;
-  GList *tmp, *l, *track_objects;
+  GList *tmp, *l, *track_elements;
 
   GST_DEBUG_OBJECT (timeline, "Creating %" GST_PTR_FORMAT
-      " trackobjects and adding them to our tracks", object);
+      " trackelements and adding them to our tracks", object);
 
   types = ges_clip_get_supported_formats (object);
   if (track) {
@@ -1782,53 +1793,53 @@ add_object_to_tracks (GESTimeline * timeline, GESClip * object,
     if (((track->type & types) == 0 || (track->type & visited_type)))
       continue;
 
-    track_objects = ges_clip_create_track_objects (object, track->type);
-    for (l = track_objects; l; l = l->next) {
+    track_elements = ges_clip_create_track_elements (object, track->type);
+    for (l = track_elements; l; l = l->next) {
       GESTrack *tmp_track;
-      GESTrackObject *track_object = l->data;
+      GESTrackElement *track_element = l->data;
 
-      GST_DEBUG_OBJECT (timeline, "Got trackobject: %" GST_PTR_FORMAT
-          "Asking to which track it should be added", track_object);
+      GST_DEBUG_OBJECT (timeline, "Got trackelement: %" GST_PTR_FORMAT
+          "Asking to which track it should be added", track_element);
 
       g_signal_emit (G_OBJECT (timeline),
           ges_timeline_signals[SELECT_TRACKS_FOR_OBJECT], 0, object,
-          track_object, &tracks);
+          track_element, &tracks);
 
       if (!tracks || tracks->len == 0) {
         GST_DEBUG_OBJECT (timeline, "Got no Track to add %p (type %s)",
-            track_object,
-            ges_track_type_name (ges_track_object_get_track_type
-                (track_object)));
-        goto next_track_object;
+            track_element,
+            ges_track_type_name (ges_track_element_get_track_type
+                (track_element)));
+        goto next_track_element;
       }
 
       for (i = 0; i < tracks->len; i++) {
-        GESTrackObject *track_object_copy;
+        GESTrackElement *track_element_copy;
 
         tmp_track = g_ptr_array_index (tracks, i);
         if (track && tmp_track != track) {
           GST_LOG_OBJECT (timeline,
-              "Not adding %" GST_PTR_FORMAT " to any track", track_object);
+              "Not adding %" GST_PTR_FORMAT " to any track", track_element);
           continue;
         }
 
-        track_object_copy =
-            GES_TRACK_OBJECT (ges_timeline_element_copy (GES_TIMELINE_ELEMENT
-                (track_object), TRUE));
+        track_element_copy =
+            GES_TRACK_ELEMENT (ges_timeline_element_copy (GES_TIMELINE_ELEMENT
+                (track_element), TRUE));
 
         GST_LOG_OBJECT (timeline, "Trying to add %p to track %p",
-            track_object_copy, tmp_track);
-        add_object_to_track (object, track_object_copy, tmp_track);
+            track_element_copy, tmp_track);
+        add_object_to_track (object, track_element_copy, tmp_track);
 
         gst_object_unref (tmp_track);
       }
 
-    next_track_object:
+    next_track_element:
       if (tracks) {
         g_ptr_array_unref (tracks);
         tracks = NULL;
       }
-      gst_object_unref (track_object);
+      gst_object_unref (track_element);
     }
   }
 }
@@ -1874,7 +1885,7 @@ static void
 layer_object_removed_cb (GESTimelineLayer * layer, GESClip * object,
     GESTimeline * timeline)
 {
-  GList *trackobjects, *tmp;
+  GList *trackelements, *tmp;
 
   if (ges_clip_is_moving_from_layer (object)) {
     GST_DEBUG ("Clip %p is moving from a layer to another, not doing"
@@ -1887,30 +1898,30 @@ layer_object_removed_cb (GESTimelineLayer * layer, GESClip * object,
   /* Go over the object's track objects and figure out which one belongs to
    * the list of tracks we control */
 
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trobj = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trobj = (GESTrackElement *) tmp->data;
 
-    GST_DEBUG_OBJECT (timeline, "Trying to remove TrackObject %p", trobj);
+    GST_DEBUG_OBJECT (timeline, "Trying to remove TrackElement %p", trobj);
     if (G_LIKELY (g_list_find_custom (timeline->priv->priv_tracks,
-                ges_track_object_get_track (trobj),
+                ges_track_element_get_track (trobj),
                 (GCompareFunc) custom_find_track))) {
       GST_DEBUG ("Belongs to one of the tracks we control");
 
-      ges_track_remove_object (ges_track_object_get_track (trobj), trobj);
-      ges_clip_release_track_object (object, trobj);
+      ges_track_remove_object (ges_track_element_get_track (trobj), trobj);
+      ges_clip_release_track_element (object, trobj);
     }
-    /* removing the reference added by _get_track_objects() */
+    /* removing the reference added by _get_track_elements() */
     g_object_unref (trobj);
   }
 
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 
   GST_DEBUG ("Done");
 }
 
 static void
-trackobj_start_changed_cb (GESTrackObject * child,
+trackelement_start_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESTimeline * timeline)
 {
   GESTimelinePrivate *priv = timeline->priv;
@@ -1921,12 +1932,12 @@ trackobj_start_changed_cb (GESTrackObject * child,
         (GCompareDataFunc) element_start_compare, NULL);
 
   if (GES_IS_TRACK_SOURCE (child)) {
-    sort_track_objects (timeline, iters);
+    sort_track_elements (timeline, iters);
     sort_starts_ends_start (timeline, iters);
     sort_starts_ends_end (timeline, iters);
 
     /* If the timeline is set to snap objects together, we
-     * are sure that all movement of TrackObject-s are done within
+     * are sure that all movement of TrackElement-s are done within
      * the moving context, so we do not need to recalculate the
      * move context as often */
     if (timeline->priv->movecontext.ignore_needs_ctx &&
@@ -1938,7 +1949,7 @@ trackobj_start_changed_cb (GESTrackObject * child,
 }
 
 static void
-trackobj_priority_changed_cb (GESTrackObject * child,
+trackelement_priority_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESTimeline * timeline)
 {
   GESTimelinePrivate *priv = timeline->priv;
@@ -1952,7 +1963,7 @@ trackobj_priority_changed_cb (GESTrackObject * child,
 
   if (G_UNLIKELY (layer == NULL)) {
     GST_ERROR_OBJECT (timeline,
-        "Changing a TrackObject prio, which would not "
+        "Changing a TrackElement prio, which would not "
         "land in no layer we are controlling");
     g_sequence_remove (iters->iter_by_layer);
     iters->iter_by_layer = NULL;
@@ -1975,11 +1986,11 @@ trackobj_priority_changed_cb (GESTrackObject * child,
   }
 
   if (GES_IS_TRACK_SOURCE (child))
-    sort_track_objects (timeline, iters);
+    sort_track_elements (timeline, iters);
 }
 
 static void
-trackobj_duration_changed_cb (GESTrackObject * child,
+trackelement_duration_changed_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESTimeline * timeline)
 {
   GESTimelinePrivate *priv = timeline->priv;
@@ -1989,7 +2000,7 @@ trackobj_duration_changed_cb (GESTrackObject * child,
     sort_starts_ends_end (timeline, iters);
 
     /* If the timeline is set to snap objects together, we
-     * are sure that all movement of TrackObject-s are done within
+     * are sure that all movement of TrackElement-s are done within
      * the moving context, so we do not need to recalculate the
      * move context as often */
     if (timeline->priv->movecontext.ignore_needs_ctx &&
@@ -2002,22 +2013,22 @@ trackobj_duration_changed_cb (GESTrackObject * child,
 }
 
 static void
-track_object_added_cb (GESTrack * track, GESTrackObject * object,
+track_element_added_cb (GESTrack * track, GESTrackElement * object,
     GESTimeline * timeline)
 {
   /* Auto transition should be updated before we receive the signal */
-  g_signal_connect_after (GES_TRACK_OBJECT (object), "notify::start",
-      G_CALLBACK (trackobj_start_changed_cb), timeline);
-  g_signal_connect_after (GES_TRACK_OBJECT (object), "notify::duration",
-      G_CALLBACK (trackobj_duration_changed_cb), timeline);
-  g_signal_connect_after (GES_TRACK_OBJECT (object), "notify::priority",
-      G_CALLBACK (trackobj_priority_changed_cb), timeline);
+  g_signal_connect_after (GES_TRACK_ELEMENT (object), "notify::start",
+      G_CALLBACK (trackelement_start_changed_cb), timeline);
+  g_signal_connect_after (GES_TRACK_ELEMENT (object), "notify::duration",
+      G_CALLBACK (trackelement_duration_changed_cb), timeline);
+  g_signal_connect_after (GES_TRACK_ELEMENT (object), "notify::priority",
+      G_CALLBACK (trackelement_priority_changed_cb), timeline);
 
-  start_tracking_track_object (timeline, object);
+  start_tracking_track_element (timeline, object);
 }
 
 static void
-track_object_removed_cb (GESTrack * track, GESTrackObject * object,
+track_element_removed_cb (GESTrack * track, GESTrackElement * object,
     GESTimeline * timeline)
 {
 
@@ -2027,14 +2038,14 @@ track_object_removed_cb (GESTrack * track, GESTrackObject * object,
   }
 
   /* Disconnect all signal handlers */
-  g_signal_handlers_disconnect_by_func (object, trackobj_start_changed_cb,
-      NULL);
-  g_signal_handlers_disconnect_by_func (object, trackobj_duration_changed_cb,
-      NULL);
-  g_signal_handlers_disconnect_by_func (object, trackobj_priority_changed_cb,
+  g_signal_handlers_disconnect_by_func (object, trackelement_start_changed_cb,
       NULL);
+  g_signal_handlers_disconnect_by_func (object,
+      trackelement_duration_changed_cb, NULL);
+  g_signal_handlers_disconnect_by_func (object,
+      trackelement_priority_changed_cb, NULL);
 
-  stop_tracking_track_object (timeline, object);
+  stop_tracking_track_element (timeline, object);
 }
 
 static void
@@ -2413,9 +2424,9 @@ ges_timeline_add_track (GESTimeline * timeline, GESTrack * track)
 
   /* We connect to the object for the timeline editing mode management */
   g_signal_connect (G_OBJECT (track), "track-object-added",
-      G_CALLBACK (track_object_added_cb), timeline);
+      G_CALLBACK (track_element_added_cb), timeline);
   g_signal_connect (G_OBJECT (track), "track-object-removed",
-      G_CALLBACK (track_object_removed_cb), timeline);
+      G_CALLBACK (track_element_removed_cb), timeline);
 
   for (tmp = timeline->layers; tmp; tmp = tmp->next) {
     GList *objects, *obj;
@@ -2486,8 +2497,9 @@ ges_timeline_remove_track (GESTimeline * timeline, GESTrack * track)
   /* Remove pad-added/-removed handlers */
   g_signal_handlers_disconnect_by_func (track, pad_added_cb, tr_priv);
   g_signal_handlers_disconnect_by_func (track, pad_removed_cb, tr_priv);
-  g_signal_handlers_disconnect_by_func (track, track_object_added_cb, timeline);
-  g_signal_handlers_disconnect_by_func (track, track_object_removed_cb,
+  g_signal_handlers_disconnect_by_func (track, track_element_added_cb,
+      timeline);
+  g_signal_handlers_disconnect_by_func (track, track_element_removed_cb,
       timeline);
 
   /* Signal track removal to all layers/objects */
index 449deb52064a5e398ec25a34a08a212b80070eb8..61e7a54ef9577aef60317f6ff4d9cc8c3f660c8e 100644 (file)
@@ -29,7 +29,7 @@
 #include "ges-internal.h"
 #include "ges-title-clip.h"
 #include "ges-source-clip.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-title-source.h"
 #include <string.h>
 
@@ -68,13 +68,14 @@ enum
   PROP_YPOS,
 };
 
-static GESTrackObject
-    * ges_title_clip_create_track_object (GESClip * obj, GESTrackType type);
+static GESTrackElement
+    * ges_title_clip_create_track_element (GESClip * obj, GESTrackType type);
 
 static void
-ges_title_clip_track_object_added (GESClip * obj, GESTrackObject * tckobj);
-static void
-ges_title_clip_track_object_released (GESClip * obj, GESTrackObject * tckobj);
+ges_title_clip_track_element_added (GESClip * obj,
+    GESTrackElement * trackelement);
+static void ges_title_clip_track_element_released (GESClip * obj,
+    GESTrackElement * trackelement);
 
 static void
 ges_title_clip_get_property (GObject * object, guint property_id,
@@ -229,10 +230,10 @@ ges_title_clip_class_init (GESTitleClipClass * klass)
       g_param_spec_boolean ("mute", "Mute", "Mute audio track",
           FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
-  timobj_class->create_track_object = ges_title_clip_create_track_object;
+  timobj_class->create_track_element = ges_title_clip_create_track_element;
   timobj_class->need_fill_track = FALSE;
-  timobj_class->track_object_added = ges_title_clip_track_object_added;
-  timobj_class->track_object_released = ges_title_clip_track_object_released;
+  timobj_class->track_element_added = ges_title_clip_track_element_added;
+  timobj_class->track_element_released = ges_title_clip_track_element_released;
 
   /**
    * GESTitleClip:color:
@@ -405,7 +406,7 @@ ges_title_clip_set_valignment (GESTitleClip * self, GESTextVAlign valign)
 void
 ges_title_clip_set_mute (GESTitleClip * self, gboolean mute)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG_OBJECT (self, "mute:%d", mute);
@@ -413,17 +414,18 @@ ges_title_clip_set_mute (GESTitleClip * self, gboolean mute)
   self->priv->mute = mute;
 
   /* Go over tracked objects, and update 'active' status on all audio objects */
-  /* FIXME : We need a much less crack way to find the trackobject to change */
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  /* FIXME : We need a much less crack way to find the trackelement to change */
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_AUDIO)
-      ges_track_object_set_active (trackobject, !mute);
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_AUDIO)
+      ges_track_element_set_active (trackelement, !mute);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 /**
@@ -659,41 +661,43 @@ ges_title_clip_get_ypos (GESTitleClip * self)
 }
 
 static void
-ges_title_clip_track_object_released (GESClip * obj, GESTrackObject * tckobj)
+ges_title_clip_track_element_released (GESClip * obj,
+    GESTrackElement * trackelement)
 {
   GESTitleClipPrivate *priv = GES_TITLE_CLIP (obj)->priv;
 
-  /* If this is called, we should be sure the tckobj exists */
-  if (GES_IS_TRACK_TITLE_SOURCE (tckobj)) {
-    GST_DEBUG_OBJECT (obj, "%p released from %p", tckobj, obj);
-    priv->track_titles = g_slist_remove (priv->track_titles, tckobj);
-    g_object_unref (tckobj);
+  /* If this is called, we should be sure the trackelement exists */
+  if (GES_IS_TRACK_TITLE_SOURCE (trackelement)) {
+    GST_DEBUG_OBJECT (obj, "%p released from %p", trackelement, obj);
+    priv->track_titles = g_slist_remove (priv->track_titles, trackelement);
+    g_object_unref (trackelement);
   }
 }
 
 static void
-ges_title_clip_track_object_added (GESClip * obj, GESTrackObject * tckobj)
+ges_title_clip_track_element_added (GESClip * obj,
+    GESTrackElement * trackelement)
 {
   GESTitleClipPrivate *priv = GES_TITLE_CLIP (obj)->priv;
 
-  if (GES_IS_TRACK_TITLE_SOURCE (tckobj)) {
-    GST_DEBUG_OBJECT (obj, "%p added to %p", tckobj, obj);
+  if (GES_IS_TRACK_TITLE_SOURCE (trackelement)) {
+    GST_DEBUG_OBJECT (obj, "%p added to %p", trackelement, obj);
     priv->track_titles =
-        g_slist_prepend (priv->track_titles, g_object_ref (tckobj));
+        g_slist_prepend (priv->track_titles, g_object_ref (trackelement));
   }
 }
 
-static GESTrackObject *
-ges_title_clip_create_track_object (GESClip * obj, GESTrackType type)
+static GESTrackElement *
+ges_title_clip_create_track_element (GESClip * obj, GESTrackType type)
 {
 
   GESTitleClipPrivate *priv = GES_TITLE_CLIP (obj)->priv;
-  GESTrackObject *res = NULL;
+  GESTrackElement *res = NULL;
 
   GST_DEBUG_OBJECT (obj, "a GESTrackTitleSource");
 
   if (type == GES_TRACK_TYPE_VIDEO) {
-    res = (GESTrackObject *) ges_track_title_source_new ();
+    res = (GESTrackElement *) ges_track_title_source_new ();
     GST_DEBUG_OBJECT (obj, "text property");
     ges_track_title_source_set_text ((GESTrackTitleSource *) res, priv->text);
     ges_track_title_source_set_font_desc ((GESTrackTitleSource *) res,
index 191d904af93f4229678aa2314fc8c2b1bdbd4322..4dd9b24d0497a89f8b8c097922c464ab8d418da6 100644 (file)
@@ -28,7 +28,7 @@
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-audio-test-source.h"
 
 G_DEFINE_TYPE (GESTrackAudioTestSource, ges_track_audio_test_source,
@@ -51,14 +51,14 @@ static void ges_track_audio_test_source_get_property (GObject * object, guint
 static void ges_track_audio_test_source_set_property (GObject * object, guint
     property_id, const GValue * value, GParamSpec * pspec);
 
-static GstElement *ges_track_audio_test_source_create_element (GESTrackObject *
+static GstElement *ges_track_audio_test_source_create_element (GESTrackElement *
     self);
 
 static void
 ges_track_audio_test_source_class_init (GESTrackAudioTestSourceClass * klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GESTrackObjectClass *bg_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *bg_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackAudioTestSourcePrivate));
 
@@ -99,7 +99,7 @@ ges_track_audio_test_source_set_property (GObject * object,
 }
 
 static GstElement *
-ges_track_audio_test_source_create_element (GESTrackObject * trksrc)
+ges_track_audio_test_source_create_element (GESTrackElement * trksrc)
 {
   GESTrackAudioTestSource *self;
   GstElement *ret;
@@ -123,7 +123,8 @@ void
 ges_track_audio_test_source_set_freq (GESTrackAudioTestSource * self,
     gdouble freq)
 {
-  GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
+  GstElement *element =
+      ges_track_element_get_element (GES_TRACK_ELEMENT (self));
 
   self->priv->freq = freq;
   if (element)
@@ -141,7 +142,8 @@ void
 ges_track_audio_test_source_set_volume (GESTrackAudioTestSource * self,
     gdouble volume)
 {
-  GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
+  GstElement *element =
+      ges_track_element_get_element (GES_TRACK_ELEMENT (self));
 
   self->priv->volume = volume;
   if (element)
index 352ee845e090970c704e6f29f4ee5e726e6c9be2..0f5df04ca80eb19b80e352ffff2f05a1b9327149 100644 (file)
@@ -24,7 +24,7 @@
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-audio-transition.h"
 
 #include <gst/controller/gstdirectcontrolbinding.h>
@@ -51,9 +51,9 @@ enum
 #define fast_element_link(a,b) gst_element_link_pads_full((a),"src",(b),"sink",GST_PAD_LINK_CHECK_NOTHING)
 
 static void
-ges_track_audio_transition_duration_changed (GESTrackObject * self, guint64);
+ges_track_audio_transition_duration_changed (GESTrackElement * self, guint64);
 
-static GstElement *ges_track_audio_transition_create_element (GESTrackObject
+static GstElement *ges_track_audio_transition_create_element (GESTrackElement
     * self);
 
 static void ges_track_audio_transition_dispose (GObject * object);
@@ -70,12 +70,12 @@ static void
 ges_track_audio_transition_class_init (GESTrackAudioTransitionClass * klass)
 {
   GObjectClass *object_class;
-  GESTrackObjectClass *toclass;
+  GESTrackElementClass *toclass;
 
   g_type_class_add_private (klass, sizeof (GESTrackAudioTransitionPrivate));
 
   object_class = G_OBJECT_CLASS (klass);
-  toclass = GES_TRACK_OBJECT_CLASS (klass);
+  toclass = GES_TRACK_ELEMENT_CLASS (klass);
 
   object_class->get_property = ges_track_audio_transition_get_property;
   object_class->set_property = ges_track_audio_transition_set_property;
@@ -161,7 +161,7 @@ link_element_to_mixer_with_volume (GstBin * bin, GstElement * element,
 }
 
 static GstElement *
-ges_track_audio_transition_create_element (GESTrackObject * object)
+ges_track_audio_transition_create_element (GESTrackElement * object)
 {
   GESTrackAudioTransition *self;
   GstElement *topbin, *iconva, *iconvb, *oconv;
@@ -230,11 +230,11 @@ ges_track_audio_transition_create_element (GESTrackObject * object)
 }
 
 static void
-ges_track_audio_transition_duration_changed (GESTrackObject * object,
+ges_track_audio_transition_duration_changed (GESTrackElement * object,
     guint64 duration)
 {
   GESTrackAudioTransition *self;
-  GstElement *gnlobj = ges_track_object_get_gnlobject (object);
+  GstElement *gnlobj = ges_track_element_get_gnlobject (object);
   GstTimedValueControlSource *ta, *tb;
 
   self = GES_TRACK_AUDIO_TRANSITION (object);
index 89836a1ac60eda6f66a8494416a46db82b24e8da..47d13c9b60968ea4be738c697b47157be0b9f972 100644 (file)
 #include <string.h>
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-effect.h"
 
 G_DEFINE_ABSTRACT_TYPE (GESTrackEffect, ges_track_effect,
     GES_TYPE_TRACK_OPERATION);
 
-static GHashTable *ges_track_effect_get_props_hashtable (GESTrackObject * self);
+static GHashTable *ges_track_effect_get_props_hashtable (GESTrackElement *
+    self);
 guint pspec_hash (gconstpointer key_spec);
 static gboolean pspec_equal (gconstpointer key_spec_1,
     gconstpointer key_spec_2);
@@ -46,7 +47,7 @@ struct _GESTrackEffectPrivate
 static void
 ges_track_effect_class_init (GESTrackEffectClass * klass)
 {
-  GESTrackObjectClass *obj_bg_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *obj_bg_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackEffectPrivate));
 
@@ -86,7 +87,7 @@ pspec_hash (gconstpointer key_spec)
 
 /*  Virtual methods */
 static GHashTable *
-ges_track_effect_get_props_hashtable (GESTrackObject * self)
+ges_track_effect_get_props_hashtable (GESTrackElement * self)
 {
   GValue item = { 0, };
   GstIterator *it;
@@ -98,7 +99,7 @@ ges_track_effect_get_props_hashtable (GESTrackObject * self)
   gboolean done = FALSE;
   GHashTable *ret = NULL;
 
-  element = ges_track_object_get_element (self);
+  element = ges_track_element_get_element (self);
   if (!element) {
     GST_DEBUG
         ("Can't build the property hashtable until the gnlobject is created");
diff --git a/ges/ges-track-element.c b/ges/ges-track-element.c
new file mode 100644 (file)
index 0000000..33ebf35
--- /dev/null
@@ -0,0 +1,1492 @@
+/* GStreamer Editing Services
+ * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
+ *               2009 Nokia Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:ges-track-element
+ * @short_description: Base Class for objects contained in a GESTrack
+ *
+ * #GESTrackElement is the Base Class for any object that can be contained in a
+ * #GESTrack.
+ *
+ * It contains the basic information as to the location of the object within
+ * its container, like the start position, the inpoint, the duration and the
+ * priority.
+ */
+
+#include "ges-internal.h"
+#include "ges-extractable.h"
+#include "ges-track-element.h"
+#include "ges-clip.h"
+#include "ges-meta-container.h"
+#include <gobject/gvaluecollector.h>
+
+G_DEFINE_ABSTRACT_TYPE (GESTrackElement, ges_track_element,
+    GES_TYPE_TIMELINE_ELEMENT);
+
+struct _GESTrackElementPrivate
+{
+  GESTrackType track_type;
+
+  /* These fields are only used before the gnlobject is available */
+  guint64 pending_start;
+  guint64 pending_inpoint;
+  guint64 pending_duration;
+  guint32 pending_priority;
+  gboolean pending_active;
+
+  GstElement *gnlobject;        /* The GnlObject */
+  GstElement *element;          /* The element contained in the gnlobject (can be NULL) */
+
+  /* We keep a link between properties name and elements internally
+   * The hashtable should look like
+   * {GParamaSpec ---> element,}*/
+  GHashTable *properties_hashtable;
+
+  GESClip *timelineobj;
+  GESTrack *track;
+
+  gboolean valid;
+
+  gboolean locked;              /* If TRUE, then moves in sync with its controlling
+                                 * GESClip */
+};
+
+enum
+{
+  PROP_0,
+  PROP_ACTIVE,
+  PROP_LOCKED,
+  PROP_TRACK_TYPE,
+  PROP_TRACK,
+  PROP_LAST
+};
+
+static GParamSpec *properties[PROP_LAST];
+
+enum
+{
+  DEEP_NOTIFY,
+  LAST_SIGNAL
+};
+
+static guint ges_track_element_signals[LAST_SIGNAL] = { 0 };
+
+static GstElement *ges_track_element_create_gnl_object_func (GESTrackElement *
+    object);
+
+static void gnlobject_start_cb (GstElement * gnlobject, GParamSpec * arg
+    G_GNUC_UNUSED, GESTrackElement * obj);
+
+static void gnlobject_media_start_cb (GstElement * gnlobject, GParamSpec * arg
+    G_GNUC_UNUSED, GESTrackElement * obj);
+
+static void gnlobject_priority_cb (GstElement * gnlobject, GParamSpec * arg
+    G_GNUC_UNUSED, GESTrackElement * obj);
+
+static void gnlobject_duration_cb (GstElement * gnlobject, GParamSpec * arg
+    G_GNUC_UNUSED, GESTrackElement * obj);
+
+static void gnlobject_active_cb (GstElement * gnlobject, GParamSpec * arg
+    G_GNUC_UNUSED, GESTrackElement * obj);
+
+static void connect_properties_signals (GESTrackElement * object);
+static void connect_signal (gpointer key, gpointer value, gpointer user_data);
+static void gst_element_prop_changed_cb (GstElement * element, GParamSpec * arg
+    G_GNUC_UNUSED, GESTrackElement * obj);
+
+static gboolean _set_start (GESTimelineElement * element, GstClockTime start);
+static gboolean _set_inpoint (GESTimelineElement * element,
+    GstClockTime inpoint);
+static gboolean _set_duration (GESTimelineElement * element,
+    GstClockTime duration);
+static gboolean _set_priority (GESTimelineElement * element, guint32 priority);
+static void _deep_copy (GESTimelineElement * element,
+    GESTimelineElement * copy);
+
+static inline void
+ges_track_element_set_locked_internal (GESTrackElement * object,
+    gboolean locked);
+
+static GParamSpec **default_list_children_properties (GESTrackElement * object,
+    guint * n_properties);
+
+static void
+ges_track_element_get_property (GObject * object, guint property_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GESTrackElement *tobj = GES_TRACK_ELEMENT (object);
+
+  switch (property_id) {
+    case PROP_ACTIVE:
+      g_value_set_boolean (value, ges_track_element_is_active (tobj));
+      break;
+    case PROP_LOCKED:
+      g_value_set_boolean (value, ges_track_element_is_locked (tobj));
+      break;
+    case PROP_TRACK_TYPE:
+      g_value_set_flags (value, tobj->priv->track_type);
+      break;
+    case PROP_TRACK:
+      g_value_set_object (value, tobj->priv->track);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+  }
+}
+
+static void
+ges_track_element_set_property (GObject * object, guint property_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GESTrackElement *tobj = GES_TRACK_ELEMENT (object);
+
+  switch (property_id) {
+    case PROP_ACTIVE:
+      ges_track_element_set_active (tobj, g_value_get_boolean (value));
+      break;
+    case PROP_LOCKED:
+      ges_track_element_set_locked_internal (tobj, g_value_get_boolean (value));
+      break;
+    case PROP_TRACK_TYPE:
+      tobj->priv->track_type = g_value_get_flags (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+  }
+}
+
+static void
+ges_track_element_dispose (GObject * object)
+{
+  GESTrackElementPrivate *priv = GES_TRACK_ELEMENT (object)->priv;
+
+  if (priv->properties_hashtable)
+    g_hash_table_destroy (priv->properties_hashtable);
+
+  if (priv->gnlobject) {
+    GstState cstate;
+
+    if (priv->track != NULL) {
+      GST_ERROR_OBJECT (object, "Still in %p, this means that you forgot"
+          " to remove it from the GESTrack it is contained in. You always need"
+          " to remove a GESTrackElement from its track before dropping the last"
+          " reference\n"
+          "This problem may also be caused by a refcounting bug in"
+          " the application or GES itself.", priv->track);
+      gst_element_get_state (priv->gnlobject, &cstate, NULL, 0);
+      if (cstate != GST_STATE_NULL)
+        gst_element_set_state (priv->gnlobject, GST_STATE_NULL);
+    }
+
+    gst_object_unref (priv->gnlobject);
+    priv->gnlobject = NULL;
+  }
+
+  G_OBJECT_CLASS (ges_track_element_parent_class)->dispose (object);
+}
+
+static void
+ges_track_element_finalize (GObject * object)
+{
+  G_OBJECT_CLASS (ges_track_element_parent_class)->finalize (object);
+}
+
+static void
+ges_track_element_class_init (GESTrackElementClass * klass)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  GESTimelineElementClass *element_class = GES_TIMELINE_ELEMENT_CLASS (klass);
+
+  g_type_class_add_private (klass, sizeof (GESTrackElementPrivate));
+
+  object_class->get_property = ges_track_element_get_property;
+  object_class->set_property = ges_track_element_set_property;
+  object_class->dispose = ges_track_element_dispose;
+  object_class->finalize = ges_track_element_finalize;
+
+
+  /**
+   * GESTrackElement:active:
+   *
+   * Whether the object should be taken into account in the #GESTrack output.
+   * If #FALSE, then its contents will not be used in the resulting track.
+   */
+  properties[PROP_ACTIVE] =
+      g_param_spec_boolean ("active", "Active", "Use object in output", TRUE,
+      G_PARAM_READWRITE);
+  g_object_class_install_property (object_class, PROP_ACTIVE,
+      properties[PROP_ACTIVE]);
+
+  /**
+   * GESTrackElement:locked:
+   *
+   * If %TRUE, then moves in sync with its controlling #GESClip
+   */
+  properties[PROP_LOCKED] =
+      g_param_spec_boolean ("locked", "Locked",
+      "Moves in sync with its controling Clip", TRUE, G_PARAM_READWRITE);
+  g_object_class_install_property (object_class, PROP_LOCKED,
+      properties[PROP_LOCKED]);
+
+  properties[PROP_TRACK_TYPE] = g_param_spec_flags ("track-type", "Track Type",
+      "The track type of the object", GES_TYPE_TRACK_TYPE,
+      GES_TRACK_TYPE_UNKNOWN, G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+  g_object_class_install_property (object_class, PROP_TRACK_TYPE,
+      properties[PROP_TRACK_TYPE]);
+
+  properties[PROP_TRACK] = g_param_spec_object ("track", "Track",
+      "The track the object is in", GES_TYPE_TRACK, G_PARAM_READABLE);
+  g_object_class_install_property (object_class, PROP_TRACK,
+      properties[PROP_TRACK]);
+
+
+  /**
+   * GESTrackElement::deep-notify:
+   * @track_element: a #GESTrackElement
+   * @prop_object: the object that originated the signal
+   * @prop: the property that changed
+   *
+   * The deep notify signal is used to be notified of property changes of all
+   * the childs of @track_element
+   *
+   * Since: 0.10.2
+   */
+  ges_track_element_signals[DEEP_NOTIFY] =
+      g_signal_new ("deep-notify", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE | G_SIGNAL_DETAILED |
+      G_SIGNAL_NO_HOOKS, 0, NULL, NULL, g_cclosure_marshal_generic,
+      G_TYPE_NONE, 2, GST_TYPE_ELEMENT, G_TYPE_PARAM);
+
+  element_class->set_start = _set_start;
+  element_class->set_duration = _set_duration;
+  element_class->set_inpoint = _set_inpoint;
+  element_class->set_priority = _set_priority;
+  element_class->deep_copy = _deep_copy;
+
+  klass->create_gnl_object = ges_track_element_create_gnl_object_func;
+  /*  There is no 'get_props_hashtable' default implementation */
+  klass->get_props_hastable = NULL;
+  klass->list_children_properties = default_list_children_properties;
+}
+
+static void
+ges_track_element_init (GESTrackElement * self)
+{
+  GESTrackElementPrivate *priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
+      GES_TYPE_TRACK_ELEMENT, GESTrackElementPrivate);
+
+  /* Sane default values */
+  priv->pending_start = 0;
+  priv->pending_inpoint = 0;
+  priv->pending_duration = GST_SECOND;
+  priv->pending_priority = 1;
+  priv->pending_active = TRUE;
+  priv->locked = TRUE;
+  priv->properties_hashtable = NULL;
+}
+
+static gboolean
+_set_start (GESTimelineElement * element, GstClockTime start)
+{
+  GESTrackElement *object = GES_TRACK_ELEMENT (element);
+
+  GST_DEBUG ("object:%p, start:%" GST_TIME_FORMAT,
+      object, GST_TIME_ARGS (start));
+
+  if (object->priv->gnlobject != NULL) {
+    if (G_UNLIKELY (start == _START (object)))
+      return FALSE;
+
+    g_object_set (object->priv->gnlobject, "start", start, NULL);
+  } else
+    object->priv->pending_start = start;
+
+  return TRUE;
+}
+
+static gboolean
+_set_inpoint (GESTimelineElement * element, GstClockTime inpoint)
+{
+  GESTrackElement *object = GES_TRACK_ELEMENT (element);
+
+  GST_DEBUG ("object:%p, inpoint:%" GST_TIME_FORMAT,
+      object, GST_TIME_ARGS (inpoint));
+
+  if (object->priv->gnlobject != NULL) {
+    if (G_UNLIKELY (inpoint == _INPOINT (object)))
+
+      return FALSE;
+
+    g_object_set (object->priv->gnlobject, "media-start", inpoint, NULL);
+  } else
+    object->priv->pending_inpoint = inpoint;
+
+  return TRUE;
+}
+
+static gboolean
+_set_duration (GESTimelineElement * element, GstClockTime duration)
+{
+  GESTrackElement *object = GES_TRACK_ELEMENT (element);
+  GESTrackElementPrivate *priv = object->priv;
+
+  GST_DEBUG ("object:%p, duration:%" GST_TIME_FORMAT,
+      object, GST_TIME_ARGS (duration));
+
+  if (GST_CLOCK_TIME_IS_VALID (_MAXDURATION (element)) &&
+      duration > _INPOINT (object) + _MAXDURATION (element))
+    duration = _MAXDURATION (element) - _INPOINT (object);
+
+  if (priv->gnlobject != NULL) {
+    if (G_UNLIKELY (duration == _DURATION (object)))
+      return FALSE;
+
+    g_object_set (priv->gnlobject, "duration", duration,
+        "media-duration", duration, NULL);
+  } else
+    priv->pending_duration = duration;
+
+  return TRUE;
+}
+
+static gboolean
+_set_priority (GESTimelineElement * element, guint32 priority)
+{
+  GESTrackElement *object = GES_TRACK_ELEMENT (element);
+
+  GST_DEBUG ("object:%p, priority:%" G_GUINT32_FORMAT, object, priority);
+
+  if (object->priv->gnlobject != NULL) {
+    if (G_UNLIKELY (priority == _PRIORITY (object)))
+      return FALSE;
+
+    g_object_set (object->priv->gnlobject, "priority", priority, NULL);
+  } else
+    object->priv->pending_priority = priority;
+
+  return TRUE;
+}
+
+/**
+ * ges_track_element_set_active:
+ * @object: a #GESTrackElement
+ * @active: visibility
+ *
+ * Sets the usage of the @object. If @active is %TRUE, the object will be used for
+ * playback and rendering, else it will be ignored.
+ *
+ * Returns: %TRUE if the property was toggled, else %FALSE
+ */
+gboolean
+ges_track_element_set_active (GESTrackElement * object, gboolean active)
+{
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
+
+  GST_DEBUG ("object:%p, active:%d", object, active);
+
+  if (object->priv->gnlobject != NULL) {
+    if (G_UNLIKELY (active == object->active))
+      return FALSE;
+
+    g_object_set (object->priv->gnlobject, "active", active, NULL);
+  } else
+    object->priv->pending_active = active;
+  return TRUE;
+}
+
+void
+ges_track_element_set_track_type (GESTrackElement * object, GESTrackType type)
+{
+  g_return_if_fail (GES_IS_TRACK_ELEMENT (object));
+
+  if (object->priv->track_type != type) {
+    object->priv->track_type = type;
+    g_object_notify_by_pspec (G_OBJECT (object), properties[PROP_TRACK_TYPE]);
+  }
+}
+
+GESTrackType
+ges_track_element_get_track_type (GESTrackElement * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), GES_TRACK_TYPE_UNKNOWN);
+
+  return object->priv->track_type;
+}
+
+/* Callbacks from the GNonLin object */
+static void
+gnlobject_start_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
+    GESTrackElement * obj)
+{
+  guint64 start;
+
+  g_object_get (gnlobject, "start", &start, NULL);
+
+  GST_DEBUG ("gnlobject start : %" GST_TIME_FORMAT " current : %"
+      GST_TIME_FORMAT, GST_TIME_ARGS (start), GST_TIME_ARGS (_START (obj)));
+
+  if (start != _START (obj)) {
+    _START (obj) = start;
+    g_object_notify (G_OBJECT (obj), "start");
+  }
+}
+
+static void
+gst_element_prop_changed_cb (GstElement * element, GParamSpec * arg
+    G_GNUC_UNUSED, GESTrackElement * obj)
+{
+  g_signal_emit (obj, ges_track_element_signals[DEEP_NOTIFY], 0,
+      GST_ELEMENT (element), arg);
+}
+
+static void
+connect_signal (gpointer key, gpointer value, gpointer user_data)
+{
+  gchar *signame = g_strconcat ("notify::", G_PARAM_SPEC (key)->name, NULL);
+
+  g_signal_connect (G_OBJECT (value),
+      signame, G_CALLBACK (gst_element_prop_changed_cb),
+      GES_TRACK_ELEMENT (user_data));
+
+  g_free (signame);
+}
+
+static void
+connect_properties_signals (GESTrackElement * object)
+{
+  if (G_UNLIKELY (!object->priv->properties_hashtable)) {
+    GST_WARNING ("The properties_hashtable hasn't been set");
+    return;
+  }
+
+  g_hash_table_foreach (object->priv->properties_hashtable,
+      (GHFunc) connect_signal, object);
+
+}
+
+/* Callbacks from the GNonLin object */
+static void
+gnlobject_media_start_cb (GstElement * gnlobject,
+    GParamSpec * arg G_GNUC_UNUSED, GESTrackElement * obj)
+{
+  guint64 inpoint;
+
+  g_object_get (gnlobject, "media-start", &inpoint, NULL);
+
+  GST_DEBUG ("gnlobject in-point : %" GST_TIME_FORMAT " current : %"
+      GST_TIME_FORMAT, GST_TIME_ARGS (inpoint), GST_TIME_ARGS (_INPOINT (obj)));
+
+  if (inpoint != _INPOINT (obj)) {
+    _INPOINT (obj) = inpoint;
+    g_object_notify (G_OBJECT (obj), "in-point");
+  }
+}
+
+static void
+gnlobject_priority_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
+    GESTrackElement * obj)
+{
+  guint32 priority;
+
+  g_object_get (gnlobject, "priority", &priority, NULL);
+
+  GST_DEBUG ("gnlobject priority : %d current : %d", priority, _PRIORITY (obj));
+
+  if (priority != _PRIORITY (obj)) {
+    _PRIORITY (obj) = priority;
+    g_object_notify (G_OBJECT (obj), "priority");
+  }
+}
+
+static void
+gnlobject_duration_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
+    GESTrackElement * obj)
+{
+  guint64 duration;
+  GESTrackElementClass *klass;
+
+  klass = GES_TRACK_ELEMENT_GET_CLASS (obj);
+
+  g_object_get (gnlobject, "duration", &duration, NULL);
+
+  GST_DEBUG_OBJECT (gnlobject, "duration : %" GST_TIME_FORMAT " current : %"
+      GST_TIME_FORMAT, GST_TIME_ARGS (duration),
+      GST_TIME_ARGS (_DURATION (obj)));
+
+  if (duration != _DURATION (obj)) {
+    _DURATION (obj) = duration;
+    if (klass->duration_changed)
+      klass->duration_changed (obj, duration);
+    g_object_notify (G_OBJECT (obj), "duration");
+  }
+}
+
+static void
+gnlobject_active_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
+    GESTrackElement * obj)
+{
+  gboolean active;
+  GESTrackElementClass *klass;
+
+  klass = GES_TRACK_ELEMENT_GET_CLASS (obj);
+
+  g_object_get (gnlobject, "active", &active, NULL);
+
+  GST_DEBUG ("gnlobject active : %d current : %d", active, obj->active);
+
+  if (active != obj->active) {
+    obj->active = active;
+    if (klass->active_changed)
+      klass->active_changed (obj, active);
+  }
+}
+
+
+/* default 'create_gnl_object' virtual method implementation */
+static GstElement *
+ges_track_element_create_gnl_object_func (GESTrackElement * self)
+{
+  GESTrackElementClass *klass = NULL;
+  GstElement *child = NULL;
+  GstElement *gnlobject;
+
+  klass = GES_TRACK_ELEMENT_GET_CLASS (self);
+
+  if (G_UNLIKELY (self->priv->gnlobject != NULL))
+    goto already_have_gnlobject;
+
+  if (G_UNLIKELY (klass->gnlobject_factorytype == NULL))
+    goto no_gnlfactory;
+
+  GST_DEBUG ("Creating a supporting gnlobject of type '%s'",
+      klass->gnlobject_factorytype);
+
+  gnlobject = gst_element_factory_make (klass->gnlobject_factorytype, NULL);
+
+  if (G_UNLIKELY (gnlobject == NULL))
+    goto no_gnlobject;
+
+  if (klass->create_element) {
+    GST_DEBUG ("Calling subclass 'create_element' vmethod");
+    child = klass->create_element (self);
+
+    if (G_UNLIKELY (!child))
+      goto child_failure;
+
+    if (!gst_bin_add (GST_BIN (gnlobject), child))
+      goto add_failure;
+
+    GST_DEBUG ("Succesfully got the element to put in the gnlobject");
+    self->priv->element = child;
+  }
+
+  GST_DEBUG ("done");
+  return gnlobject;
+
+
+  /* ERROR CASES */
+
+already_have_gnlobject:
+  {
+    GST_ERROR ("Already controlling a GnlObject %s",
+        GST_ELEMENT_NAME (self->priv->gnlobject));
+    return NULL;
+  }
+
+no_gnlfactory:
+  {
+    GST_ERROR ("No GESTrackElement::gnlobject_factorytype implementation!");
+    return NULL;
+  }
+
+no_gnlobject:
+  {
+    GST_ERROR ("Error creating a gnlobject of type '%s'",
+        klass->gnlobject_factorytype);
+    return NULL;
+  }
+
+child_failure:
+  {
+    GST_ERROR ("create_element returned NULL");
+    gst_object_unref (gnlobject);
+    return NULL;
+  }
+
+add_failure:
+  {
+    GST_ERROR ("Error adding the contents to the gnlobject");
+    gst_object_unref (child);
+    gst_object_unref (gnlobject);
+    return NULL;
+  }
+}
+
+static gboolean
+ensure_gnl_object (GESTrackElement * object)
+{
+  GESTrackElementClass *class;
+  GstElement *gnlobject;
+  GHashTable *props_hash;
+  gboolean res = TRUE;
+
+  if (object->priv->gnlobject && object->priv->valid)
+    return FALSE;
+
+  /* 1. Create the GnlObject */
+  GST_DEBUG ("Creating GnlObject");
+
+  class = GES_TRACK_ELEMENT_GET_CLASS (object);
+
+  if (G_UNLIKELY (class->create_gnl_object == NULL)) {
+    GST_ERROR ("No 'create_gnl_object' implementation !");
+    goto done;
+  }
+
+  GST_DEBUG ("Calling virtual method");
+
+  /* 2. Fill in the GnlObject */
+  if (object->priv->gnlobject == NULL) {
+
+    /* call the create_gnl_object virtual method */
+    gnlobject = class->create_gnl_object (object);
+
+    if (G_UNLIKELY (gnlobject == NULL)) {
+      GST_ERROR
+          ("'create_gnl_object' implementation returned TRUE but no GnlObject is available");
+      goto done;
+    }
+
+    GST_DEBUG_OBJECT (object, "Got a valid GnlObject, now filling it in");
+
+    object->priv->gnlobject = gst_object_ref (gnlobject);
+
+    if (object->priv->timelineobj)
+      res = ges_clip_fill_track_element (object->priv->timelineobj,
+          object, object->priv->gnlobject);
+    else
+      res = TRUE;
+
+    if (res) {
+      /* Connect to property notifications */
+      /* FIXME : remember the signalids so we can remove them later on !!! */
+      g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::start",
+          G_CALLBACK (gnlobject_start_cb), object);
+      g_signal_connect (G_OBJECT (object->priv->gnlobject),
+          "notify::media-start", G_CALLBACK (gnlobject_media_start_cb), object);
+      g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::duration",
+          G_CALLBACK (gnlobject_duration_cb), object);
+      g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::priority",
+          G_CALLBACK (gnlobject_priority_cb), object);
+      g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::active",
+          G_CALLBACK (gnlobject_active_cb), object);
+
+      /* Set some properties on the GnlObject */
+      g_object_set (object->priv->gnlobject,
+          "duration", object->priv->pending_duration,
+          "media-duration", object->priv->pending_duration,
+          "start", object->priv->pending_start,
+          "media-start", object->priv->pending_inpoint,
+          "priority", object->priv->pending_priority,
+          "active", object->priv->pending_active, NULL);
+
+      if (object->priv->track != NULL)
+        g_object_set (object->priv->gnlobject,
+            "caps", ges_track_get_caps (object->priv->track), NULL);
+
+      /*  We feed up the props_hashtable if possible */
+      if (class->get_props_hastable) {
+        props_hash = class->get_props_hastable (object);
+
+        if (props_hash == NULL) {
+          GST_DEBUG ("'get_props_hastable' implementation returned TRUE but no"
+              "properties_hashtable is available");
+        } else {
+          object->priv->properties_hashtable = props_hash;
+          connect_properties_signals (object);
+        }
+      }
+    }
+  }
+
+done:
+  object->priv->valid = res;
+
+  GST_DEBUG ("Returning res:%d", res);
+
+  return res;
+}
+
+/* INTERNAL USAGE */
+gboolean
+ges_track_element_set_track (GESTrackElement * object, GESTrack * track)
+{
+  gboolean ret = TRUE;
+  GST_DEBUG ("object:%p, track:%p", object, track);
+
+  object->priv->track = track;
+
+  if (object->priv->track) {
+    /* If we already have a gnlobject, we just set its caps properly */
+    if (object->priv->gnlobject) {
+      g_object_set (object->priv->gnlobject,
+          "caps", ges_track_get_caps (object->priv->track), NULL);
+    } else {
+      ret = ensure_gnl_object (object);
+    }
+  }
+
+  g_object_notify_by_pspec (G_OBJECT (object), properties[PROP_TRACK]);
+  return ret;
+}
+
+/**
+ * ges_track_element_get_track:
+ * @object: a #GESTrackElement
+ *
+ * Get the #GESTrack to which this object belongs.
+ *
+ * Returns: (transfer none): The #GESTrack to which this object belongs. Can be %NULL if it
+ * is not in any track
+ */
+GESTrack *
+ges_track_element_get_track (GESTrackElement * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), NULL);
+
+  return object->priv->track;
+}
+
+/**
+ * ges_track_element_set_clip:
+ * @object: The #GESTrackElement to set the parent to
+ * @clipect: The #GESClip, parent of @clip or %NULL
+ *
+ * Set the #GESClip to which @object belongs.
+ */
+void
+ges_track_element_set_clip (GESTrackElement * object, GESClip * clipect)
+{
+  GST_DEBUG ("object:%p, clip:%p", object, clipect);
+
+  object->priv->timelineobj = clipect;
+}
+
+/**
+ * ges_track_element_get_clip:
+ * @object: a #GESTrackElement
+ *
+ * Get the #GESClip which is controlling this track object
+ *
+ * Returns: (transfer none): the #GESClip which is controlling
+ * this track object
+ */
+GESClip *
+ges_track_element_get_clip (GESTrackElement * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), NULL);
+
+  return object->priv->timelineobj;
+}
+
+/**
+ * ges_track_element_get_gnlobject:
+ * @object: a #GESTrackElement
+ *
+ * Get the GNonLin object this object is controlling.
+ *
+ * Returns: (transfer none): the GNonLin object this object is controlling.
+ */
+GstElement *
+ges_track_element_get_gnlobject (GESTrackElement * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), NULL);
+
+  return object->priv->gnlobject;
+}
+
+/**
+ * ges_track_element_get_element:
+ * @object: a #GESTrackElement
+ *
+ * Get the #GstElement this track object is controlling within GNonLin.
+ *
+ * Returns: (transfer none): the #GstElement this track object is controlling
+ * within GNonLin.
+ */
+GstElement *
+ges_track_element_get_element (GESTrackElement * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), NULL);
+
+  return object->priv->element;
+}
+
+static inline void
+ges_track_element_set_locked_internal (GESTrackElement * object,
+    gboolean locked)
+{
+  object->priv->locked = locked;
+}
+
+/**
+ * ges_track_element_set_locked:
+ * @object: a #GESTrackElement
+ * @locked: whether the object is lock to its parent
+ *
+ * Set the locking status of the @object in relationship to its controlling
+ * #GESClip. If @locked is %TRUE, then this object will move synchronously
+ * with its controlling #GESClip.
+ */
+void
+ges_track_element_set_locked (GESTrackElement * object, gboolean locked)
+{
+  g_return_if_fail (GES_IS_TRACK_ELEMENT (object));
+
+  GST_DEBUG_OBJECT (object, "%s object", locked ? "Locking" : "Unlocking");
+
+  ges_track_element_set_locked_internal (object, locked);
+  g_object_notify_by_pspec (G_OBJECT (object), properties[PROP_LOCKED]);
+
+}
+
+/**
+ * ges_track_element_is_locked:
+ * @object: a #GESTrackElement
+ *
+ * Let you know if object us locked or not (moving synchronously).
+ *
+ * Returns: %TRUE if the object is moving synchronously to its controlling
+ * #GESClip, else %FALSE.
+ */
+gboolean
+ges_track_element_is_locked (GESTrackElement * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
+
+  return object->priv->locked;
+}
+
+
+/**
+ * ges_track_element_is_active:
+ * @object: a #GESTrackElement
+ *
+ * Lets you know if @object will be used for playback and rendering,
+ * or not.
+ *
+ * Returns: %TRUE if @object is active, %FALSE otherwize
+ *
+ * Since: 0.10.2
+ */
+gboolean
+ges_track_element_is_active (GESTrackElement * object)
+{
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
+
+  if (G_UNLIKELY (object->priv->gnlobject == NULL))
+    return object->priv->pending_active;
+  else
+    return object->active;
+}
+
+/**
+ * ges_track_element_lookup_child:
+ * @object: object to lookup the property in
+ * @prop_name: name of the property to look up. You can specify the name of the
+ *     class as such: "ClassName::property-name", to guarantee that you get the
+ *     proper GParamSpec in case various GstElement-s contain the same property
+ *     name. If you don't do so, you will get the first element found, having
+ *     this property and the and the corresponding GParamSpec.
+ * @element: (out) (allow-none) (transfer full): pointer to a #GstElement that
+ *     takes the real object to set property on
+ * @pspec: (out) (allow-none) (transfer full): pointer to take the #GParamSpec
+ *     describing the property
+ *
+ * Looks up which @element and @pspec would be effected by the given @name. If various
+ * contained elements have this property name you will get the first one, unless you
+ * specify the class name in @name.
+ *
+ * Returns: TRUE if @element and @pspec could be found. FALSE otherwise. In that
+ * case the values for @pspec and @element are not modified. Unref @element after
+ * usage.
+ *
+ * Since: 0.10.2
+ */
+gboolean
+ges_track_element_lookup_child (GESTrackElement * object,
+    const gchar * prop_name, GstElement ** element, GParamSpec ** pspec)
+{
+  GHashTableIter iter;
+  gpointer key, value;
+  gchar **names, *name, *classename;
+  gboolean res;
+  GESTrackElementPrivate *priv;
+
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
+
+  priv = object->priv;
+
+  if (!priv->properties_hashtable)
+    goto prop_hash_not_set;
+
+  classename = NULL;
+  res = FALSE;
+
+  names = g_strsplit (prop_name, "::", 2);
+  if (names[1] != NULL) {
+    classename = names[0];
+    name = names[1];
+  } else
+    name = names[0];
+
+  g_hash_table_iter_init (&iter, priv->properties_hashtable);
+  while (g_hash_table_iter_next (&iter, &key, &value)) {
+    if (g_strcmp0 (G_PARAM_SPEC (key)->name, name) == 0) {
+      if (classename == NULL ||
+          g_strcmp0 (G_OBJECT_TYPE_NAME (G_OBJECT (value)), classename) == 0) {
+        GST_DEBUG ("The %s property from %s has been found", name, classename);
+        if (element)
+          *element = g_object_ref (value);
+
+        *pspec = g_param_spec_ref (key);
+        res = TRUE;
+        break;
+      }
+    }
+  }
+  g_strfreev (names);
+
+  return res;
+
+prop_hash_not_set:
+  {
+    GST_WARNING_OBJECT (object, "The child properties haven't been set yet");
+    return FALSE;
+  }
+}
+
+/**
+ * ges_track_element_set_child_property_by_pspec:
+ * @object: a #GESTrackElement
+ * @pspec: The #GParamSpec that specifies the property you want to set
+ * @value: the value
+ *
+ * Sets a property of a child of @object.
+ *
+ * Since: 0.10.2
+ */
+void
+ges_track_element_set_child_property_by_pspec (GESTrackElement * object,
+    GParamSpec * pspec, GValue * value)
+{
+  GstElement *element;
+  GESTrackElementPrivate *priv;
+
+  g_return_if_fail (GES_IS_TRACK_ELEMENT (object));
+
+  priv = object->priv;
+
+  if (!priv->properties_hashtable)
+    goto prop_hash_not_set;
+
+  element = g_hash_table_lookup (priv->properties_hashtable, pspec);
+  if (!element)
+    goto not_found;
+
+  g_object_set_property (G_OBJECT (element), pspec->name, value);
+
+  return;
+
+not_found:
+  {
+    GST_ERROR ("The %s property doesn't exist", pspec->name);
+    return;
+  }
+prop_hash_not_set:
+  {
+    GST_DEBUG ("The child properties haven't been set on %p", object);
+    return;
+  }
+}
+
+/**
+ * ges_track_element_set_child_property_valist:
+ * @object: The #GESTrackElement parent object
+ * @first_property_name: The name of the first property to set
+ * @var_args: value for the first property, followed optionally by more
+ * name/return location pairs, followed by NULL
+ *
+ * Sets a property of a child of @object. If there are various child elements
+ * that have the same property name, you can distinguish them using the following
+ * syntax: 'ClasseName::property_name' as property name. If you don't, the
+ * corresponding property of the first element found will be set.
+ *
+ * Since: 0.10.2
+ */
+void
+ges_track_element_set_child_property_valist (GESTrackElement * object,
+    const gchar * first_property_name, va_list var_args)
+{
+  const gchar *name;
+  GParamSpec *pspec;
+  GstElement *element;
+
+  gchar *error = NULL;
+  GValue value = { 0, };
+
+  g_return_if_fail (GES_IS_TRACK_ELEMENT (object));
+
+  name = first_property_name;
+
+  /* Note: This part is in big part copied from the gst_child_object_set_valist
+   * method. */
+
+  /* iterate over pairs */
+  while (name) {
+    if (!ges_track_element_lookup_child (object, name, &element, &pspec))
+      goto not_found;
+
+#if GLIB_CHECK_VERSION(2,23,3)
+    G_VALUE_COLLECT_INIT (&value, pspec->value_type, var_args,
+        G_VALUE_NOCOPY_CONTENTS, &error);
+#else
+    g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
+    G_VALUE_COLLECT (&value, var_args, G_VALUE_NOCOPY_CONTENTS, &error);
+#endif
+
+    if (error)
+      goto cant_copy;
+
+    g_object_set_property (G_OBJECT (element), pspec->name, &value);
+
+    g_object_unref (element);
+    g_value_unset (&value);
+
+    name = va_arg (var_args, gchar *);
+  }
+  return;
+
+not_found:
+  {
+    GST_WARNING ("No property %s in OBJECT\n", name);
+    return;
+  }
+cant_copy:
+  {
+    GST_WARNING ("error copying value %s in object %p: %s", pspec->name, object,
+        error);
+    g_value_unset (&value);
+    return;
+  }
+}
+
+/**
+ * ges_track_element_set_child_properties:
+ * @object: The #GESTrackElement parent object
+ * @first_property_name: The name of the first property to set
+ * @...: value for the first property, followed optionally by more
+ * name/return location pairs, followed by NULL
+ *
+ * Sets a property of a child of @object. If there are various child elements
+ * that have the same property name, you can distinguish them using the following
+ * syntax: 'ClasseName::property_name' as property name. If you don't, the
+ * corresponding property of the first element found will be set.
+ *
+ * Since: 0.10.2
+ */
+void
+ges_track_element_set_child_properties (GESTrackElement * object,
+    const gchar * first_property_name, ...)
+{
+  va_list var_args;
+
+  g_return_if_fail (GES_IS_TRACK_ELEMENT (object));
+
+  va_start (var_args, first_property_name);
+  ges_track_element_set_child_property_valist (object, first_property_name,
+      var_args);
+  va_end (var_args);
+}
+
+/**
+ * ges_track_element_get_child_property_valist:
+ * @object: The #GESTrackElement parent object
+ * @first_property_name: The name of the first property to get
+ * @var_args: value for the first property, followed optionally by more
+ * name/return location pairs, followed by NULL
+ *
+ * Gets a property of a child of @object. If there are various child elements
+ * that have the same property name, you can distinguish them using the following
+ * syntax: 'ClasseName::property_name' as property name. If you don't, the
+ * corresponding property of the first element found will be set.
+ *
+ * Since: 0.10.2
+ */
+void
+ges_track_element_get_child_property_valist (GESTrackElement * object,
+    const gchar * first_property_name, va_list var_args)
+{
+  const gchar *name;
+  gchar *error = NULL;
+  GValue value = { 0, };
+  GParamSpec *pspec;
+  GstElement *element;
+
+  g_return_if_fail (G_IS_OBJECT (object));
+
+  name = first_property_name;
+
+  /* This part is in big part copied from the gst_child_object_get_valist method */
+  while (name) {
+    if (!ges_track_element_lookup_child (object, name, &element, &pspec))
+      goto not_found;
+
+    g_value_init (&value, pspec->value_type);
+    g_object_get_property (G_OBJECT (element), pspec->name, &value);
+    g_object_unref (element);
+
+    G_VALUE_LCOPY (&value, var_args, 0, &error);
+    if (error)
+      goto cant_copy;
+    g_value_unset (&value);
+    name = va_arg (var_args, gchar *);
+  }
+  return;
+
+not_found:
+  {
+    GST_WARNING ("no property %s in object", name);
+    return;
+  }
+cant_copy:
+  {
+    GST_WARNING ("error copying value %s in object %p: %s", pspec->name, object,
+        error);
+    g_value_unset (&value);
+    return;
+  }
+}
+
+/**
+ * ges_track_element_list_children_properties:
+ * @object: The #GESTrackElement to get the list of children properties from
+ * @n_properties: (out): return location for the length of the returned array
+ *
+ * Gets an array of #GParamSpec* for all configurable properties of the
+ * children of @object.
+ *
+ * Returns: (transfer full) (array length=n_properties): an array of #GParamSpec* which should be freed after use or
+ * %NULL if something went wrong
+ *
+ * Since: 0.10.2
+ */
+GParamSpec **
+ges_track_element_list_children_properties (GESTrackElement * object,
+    guint * n_properties)
+{
+  GESTrackElementClass *class;
+
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), NULL);
+
+  class = GES_TRACK_ELEMENT_GET_CLASS (object);
+
+  return class->list_children_properties (object, n_properties);
+}
+
+/**
+ * ges_track_element_get_child_properties:
+ * @object: The origin #GESTrackElement
+ * @first_property_name: The name of the first property to get
+ * @...: return location for the first property, followed optionally by more
+ * name/return location pairs, followed by NULL
+ *
+ * Gets properties of a child of @object.
+ *
+ * Since: 0.10.2
+ */
+void
+ges_track_element_get_child_properties (GESTrackElement * object,
+    const gchar * first_property_name, ...)
+{
+  va_list var_args;
+
+  g_return_if_fail (GES_IS_TRACK_ELEMENT (object));
+
+  va_start (var_args, first_property_name);
+  ges_track_element_get_child_property_valist (object, first_property_name,
+      var_args);
+  va_end (var_args);
+}
+
+/**
+ * ges_track_element_get_child_property_by_pspec:
+ * @object: a #GESTrackElement
+ * @pspec: The #GParamSpec that specifies the property you want to get
+ * @value: (out): return location for the value
+ *
+ * Gets a property of a child of @object.
+ *
+ * Since: 0.10.2
+ */
+void
+ges_track_element_get_child_property_by_pspec (GESTrackElement * object,
+    GParamSpec * pspec, GValue * value)
+{
+  GstElement *element;
+  GESTrackElementPrivate *priv;
+
+  g_return_if_fail (GES_IS_TRACK_ELEMENT (object));
+
+  priv = object->priv;
+
+  if (!priv->properties_hashtable)
+    goto prop_hash_not_set;
+
+  element = g_hash_table_lookup (priv->properties_hashtable, pspec);
+  if (!element)
+    goto not_found;
+
+  g_object_get_property (G_OBJECT (element), pspec->name, value);
+
+  return;
+
+not_found:
+  {
+    GST_ERROR ("The %s property doesn't exist", pspec->name);
+    return;
+  }
+prop_hash_not_set:
+  {
+    GST_ERROR ("The child properties haven't been set on %p", object);
+    return;
+  }
+}
+
+/**
+ * ges_track_element_set_child_property:
+ * @object: The origin #GESTrackElement
+ * @property_name: The name of the property
+ * @value: the value
+ *
+ * Sets a property of a GstElement contained in @object.
+ *
+ * Note that #ges_track_element_set_child_property is really
+ * intended for language bindings, #ges_track_element_set_child_properties
+ * is much more convenient for C programming.
+ *
+ * Returns: %TRUE if the property was set, %FALSE otherwize
+ */
+gboolean
+ges_track_element_set_child_property (GESTrackElement * object,
+    const gchar * property_name, GValue * value)
+{
+  GParamSpec *pspec;
+  GstElement *element;
+
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
+
+  if (!ges_track_element_lookup_child (object, property_name, &element, &pspec))
+    goto not_found;
+
+  g_object_set_property (G_OBJECT (element), pspec->name, value);
+
+  g_object_unref (element);
+  g_param_spec_unref (pspec);
+
+  return TRUE;
+
+not_found:
+  {
+    GST_WARNING_OBJECT (object, "The %s property doesn't exist", property_name);
+
+    return FALSE;
+  }
+}
+
+/**
+* ges_track_element_get_child_property:
+* @object: The origin #GESTrackElement
+* @property_name: The name of the property
+* @value: (out): return location for the property value, it will
+* be initialized if it is initialized with 0
+*
+* In general, a copy is made of the property contents and
+* the caller is responsible for freeing the memory by calling
+* g_value_unset().
+*
+* Gets a property of a GstElement contained in @object.
+*
+* Note that #ges_track_element_get_child_property is really
+* intended for language bindings, #ges_track_element_get_child_properties
+* is much more convenient for C programming.
+*
+* Returns: %TRUE if the property was found, %FALSE otherwize
+*/
+gboolean
+ges_track_element_get_child_property (GESTrackElement * object,
+    const gchar * property_name, GValue * value)
+{
+  GParamSpec *pspec;
+  GstElement *element;
+
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
+
+  if (!ges_track_element_lookup_child (object, property_name, &element, &pspec))
+    goto not_found;
+
+  if (G_VALUE_TYPE (value) == G_TYPE_INVALID)
+    g_value_init (value, pspec->value_type);
+
+  g_object_get_property (G_OBJECT (element), pspec->name, value);
+
+  g_object_unref (element);
+  g_param_spec_unref (pspec);
+
+  return TRUE;
+
+not_found:
+  {
+    GST_WARNING_OBJECT (object, "The %s property doesn't exist", property_name);
+
+    return FALSE;
+  }
+}
+
+static GParamSpec **
+default_list_children_properties (GESTrackElement * object,
+    guint * n_properties)
+{
+  GParamSpec **pspec, *spec;
+  GHashTableIter iter;
+  gpointer key, value;
+
+  guint i = 0;
+
+  if (!object->priv->properties_hashtable)
+    goto prop_hash_not_set;
+
+  *n_properties = g_hash_table_size (object->priv->properties_hashtable);
+  pspec = g_new (GParamSpec *, *n_properties);
+
+  g_hash_table_iter_init (&iter, object->priv->properties_hashtable);
+  while (g_hash_table_iter_next (&iter, &key, &value)) {
+    spec = G_PARAM_SPEC (key);
+    pspec[i] = g_param_spec_ref (spec);
+    i++;
+  }
+
+  return pspec;
+
+prop_hash_not_set:
+  {
+    *n_properties = 0;
+    GST_DEBUG_OBJECT (object, "No child properties have been set yet");
+    return NULL;
+  }
+}
+
+void
+_deep_copy (GESTimelineElement * element, GESTimelineElement * elementcopy)
+{
+  GParamSpec **specs;
+  guint n, n_specs;
+  GValue val = { 0 };
+  GESTrackElement *copy = GES_TRACK_ELEMENT (elementcopy);
+
+  ensure_gnl_object (copy);
+  specs =
+      ges_track_element_list_children_properties (GES_TRACK_ELEMENT (element),
+      &n_specs);
+  for (n = 0; n < n_specs; ++n) {
+    g_value_init (&val, specs[n]->value_type);
+    g_object_get_property (G_OBJECT (element), specs[n]->name, &val);
+    ges_track_element_set_child_property_by_pspec (copy, specs[n], &val);
+    g_value_unset (&val);
+  }
+
+  g_free (specs);
+}
+
+/**
+ * ges_track_element_edit:
+ * @object: the #GESTrackElement to edit
+ * @layers: (element-type GESTimelineLayer): The layers you want the edit to
+ *  happen in, %NULL means that the edition is done in all the
+ *  #GESTimelineLayers contained in the current timeline.
+ *      FIXME: This is not implemented yet.
+ * @mode: The #GESEditMode in which the editition will happen.
+ * @edge: The #GESEdge the edit should happen on.
+ * @position: The position at which to edit @object (in nanosecond)
+ *
+ * Edit @object in the different exisiting #GESEditMode modes. In the case of
+ * slide, and roll, you need to specify a #GESEdge
+ *
+ * Returns: %TRUE if the object as been edited properly, %FALSE if an error
+ * occured
+ *
+ * Since: 0.10.XX
+ */
+gboolean
+ges_track_element_edit (GESTrackElement * object,
+    GList * layers, GESEditMode mode, GESEdge edge, guint64 position)
+{
+  GESTrack *track = ges_track_element_get_track (object);
+  GESTimeline *timeline;
+
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
+
+  if (G_UNLIKELY (!track)) {
+    GST_WARNING_OBJECT (object, "Trying to edit in %d mode but not in"
+        "any Track yet.", mode);
+    return FALSE;
+  }
+
+  timeline = GES_TIMELINE (ges_track_get_timeline (track));
+
+  if (G_UNLIKELY (!timeline)) {
+    GST_WARNING_OBJECT (object, "Trying to edit in %d mode but not in"
+        "track %p no in any timeline yet.", mode, track);
+    return FALSE;
+  }
+
+  switch (mode) {
+    case GES_EDIT_MODE_NORMAL:
+      timeline_move_object (timeline, object, layers, edge, position);
+      break;
+    case GES_EDIT_MODE_TRIM:
+      timeline_trim_object (timeline, object, layers, edge, position);
+      break;
+    case GES_EDIT_MODE_RIPPLE:
+      timeline_ripple_object (timeline, object, layers, edge, position);
+      break;
+    case GES_EDIT_MODE_ROLL:
+      timeline_roll_object (timeline, object, layers, edge, position);
+      break;
+    case GES_EDIT_MODE_SLIDE:
+      timeline_slide_object (timeline, object, layers, edge, position);
+      break;
+    default:
+      GST_ERROR ("Unkown edit mode: %d", mode);
+      return FALSE;
+  }
+
+  return TRUE;
+}
diff --git a/ges/ges-track-element.h b/ges/ges-track-element.h
new file mode 100644 (file)
index 0000000..ffcc059
--- /dev/null
@@ -0,0 +1,195 @@
+/* GStreamer Editing Services
+ * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
+ *               2009 Nokia Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef _GES_TRACK_ELEMENT
+#define _GES_TRACK_ELEMENT
+
+#include <glib-object.h>
+#include <gst/gst.h>
+#include <ges/ges-types.h>
+#include <ges/ges-clip.h>
+#include <ges/ges-track.h>
+
+G_BEGIN_DECLS
+
+#define GES_TYPE_TRACK_ELEMENT ges_track_element_get_type()
+
+#define GES_TRACK_ELEMENT(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_ELEMENT, GESTrackElement))
+
+#define GES_TRACK_ELEMENT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_ELEMENT, GESTrackElementClass))
+
+#define GES_IS_TRACK_ELEMENT(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_ELEMENT))
+
+#define GES_IS_TRACK_ELEMENT_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_ELEMENT))
+
+#define GES_TRACK_ELEMENT_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_ELEMENT, GESTrackElementClass))
+
+typedef struct _GESTrackElementPrivate GESTrackElementPrivate;
+
+/**
+ * GESTrackElement:
+ *
+ * The GESTrackElement base class.
+ */
+struct _GESTrackElement {
+  GESTimelineElement parent;
+
+  /*< private >*/
+  gboolean active;
+
+  GESTrackElementPrivate *priv;
+
+  GESAsset *asset;
+
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING_LARGE];
+};
+
+/**
+ * GESTrackElementClass:
+ * @gnlobject_factorytype: name of the GNonLin GStElementFactory type to use.
+ * @create_gnl_object: method to create the GNonLin container object.
+ * @create_element: method to return the GstElement to put in the gnlobject.
+ * @duration_changed: duration property glnobject has changed
+ * @active_changed: active property of gnlobject has changed
+ * @get_props_hastable: method to list children properties that user could like
+ *                      to configure. Since: 0.10.2
+ * @list_children_properties: method to get children properties that user could
+ *                            like to configure.
+ *                            The default implementation will create an object
+ *                            of type @gnlobject_factorytype and call
+ *                            @create_element. Since: 0.10.2
+ *
+ * Subclasses can override the @create_gnl_object method to override what type
+ * of GNonLin object will be created.
+ */
+struct _GESTrackElementClass {
+  /*< private >*/
+  GESTimelineElementClass parent_class;
+
+  /*< public >*/
+  /* virtual methods for subclasses */
+  const gchar  *gnlobject_factorytype;
+  GstElement*  (*create_gnl_object)        (GESTrackElement * object);
+  GstElement*  (*create_element)           (GESTrackElement * object);
+
+  void (*duration_changed)     (GESTrackElement *object, guint64 duration);
+  void (*active_changed)       (GESTrackElement *object, gboolean active);
+
+  /*< private >*/
+  /* signals (currently unused) */
+  void  (*changed)  (GESTrackElement * object);
+
+  /*< public >*/
+  /* virtual methods for subclasses */
+  GHashTable*  (*get_props_hastable)       (GESTrackElement * object);
+  GParamSpec** (*list_children_properties) (GESTrackElement * object,
+              guint *n_properties);
+  /*< private >*/
+  /* Padding for API extension */
+  gpointer _ges_reserved[GES_PADDING_LARGE];
+};
+
+GType ges_track_element_get_type               (void);
+
+gboolean ges_track_element_set_track           (GESTrackElement * object,
+              GESTrack * track);
+GESTrack* ges_track_element_get_track          (GESTrackElement * object);
+
+GESTrackType ges_track_element_get_track_type  (GESTrackElement * object);
+void ges_track_element_set_track_type          (GESTrackElement * object,
+                                               GESTrackType     type);
+
+void ges_track_element_set_clip     (GESTrackElement * object,
+                                               GESClip * clipect);
+GESClip *
+ges_track_element_get_clip          (GESTrackElement* object);
+
+GstElement * ges_track_element_get_gnlobject   (GESTrackElement * object);
+
+GstElement * ges_track_element_get_element     (GESTrackElement * object);
+
+void ges_track_element_set_locked              (GESTrackElement * object,
+                                               gboolean locked);
+
+gboolean ges_track_element_is_locked           (GESTrackElement * object);
+
+gboolean ges_track_element_set_active          (GESTrackElement * object,
+                                               gboolean active);
+
+gboolean ges_track_element_is_active           (GESTrackElement * object);
+
+GParamSpec **
+ges_track_element_list_children_properties     (GESTrackElement *object,
+                                               guint *n_properties);
+
+gboolean ges_track_element_lookup_child        (GESTrackElement *object,
+                                               const gchar *prop_name,
+                                               GstElement **element,
+                                               GParamSpec **pspec);
+
+void
+ges_track_element_get_child_property_by_pspec (GESTrackElement * object,
+                                              GParamSpec * pspec,
+                                              GValue * value);
+
+void
+ges_track_element_get_child_property_valist   (GESTrackElement * object,
+                                              const gchar * first_property_name,
+                                              va_list var_args);
+
+void ges_track_element_get_child_properties   (GESTrackElement *object,
+                                              const gchar * first_property_name,
+                                              ...) G_GNUC_NULL_TERMINATED;
+
+void
+ges_track_element_set_child_property_valist   (GESTrackElement * object,
+                                              const gchar * first_property_name,
+                                              va_list var_args);
+
+void
+ges_track_element_set_child_property_by_pspec (GESTrackElement * object,
+                                              GParamSpec * pspec,
+                                              GValue * value);
+
+void ges_track_element_set_child_properties   (GESTrackElement * object,
+                                              const gchar * first_property_name,
+                                              ...) G_GNUC_NULL_TERMINATED;
+
+gboolean ges_track_element_set_child_property (GESTrackElement *object,
+                                              const gchar *property_name,
+                                              GValue * value);
+
+gboolean ges_track_element_get_child_property (GESTrackElement *object,
+                                              const gchar *property_name,
+                                              GValue * value);
+
+gboolean
+ges_track_element_edit                        (GESTrackElement * object,
+                                              GList *layers, GESEditMode mode,
+                                              GESEdge edge, guint64 position);
+
+G_END_DECLS
+#endif /* _GES_TRACK_ELEMENT */
index 3ceb081f59aa75fde27fdeadf023fefaa8f6c852..e3c09375c0f265364be0a473ac506670d0881900 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-filesource.h"
 #include "ges-uri-asset.h"
 #include "ges-extractable.h"
@@ -41,13 +41,14 @@ ges_extractable_check_id (GType type, const gchar * id, GError ** error)
 static void
 extractable_set_asset (GESExtractable * self, GESAsset * asset)
 {
-  /* FIXME That should go into #GESTrackObject, but
+  /* FIXME That should go into #GESTrackElement, but
    * some work is needed to make sure it works properly */
 
-  if (ges_track_object_get_track_type (GES_TRACK_OBJECT (self)) ==
+  if (ges_track_element_get_track_type (GES_TRACK_ELEMENT (self)) ==
       GES_TRACK_TYPE_UNKNOWN) {
-    ges_track_object_set_track_type (GES_TRACK_OBJECT (self),
-        ges_asset_track_object_get_track_type (GES_ASSET_TRACK_OBJECT (asset)));
+    ges_track_element_set_track_type (GES_TRACK_ELEMENT (self),
+        ges_asset_track_element_get_track_type (GES_ASSET_TRACK_ELEMENT
+            (asset)));
   }
 }
 
@@ -117,7 +118,7 @@ ges_track_filesource_dispose (GObject * object)
 }
 
 static GstElement *
-ges_track_filesource_create_gnl_object (GESTrackObject * object)
+ges_track_filesource_create_gnl_object (GESTrackElement * object)
 {
   GstElement *gnlobject;
 
@@ -131,7 +132,7 @@ static void
 ges_track_filesource_class_init (GESTrackFileSourceClass * klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GESTrackObjectClass *track_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *track_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackFileSourcePrivate));
 
index 54a5d85ba4654c00082519b174052ea7973ecc63..e6f9eca71670ffc2aa717ed16491039e07dcedfb 100644 (file)
@@ -29,7 +29,7 @@
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-image-source.h"
 
 G_DEFINE_TYPE (GESTrackImageSource, ges_track_image_source,
@@ -111,7 +111,7 @@ pad_added_cb (GstElement * timeline, GstPad * pad, GstElement * scale)
 }
 
 static GstElement *
-ges_track_image_source_create_element (GESTrackObject * object)
+ges_track_image_source_create_element (GESTrackElement * object)
 {
   GstElement *bin, *source, *scale, *freeze, *iconv;
   GstPad *src, *target;
@@ -151,7 +151,7 @@ static void
 ges_track_image_source_class_init (GESTrackImageSourceClass * klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GESTrackObjectClass *gesobj_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *gesobj_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackImageSourcePrivate));
 
diff --git a/ges/ges-track-object.c b/ges/ges-track-object.c
deleted file mode 100644 (file)
index 1d5770b..0000000
+++ /dev/null
@@ -1,1489 +0,0 @@
-/* GStreamer Editing Services
- * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
- *               2009 Nokia Corporation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-/**
- * SECTION:ges-track-object
- * @short_description: Base Class for objects contained in a GESTrack
- *
- * #GESTrackObject is the Base Class for any object that can be contained in a
- * #GESTrack.
- *
- * It contains the basic information as to the location of the object within
- * its container, like the start position, the inpoint, the duration and the
- * priority.
- */
-
-#include "ges-internal.h"
-#include "ges-extractable.h"
-#include "ges-track-object.h"
-#include "ges-clip.h"
-#include "ges-meta-container.h"
-#include <gobject/gvaluecollector.h>
-
-G_DEFINE_ABSTRACT_TYPE (GESTrackObject, ges_track_object,
-    GES_TYPE_TIMELINE_ELEMENT);
-
-struct _GESTrackObjectPrivate
-{
-  GESTrackType track_type;
-
-  /* These fields are only used before the gnlobject is available */
-  guint64 pending_start;
-  guint64 pending_inpoint;
-  guint64 pending_duration;
-  guint32 pending_priority;
-  gboolean pending_active;
-
-  GstElement *gnlobject;        /* The GnlObject */
-  GstElement *element;          /* The element contained in the gnlobject (can be NULL) */
-
-  /* We keep a link between properties name and elements internally
-   * The hashtable should look like
-   * {GParamaSpec ---> element,}*/
-  GHashTable *properties_hashtable;
-
-  GESClip *timelineobj;
-  GESTrack *track;
-
-  gboolean valid;
-
-  gboolean locked;              /* If TRUE, then moves in sync with its controlling
-                                 * GESClip */
-};
-
-enum
-{
-  PROP_0,
-  PROP_ACTIVE,
-  PROP_LOCKED,
-  PROP_TRACK_TYPE,
-  PROP_TRACK,
-  PROP_LAST
-};
-
-static GParamSpec *properties[PROP_LAST];
-
-enum
-{
-  DEEP_NOTIFY,
-  LAST_SIGNAL
-};
-
-static guint ges_track_object_signals[LAST_SIGNAL] = { 0 };
-
-static GstElement *ges_track_object_create_gnl_object_func (GESTrackObject *
-    object);
-
-static void gnlobject_start_cb (GstElement * gnlobject, GParamSpec * arg
-    G_GNUC_UNUSED, GESTrackObject * obj);
-
-static void gnlobject_media_start_cb (GstElement * gnlobject, GParamSpec * arg
-    G_GNUC_UNUSED, GESTrackObject * obj);
-
-static void gnlobject_priority_cb (GstElement * gnlobject, GParamSpec * arg
-    G_GNUC_UNUSED, GESTrackObject * obj);
-
-static void gnlobject_duration_cb (GstElement * gnlobject, GParamSpec * arg
-    G_GNUC_UNUSED, GESTrackObject * obj);
-
-static void gnlobject_active_cb (GstElement * gnlobject, GParamSpec * arg
-    G_GNUC_UNUSED, GESTrackObject * obj);
-
-static void connect_properties_signals (GESTrackObject * object);
-static void connect_signal (gpointer key, gpointer value, gpointer user_data);
-static void gst_element_prop_changed_cb (GstElement * element, GParamSpec * arg
-    G_GNUC_UNUSED, GESTrackObject * obj);
-
-static gboolean _set_start (GESTimelineElement * element, GstClockTime start);
-static gboolean _set_inpoint (GESTimelineElement * element,
-    GstClockTime inpoint);
-static gboolean _set_duration (GESTimelineElement * element,
-    GstClockTime duration);
-static gboolean _set_priority (GESTimelineElement * element, guint32 priority);
-static void _deep_copy (GESTimelineElement * element,
-    GESTimelineElement * copy);
-
-static inline void
-ges_track_object_set_locked_internal (GESTrackObject * object, gboolean locked);
-
-static GParamSpec **default_list_children_properties (GESTrackObject * object,
-    guint * n_properties);
-
-static void
-ges_track_object_get_property (GObject * object, guint property_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GESTrackObject *tobj = GES_TRACK_OBJECT (object);
-
-  switch (property_id) {
-    case PROP_ACTIVE:
-      g_value_set_boolean (value, ges_track_object_is_active (tobj));
-      break;
-    case PROP_LOCKED:
-      g_value_set_boolean (value, ges_track_object_is_locked (tobj));
-      break;
-    case PROP_TRACK_TYPE:
-      g_value_set_flags (value, tobj->priv->track_type);
-      break;
-    case PROP_TRACK:
-      g_value_set_object (value, tobj->priv->track);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-  }
-}
-
-static void
-ges_track_object_set_property (GObject * object, guint property_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GESTrackObject *tobj = GES_TRACK_OBJECT (object);
-
-  switch (property_id) {
-    case PROP_ACTIVE:
-      ges_track_object_set_active (tobj, g_value_get_boolean (value));
-      break;
-    case PROP_LOCKED:
-      ges_track_object_set_locked_internal (tobj, g_value_get_boolean (value));
-      break;
-    case PROP_TRACK_TYPE:
-      tobj->priv->track_type = g_value_get_flags (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-  }
-}
-
-static void
-ges_track_object_dispose (GObject * object)
-{
-  GESTrackObjectPrivate *priv = GES_TRACK_OBJECT (object)->priv;
-
-  if (priv->properties_hashtable)
-    g_hash_table_destroy (priv->properties_hashtable);
-
-  if (priv->gnlobject) {
-    GstState cstate;
-
-    if (priv->track != NULL) {
-      GST_ERROR_OBJECT (object, "Still in %p, this means that you forgot"
-          " to remove it from the GESTrack it is contained in. You always need"
-          " to remove a GESTrackObject from its track before dropping the last"
-          " reference\n"
-          "This problem may also be caused by a refcounting bug in"
-          " the application or GES itself.", priv->track);
-      gst_element_get_state (priv->gnlobject, &cstate, NULL, 0);
-      if (cstate != GST_STATE_NULL)
-        gst_element_set_state (priv->gnlobject, GST_STATE_NULL);
-    }
-
-    gst_object_unref (priv->gnlobject);
-    priv->gnlobject = NULL;
-  }
-
-  G_OBJECT_CLASS (ges_track_object_parent_class)->dispose (object);
-}
-
-static void
-ges_track_object_finalize (GObject * object)
-{
-  G_OBJECT_CLASS (ges_track_object_parent_class)->finalize (object);
-}
-
-static void
-ges_track_object_class_init (GESTrackObjectClass * klass)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GESTimelineElementClass *element_class = GES_TIMELINE_ELEMENT_CLASS (klass);
-
-  g_type_class_add_private (klass, sizeof (GESTrackObjectPrivate));
-
-  object_class->get_property = ges_track_object_get_property;
-  object_class->set_property = ges_track_object_set_property;
-  object_class->dispose = ges_track_object_dispose;
-  object_class->finalize = ges_track_object_finalize;
-
-
-  /**
-   * GESTrackObject:active:
-   *
-   * Whether the object should be taken into account in the #GESTrack output.
-   * If #FALSE, then its contents will not be used in the resulting track.
-   */
-  properties[PROP_ACTIVE] =
-      g_param_spec_boolean ("active", "Active", "Use object in output", TRUE,
-      G_PARAM_READWRITE);
-  g_object_class_install_property (object_class, PROP_ACTIVE,
-      properties[PROP_ACTIVE]);
-
-  /**
-   * GESTrackObject:locked:
-   *
-   * If %TRUE, then moves in sync with its controlling #GESClip
-   */
-  properties[PROP_LOCKED] =
-      g_param_spec_boolean ("locked", "Locked",
-      "Moves in sync with its controling Clip", TRUE, G_PARAM_READWRITE);
-  g_object_class_install_property (object_class, PROP_LOCKED,
-      properties[PROP_LOCKED]);
-
-  properties[PROP_TRACK_TYPE] = g_param_spec_flags ("track-type", "Track Type",
-      "The track type of the object", GES_TYPE_TRACK_TYPE,
-      GES_TRACK_TYPE_UNKNOWN, G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
-  g_object_class_install_property (object_class, PROP_TRACK_TYPE,
-      properties[PROP_TRACK_TYPE]);
-
-  properties[PROP_TRACK] = g_param_spec_object ("track", "Track",
-      "The track the object is in", GES_TYPE_TRACK, G_PARAM_READABLE);
-  g_object_class_install_property (object_class, PROP_TRACK,
-      properties[PROP_TRACK]);
-
-
-  /**
-   * GESTrackObject::deep-notify:
-   * @track_object: a #GESTrackObject
-   * @prop_object: the object that originated the signal
-   * @prop: the property that changed
-   *
-   * The deep notify signal is used to be notified of property changes of all
-   * the childs of @track_object
-   *
-   * Since: 0.10.2
-   */
-  ges_track_object_signals[DEEP_NOTIFY] =
-      g_signal_new ("deep-notify", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE | G_SIGNAL_DETAILED |
-      G_SIGNAL_NO_HOOKS, 0, NULL, NULL, g_cclosure_marshal_generic,
-      G_TYPE_NONE, 2, GST_TYPE_ELEMENT, G_TYPE_PARAM);
-
-  element_class->set_start = _set_start;
-  element_class->set_duration = _set_duration;
-  element_class->set_inpoint = _set_inpoint;
-  element_class->set_priority = _set_priority;
-  element_class->deep_copy = _deep_copy;
-
-  klass->create_gnl_object = ges_track_object_create_gnl_object_func;
-  /*  There is no 'get_props_hashtable' default implementation */
-  klass->get_props_hastable = NULL;
-  klass->list_children_properties = default_list_children_properties;
-}
-
-static void
-ges_track_object_init (GESTrackObject * self)
-{
-  GESTrackObjectPrivate *priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-      GES_TYPE_TRACK_OBJECT, GESTrackObjectPrivate);
-
-  /* Sane default values */
-  priv->pending_start = 0;
-  priv->pending_inpoint = 0;
-  priv->pending_duration = GST_SECOND;
-  priv->pending_priority = 1;
-  priv->pending_active = TRUE;
-  priv->locked = TRUE;
-  priv->properties_hashtable = NULL;
-}
-
-static gboolean
-_set_start (GESTimelineElement * element, GstClockTime start)
-{
-  GESTrackObject *object = GES_TRACK_OBJECT (element);
-
-  GST_DEBUG ("object:%p, start:%" GST_TIME_FORMAT,
-      object, GST_TIME_ARGS (start));
-
-  if (object->priv->gnlobject != NULL) {
-    if (G_UNLIKELY (start == _START (object)))
-      return FALSE;
-
-    g_object_set (object->priv->gnlobject, "start", start, NULL);
-  } else
-    object->priv->pending_start = start;
-
-  return TRUE;
-}
-
-static gboolean
-_set_inpoint (GESTimelineElement * element, GstClockTime inpoint)
-{
-  GESTrackObject *object = GES_TRACK_OBJECT (element);
-
-  GST_DEBUG ("object:%p, inpoint:%" GST_TIME_FORMAT,
-      object, GST_TIME_ARGS (inpoint));
-
-  if (object->priv->gnlobject != NULL) {
-    if (G_UNLIKELY (inpoint == _INPOINT (object)))
-
-      return FALSE;
-
-    g_object_set (object->priv->gnlobject, "media-start", inpoint, NULL);
-  } else
-    object->priv->pending_inpoint = inpoint;
-
-  return TRUE;
-}
-
-static gboolean
-_set_duration (GESTimelineElement * element, GstClockTime duration)
-{
-  GESTrackObject *object = GES_TRACK_OBJECT (element);
-  GESTrackObjectPrivate *priv = object->priv;
-
-  GST_DEBUG ("object:%p, duration:%" GST_TIME_FORMAT,
-      object, GST_TIME_ARGS (duration));
-
-  if (GST_CLOCK_TIME_IS_VALID (_MAXDURATION (element)) &&
-      duration > _INPOINT (object) + _MAXDURATION (element))
-    duration = _MAXDURATION (element) - _INPOINT (object);
-
-  if (priv->gnlobject != NULL) {
-    if (G_UNLIKELY (duration == _DURATION (object)))
-      return FALSE;
-
-    g_object_set (priv->gnlobject, "duration", duration,
-        "media-duration", duration, NULL);
-  } else
-    priv->pending_duration = duration;
-
-  return TRUE;
-}
-
-static gboolean
-_set_priority (GESTimelineElement * element, guint32 priority)
-{
-  GESTrackObject *object = GES_TRACK_OBJECT (element);
-
-  GST_DEBUG ("object:%p, priority:%" G_GUINT32_FORMAT, object, priority);
-
-  if (object->priv->gnlobject != NULL) {
-    if (G_UNLIKELY (priority == _PRIORITY (object)))
-      return FALSE;
-
-    g_object_set (object->priv->gnlobject, "priority", priority, NULL);
-  } else
-    object->priv->pending_priority = priority;
-
-  return TRUE;
-}
-
-/**
- * ges_track_object_set_active:
- * @object: a #GESTrackObject
- * @active: visibility
- *
- * Sets the usage of the @object. If @active is %TRUE, the object will be used for
- * playback and rendering, else it will be ignored.
- *
- * Returns: %TRUE if the property was toggled, else %FALSE
- */
-gboolean
-ges_track_object_set_active (GESTrackObject * object, gboolean active)
-{
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
-
-  GST_DEBUG ("object:%p, active:%d", object, active);
-
-  if (object->priv->gnlobject != NULL) {
-    if (G_UNLIKELY (active == object->active))
-      return FALSE;
-
-    g_object_set (object->priv->gnlobject, "active", active, NULL);
-  } else
-    object->priv->pending_active = active;
-  return TRUE;
-}
-
-void
-ges_track_object_set_track_type (GESTrackObject * object, GESTrackType type)
-{
-  g_return_if_fail (GES_IS_TRACK_OBJECT (object));
-
-  if (object->priv->track_type != type) {
-    object->priv->track_type = type;
-    g_object_notify_by_pspec (G_OBJECT (object), properties[PROP_TRACK_TYPE]);
-  }
-}
-
-GESTrackType
-ges_track_object_get_track_type (GESTrackObject * object)
-{
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), GES_TRACK_TYPE_UNKNOWN);
-
-  return object->priv->track_type;
-}
-
-/* Callbacks from the GNonLin object */
-static void
-gnlobject_start_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
-    GESTrackObject * obj)
-{
-  guint64 start;
-
-  g_object_get (gnlobject, "start", &start, NULL);
-
-  GST_DEBUG ("gnlobject start : %" GST_TIME_FORMAT " current : %"
-      GST_TIME_FORMAT, GST_TIME_ARGS (start), GST_TIME_ARGS (_START (obj)));
-
-  if (start != _START (obj)) {
-    _START (obj) = start;
-    g_object_notify (G_OBJECT (obj), "start");
-  }
-}
-
-static void
-gst_element_prop_changed_cb (GstElement * element, GParamSpec * arg
-    G_GNUC_UNUSED, GESTrackObject * obj)
-{
-  g_signal_emit (obj, ges_track_object_signals[DEEP_NOTIFY], 0,
-      GST_ELEMENT (element), arg);
-}
-
-static void
-connect_signal (gpointer key, gpointer value, gpointer user_data)
-{
-  gchar *signame = g_strconcat ("notify::", G_PARAM_SPEC (key)->name, NULL);
-
-  g_signal_connect (G_OBJECT (value),
-      signame, G_CALLBACK (gst_element_prop_changed_cb),
-      GES_TRACK_OBJECT (user_data));
-
-  g_free (signame);
-}
-
-static void
-connect_properties_signals (GESTrackObject * object)
-{
-  if (G_UNLIKELY (!object->priv->properties_hashtable)) {
-    GST_WARNING ("The properties_hashtable hasn't been set");
-    return;
-  }
-
-  g_hash_table_foreach (object->priv->properties_hashtable,
-      (GHFunc) connect_signal, object);
-
-}
-
-/* Callbacks from the GNonLin object */
-static void
-gnlobject_media_start_cb (GstElement * gnlobject,
-    GParamSpec * arg G_GNUC_UNUSED, GESTrackObject * obj)
-{
-  guint64 inpoint;
-
-  g_object_get (gnlobject, "media-start", &inpoint, NULL);
-
-  GST_DEBUG ("gnlobject in-point : %" GST_TIME_FORMAT " current : %"
-      GST_TIME_FORMAT, GST_TIME_ARGS (inpoint), GST_TIME_ARGS (_INPOINT (obj)));
-
-  if (inpoint != _INPOINT (obj)) {
-    _INPOINT (obj) = inpoint;
-    g_object_notify (G_OBJECT (obj), "in-point");
-  }
-}
-
-static void
-gnlobject_priority_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
-    GESTrackObject * obj)
-{
-  guint32 priority;
-
-  g_object_get (gnlobject, "priority", &priority, NULL);
-
-  GST_DEBUG ("gnlobject priority : %d current : %d", priority, _PRIORITY (obj));
-
-  if (priority != _PRIORITY (obj)) {
-    _PRIORITY (obj) = priority;
-    g_object_notify (G_OBJECT (obj), "priority");
-  }
-}
-
-static void
-gnlobject_duration_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
-    GESTrackObject * obj)
-{
-  guint64 duration;
-  GESTrackObjectClass *klass;
-
-  klass = GES_TRACK_OBJECT_GET_CLASS (obj);
-
-  g_object_get (gnlobject, "duration", &duration, NULL);
-
-  GST_DEBUG_OBJECT (gnlobject, "duration : %" GST_TIME_FORMAT " current : %"
-      GST_TIME_FORMAT, GST_TIME_ARGS (duration),
-      GST_TIME_ARGS (_DURATION (obj)));
-
-  if (duration != _DURATION (obj)) {
-    _DURATION (obj) = duration;
-    if (klass->duration_changed)
-      klass->duration_changed (obj, duration);
-    g_object_notify (G_OBJECT (obj), "duration");
-  }
-}
-
-static void
-gnlobject_active_cb (GstElement * gnlobject, GParamSpec * arg G_GNUC_UNUSED,
-    GESTrackObject * obj)
-{
-  gboolean active;
-  GESTrackObjectClass *klass;
-
-  klass = GES_TRACK_OBJECT_GET_CLASS (obj);
-
-  g_object_get (gnlobject, "active", &active, NULL);
-
-  GST_DEBUG ("gnlobject active : %d current : %d", active, obj->active);
-
-  if (active != obj->active) {
-    obj->active = active;
-    if (klass->active_changed)
-      klass->active_changed (obj, active);
-  }
-}
-
-
-/* default 'create_gnl_object' virtual method implementation */
-static GstElement *
-ges_track_object_create_gnl_object_func (GESTrackObject * self)
-{
-  GESTrackObjectClass *klass = NULL;
-  GstElement *child = NULL;
-  GstElement *gnlobject;
-
-  klass = GES_TRACK_OBJECT_GET_CLASS (self);
-
-  if (G_UNLIKELY (self->priv->gnlobject != NULL))
-    goto already_have_gnlobject;
-
-  if (G_UNLIKELY (klass->gnlobject_factorytype == NULL))
-    goto no_gnlfactory;
-
-  GST_DEBUG ("Creating a supporting gnlobject of type '%s'",
-      klass->gnlobject_factorytype);
-
-  gnlobject = gst_element_factory_make (klass->gnlobject_factorytype, NULL);
-
-  if (G_UNLIKELY (gnlobject == NULL))
-    goto no_gnlobject;
-
-  if (klass->create_element) {
-    GST_DEBUG ("Calling subclass 'create_element' vmethod");
-    child = klass->create_element (self);
-
-    if (G_UNLIKELY (!child))
-      goto child_failure;
-
-    if (!gst_bin_add (GST_BIN (gnlobject), child))
-      goto add_failure;
-
-    GST_DEBUG ("Succesfully got the element to put in the gnlobject");
-    self->priv->element = child;
-  }
-
-  GST_DEBUG ("done");
-  return gnlobject;
-
-
-  /* ERROR CASES */
-
-already_have_gnlobject:
-  {
-    GST_ERROR ("Already controlling a GnlObject %s",
-        GST_ELEMENT_NAME (self->priv->gnlobject));
-    return NULL;
-  }
-
-no_gnlfactory:
-  {
-    GST_ERROR ("No GESTrackObject::gnlobject_factorytype implementation!");
-    return NULL;
-  }
-
-no_gnlobject:
-  {
-    GST_ERROR ("Error creating a gnlobject of type '%s'",
-        klass->gnlobject_factorytype);
-    return NULL;
-  }
-
-child_failure:
-  {
-    GST_ERROR ("create_element returned NULL");
-    gst_object_unref (gnlobject);
-    return NULL;
-  }
-
-add_failure:
-  {
-    GST_ERROR ("Error adding the contents to the gnlobject");
-    gst_object_unref (child);
-    gst_object_unref (gnlobject);
-    return NULL;
-  }
-}
-
-static gboolean
-ensure_gnl_object (GESTrackObject * object)
-{
-  GESTrackObjectClass *class;
-  GstElement *gnlobject;
-  GHashTable *props_hash;
-  gboolean res = TRUE;
-
-  if (object->priv->gnlobject && object->priv->valid)
-    return FALSE;
-
-  /* 1. Create the GnlObject */
-  GST_DEBUG ("Creating GnlObject");
-
-  class = GES_TRACK_OBJECT_GET_CLASS (object);
-
-  if (G_UNLIKELY (class->create_gnl_object == NULL)) {
-    GST_ERROR ("No 'create_gnl_object' implementation !");
-    goto done;
-  }
-
-  GST_DEBUG ("Calling virtual method");
-
-  /* 2. Fill in the GnlObject */
-  if (object->priv->gnlobject == NULL) {
-
-    /* call the create_gnl_object virtual method */
-    gnlobject = class->create_gnl_object (object);
-
-    if (G_UNLIKELY (gnlobject == NULL)) {
-      GST_ERROR
-          ("'create_gnl_object' implementation returned TRUE but no GnlObject is available");
-      goto done;
-    }
-
-    GST_DEBUG_OBJECT (object, "Got a valid GnlObject, now filling it in");
-
-    object->priv->gnlobject = gst_object_ref (gnlobject);
-
-    if (object->priv->timelineobj)
-      res = ges_clip_fill_track_object (object->priv->timelineobj,
-          object, object->priv->gnlobject);
-    else
-      res = TRUE;
-
-    if (res) {
-      /* Connect to property notifications */
-      /* FIXME : remember the signalids so we can remove them later on !!! */
-      g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::start",
-          G_CALLBACK (gnlobject_start_cb), object);
-      g_signal_connect (G_OBJECT (object->priv->gnlobject),
-          "notify::media-start", G_CALLBACK (gnlobject_media_start_cb), object);
-      g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::duration",
-          G_CALLBACK (gnlobject_duration_cb), object);
-      g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::priority",
-          G_CALLBACK (gnlobject_priority_cb), object);
-      g_signal_connect (G_OBJECT (object->priv->gnlobject), "notify::active",
-          G_CALLBACK (gnlobject_active_cb), object);
-
-      /* Set some properties on the GnlObject */
-      g_object_set (object->priv->gnlobject,
-          "duration", object->priv->pending_duration,
-          "media-duration", object->priv->pending_duration,
-          "start", object->priv->pending_start,
-          "media-start", object->priv->pending_inpoint,
-          "priority", object->priv->pending_priority,
-          "active", object->priv->pending_active, NULL);
-
-      if (object->priv->track != NULL)
-        g_object_set (object->priv->gnlobject,
-            "caps", ges_track_get_caps (object->priv->track), NULL);
-
-      /*  We feed up the props_hashtable if possible */
-      if (class->get_props_hastable) {
-        props_hash = class->get_props_hastable (object);
-
-        if (props_hash == NULL) {
-          GST_DEBUG ("'get_props_hastable' implementation returned TRUE but no"
-              "properties_hashtable is available");
-        } else {
-          object->priv->properties_hashtable = props_hash;
-          connect_properties_signals (object);
-        }
-      }
-    }
-  }
-
-done:
-  object->priv->valid = res;
-
-  GST_DEBUG ("Returning res:%d", res);
-
-  return res;
-}
-
-/* INTERNAL USAGE */
-gboolean
-ges_track_object_set_track (GESTrackObject * object, GESTrack * track)
-{
-  gboolean ret = TRUE;
-  GST_DEBUG ("object:%p, track:%p", object, track);
-
-  object->priv->track = track;
-
-  if (object->priv->track) {
-    /* If we already have a gnlobject, we just set its caps properly */
-    if (object->priv->gnlobject) {
-      g_object_set (object->priv->gnlobject,
-          "caps", ges_track_get_caps (object->priv->track), NULL);
-    } else {
-      ret = ensure_gnl_object (object);
-    }
-  }
-
-  g_object_notify_by_pspec (G_OBJECT (object), properties[PROP_TRACK]);
-  return ret;
-}
-
-/**
- * ges_track_object_get_track:
- * @object: a #GESTrackObject
- *
- * Get the #GESTrack to which this object belongs.
- *
- * Returns: (transfer none): The #GESTrack to which this object belongs. Can be %NULL if it
- * is not in any track
- */
-GESTrack *
-ges_track_object_get_track (GESTrackObject * object)
-{
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), NULL);
-
-  return object->priv->track;
-}
-
-/**
- * ges_track_object_set_clip:
- * @object: The #GESTrackObject to set the parent to
- * @clipect: The #GESClip, parent of @clip or %NULL
- *
- * Set the #GESClip to which @object belongs.
- */
-void
-ges_track_object_set_clip (GESTrackObject * object, GESClip * clipect)
-{
-  GST_DEBUG ("object:%p, clip:%p", object, clipect);
-
-  object->priv->timelineobj = clipect;
-}
-
-/**
- * ges_track_object_get_clip:
- * @object: a #GESTrackObject
- *
- * Get the #GESClip which is controlling this track object
- *
- * Returns: (transfer none): the #GESClip which is controlling
- * this track object
- */
-GESClip *
-ges_track_object_get_clip (GESTrackObject * object)
-{
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), NULL);
-
-  return object->priv->timelineobj;
-}
-
-/**
- * ges_track_object_get_gnlobject:
- * @object: a #GESTrackObject
- *
- * Get the GNonLin object this object is controlling.
- *
- * Returns: (transfer none): the GNonLin object this object is controlling.
- */
-GstElement *
-ges_track_object_get_gnlobject (GESTrackObject * object)
-{
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), NULL);
-
-  return object->priv->gnlobject;
-}
-
-/**
- * ges_track_object_get_element:
- * @object: a #GESTrackObject
- *
- * Get the #GstElement this track object is controlling within GNonLin.
- *
- * Returns: (transfer none): the #GstElement this track object is controlling
- * within GNonLin.
- */
-GstElement *
-ges_track_object_get_element (GESTrackObject * object)
-{
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), NULL);
-
-  return object->priv->element;
-}
-
-static inline void
-ges_track_object_set_locked_internal (GESTrackObject * object, gboolean locked)
-{
-  object->priv->locked = locked;
-}
-
-/**
- * ges_track_object_set_locked:
- * @object: a #GESTrackObject
- * @locked: whether the object is lock to its parent
- *
- * Set the locking status of the @object in relationship to its controlling
- * #GESClip. If @locked is %TRUE, then this object will move synchronously
- * with its controlling #GESClip.
- */
-void
-ges_track_object_set_locked (GESTrackObject * object, gboolean locked)
-{
-  g_return_if_fail (GES_IS_TRACK_OBJECT (object));
-
-  GST_DEBUG_OBJECT (object, "%s object", locked ? "Locking" : "Unlocking");
-
-  ges_track_object_set_locked_internal (object, locked);
-  g_object_notify_by_pspec (G_OBJECT (object), properties[PROP_LOCKED]);
-
-}
-
-/**
- * ges_track_object_is_locked:
- * @object: a #GESTrackObject
- *
- * Let you know if object us locked or not (moving synchronously).
- *
- * Returns: %TRUE if the object is moving synchronously to its controlling
- * #GESClip, else %FALSE.
- */
-gboolean
-ges_track_object_is_locked (GESTrackObject * object)
-{
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
-
-  return object->priv->locked;
-}
-
-
-/**
- * ges_track_object_is_active:
- * @object: a #GESTrackObject
- *
- * Lets you know if @object will be used for playback and rendering,
- * or not.
- *
- * Returns: %TRUE if @object is active, %FALSE otherwize
- *
- * Since: 0.10.2
- */
-gboolean
-ges_track_object_is_active (GESTrackObject * object)
-{
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
-
-  if (G_UNLIKELY (object->priv->gnlobject == NULL))
-    return object->priv->pending_active;
-  else
-    return object->active;
-}
-
-/**
- * ges_track_object_lookup_child:
- * @object: object to lookup the property in
- * @prop_name: name of the property to look up. You can specify the name of the
- *     class as such: "ClassName::property-name", to guarantee that you get the
- *     proper GParamSpec in case various GstElement-s contain the same property
- *     name. If you don't do so, you will get the first element found, having
- *     this property and the and the corresponding GParamSpec.
- * @element: (out) (allow-none) (transfer full): pointer to a #GstElement that
- *     takes the real object to set property on
- * @pspec: (out) (allow-none) (transfer full): pointer to take the #GParamSpec
- *     describing the property
- *
- * Looks up which @element and @pspec would be effected by the given @name. If various
- * contained elements have this property name you will get the first one, unless you
- * specify the class name in @name.
- *
- * Returns: TRUE if @element and @pspec could be found. FALSE otherwise. In that
- * case the values for @pspec and @element are not modified. Unref @element after
- * usage.
- *
- * Since: 0.10.2
- */
-gboolean
-ges_track_object_lookup_child (GESTrackObject * object, const gchar * prop_name,
-    GstElement ** element, GParamSpec ** pspec)
-{
-  GHashTableIter iter;
-  gpointer key, value;
-  gchar **names, *name, *classename;
-  gboolean res;
-  GESTrackObjectPrivate *priv;
-
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
-
-  priv = object->priv;
-
-  if (!priv->properties_hashtable)
-    goto prop_hash_not_set;
-
-  classename = NULL;
-  res = FALSE;
-
-  names = g_strsplit (prop_name, "::", 2);
-  if (names[1] != NULL) {
-    classename = names[0];
-    name = names[1];
-  } else
-    name = names[0];
-
-  g_hash_table_iter_init (&iter, priv->properties_hashtable);
-  while (g_hash_table_iter_next (&iter, &key, &value)) {
-    if (g_strcmp0 (G_PARAM_SPEC (key)->name, name) == 0) {
-      if (classename == NULL ||
-          g_strcmp0 (G_OBJECT_TYPE_NAME (G_OBJECT (value)), classename) == 0) {
-        GST_DEBUG ("The %s property from %s has been found", name, classename);
-        if (element)
-          *element = g_object_ref (value);
-
-        *pspec = g_param_spec_ref (key);
-        res = TRUE;
-        break;
-      }
-    }
-  }
-  g_strfreev (names);
-
-  return res;
-
-prop_hash_not_set:
-  {
-    GST_WARNING_OBJECT (object, "The child properties haven't been set yet");
-    return FALSE;
-  }
-}
-
-/**
- * ges_track_object_set_child_property_by_pspec:
- * @object: a #GESTrackObject
- * @pspec: The #GParamSpec that specifies the property you want to set
- * @value: the value
- *
- * Sets a property of a child of @object.
- *
- * Since: 0.10.2
- */
-void
-ges_track_object_set_child_property_by_pspec (GESTrackObject * object,
-    GParamSpec * pspec, GValue * value)
-{
-  GstElement *element;
-  GESTrackObjectPrivate *priv;
-
-  g_return_if_fail (GES_IS_TRACK_OBJECT (object));
-
-  priv = object->priv;
-
-  if (!priv->properties_hashtable)
-    goto prop_hash_not_set;
-
-  element = g_hash_table_lookup (priv->properties_hashtable, pspec);
-  if (!element)
-    goto not_found;
-
-  g_object_set_property (G_OBJECT (element), pspec->name, value);
-
-  return;
-
-not_found:
-  {
-    GST_ERROR ("The %s property doesn't exist", pspec->name);
-    return;
-  }
-prop_hash_not_set:
-  {
-    GST_DEBUG ("The child properties haven't been set on %p", object);
-    return;
-  }
-}
-
-/**
- * ges_track_object_set_child_property_valist:
- * @object: The #GESTrackObject parent object
- * @first_property_name: The name of the first property to set
- * @var_args: value for the first property, followed optionally by more
- * name/return location pairs, followed by NULL
- *
- * Sets a property of a child of @object. If there are various child elements
- * that have the same property name, you can distinguish them using the following
- * syntax: 'ClasseName::property_name' as property name. If you don't, the
- * corresponding property of the first element found will be set.
- *
- * Since: 0.10.2
- */
-void
-ges_track_object_set_child_property_valist (GESTrackObject * object,
-    const gchar * first_property_name, va_list var_args)
-{
-  const gchar *name;
-  GParamSpec *pspec;
-  GstElement *element;
-
-  gchar *error = NULL;
-  GValue value = { 0, };
-
-  g_return_if_fail (GES_IS_TRACK_OBJECT (object));
-
-  name = first_property_name;
-
-  /* Note: This part is in big part copied from the gst_child_object_set_valist
-   * method. */
-
-  /* iterate over pairs */
-  while (name) {
-    if (!ges_track_object_lookup_child (object, name, &element, &pspec))
-      goto not_found;
-
-#if GLIB_CHECK_VERSION(2,23,3)
-    G_VALUE_COLLECT_INIT (&value, pspec->value_type, var_args,
-        G_VALUE_NOCOPY_CONTENTS, &error);
-#else
-    g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
-    G_VALUE_COLLECT (&value, var_args, G_VALUE_NOCOPY_CONTENTS, &error);
-#endif
-
-    if (error)
-      goto cant_copy;
-
-    g_object_set_property (G_OBJECT (element), pspec->name, &value);
-
-    g_object_unref (element);
-    g_value_unset (&value);
-
-    name = va_arg (var_args, gchar *);
-  }
-  return;
-
-not_found:
-  {
-    GST_WARNING ("No property %s in OBJECT\n", name);
-    return;
-  }
-cant_copy:
-  {
-    GST_WARNING ("error copying value %s in object %p: %s", pspec->name, object,
-        error);
-    g_value_unset (&value);
-    return;
-  }
-}
-
-/**
- * ges_track_object_set_child_properties:
- * @object: The #GESTrackObject parent object
- * @first_property_name: The name of the first property to set
- * @...: value for the first property, followed optionally by more
- * name/return location pairs, followed by NULL
- *
- * Sets a property of a child of @object. If there are various child elements
- * that have the same property name, you can distinguish them using the following
- * syntax: 'ClasseName::property_name' as property name. If you don't, the
- * corresponding property of the first element found will be set.
- *
- * Since: 0.10.2
- */
-void
-ges_track_object_set_child_properties (GESTrackObject * object,
-    const gchar * first_property_name, ...)
-{
-  va_list var_args;
-
-  g_return_if_fail (GES_IS_TRACK_OBJECT (object));
-
-  va_start (var_args, first_property_name);
-  ges_track_object_set_child_property_valist (object, first_property_name,
-      var_args);
-  va_end (var_args);
-}
-
-/**
- * ges_track_object_get_child_property_valist:
- * @object: The #GESTrackObject parent object
- * @first_property_name: The name of the first property to get
- * @var_args: value for the first property, followed optionally by more
- * name/return location pairs, followed by NULL
- *
- * Gets a property of a child of @object. If there are various child elements
- * that have the same property name, you can distinguish them using the following
- * syntax: 'ClasseName::property_name' as property name. If you don't, the
- * corresponding property of the first element found will be set.
- *
- * Since: 0.10.2
- */
-void
-ges_track_object_get_child_property_valist (GESTrackObject * object,
-    const gchar * first_property_name, va_list var_args)
-{
-  const gchar *name;
-  gchar *error = NULL;
-  GValue value = { 0, };
-  GParamSpec *pspec;
-  GstElement *element;
-
-  g_return_if_fail (G_IS_OBJECT (object));
-
-  name = first_property_name;
-
-  /* This part is in big part copied from the gst_child_object_get_valist method */
-  while (name) {
-    if (!ges_track_object_lookup_child (object, name, &element, &pspec))
-      goto not_found;
-
-    g_value_init (&value, pspec->value_type);
-    g_object_get_property (G_OBJECT (element), pspec->name, &value);
-    g_object_unref (element);
-
-    G_VALUE_LCOPY (&value, var_args, 0, &error);
-    if (error)
-      goto cant_copy;
-    g_value_unset (&value);
-    name = va_arg (var_args, gchar *);
-  }
-  return;
-
-not_found:
-  {
-    GST_WARNING ("no property %s in object", name);
-    return;
-  }
-cant_copy:
-  {
-    GST_WARNING ("error copying value %s in object %p: %s", pspec->name, object,
-        error);
-    g_value_unset (&value);
-    return;
-  }
-}
-
-/**
- * ges_track_object_list_children_properties:
- * @object: The #GESTrackObject to get the list of children properties from
- * @n_properties: (out): return location for the length of the returned array
- *
- * Gets an array of #GParamSpec* for all configurable properties of the
- * children of @object.
- *
- * Returns: (transfer full) (array length=n_properties): an array of #GParamSpec* which should be freed after use or
- * %NULL if something went wrong
- *
- * Since: 0.10.2
- */
-GParamSpec **
-ges_track_object_list_children_properties (GESTrackObject * object,
-    guint * n_properties)
-{
-  GESTrackObjectClass *class;
-
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), NULL);
-
-  class = GES_TRACK_OBJECT_GET_CLASS (object);
-
-  return class->list_children_properties (object, n_properties);
-}
-
-/**
- * ges_track_object_get_child_properties:
- * @object: The origin #GESTrackObject
- * @first_property_name: The name of the first property to get
- * @...: return location for the first property, followed optionally by more
- * name/return location pairs, followed by NULL
- *
- * Gets properties of a child of @object.
- *
- * Since: 0.10.2
- */
-void
-ges_track_object_get_child_properties (GESTrackObject * object,
-    const gchar * first_property_name, ...)
-{
-  va_list var_args;
-
-  g_return_if_fail (GES_IS_TRACK_OBJECT (object));
-
-  va_start (var_args, first_property_name);
-  ges_track_object_get_child_property_valist (object, first_property_name,
-      var_args);
-  va_end (var_args);
-}
-
-/**
- * ges_track_object_get_child_property_by_pspec:
- * @object: a #GESTrackObject
- * @pspec: The #GParamSpec that specifies the property you want to get
- * @value: (out): return location for the value
- *
- * Gets a property of a child of @object.
- *
- * Since: 0.10.2
- */
-void
-ges_track_object_get_child_property_by_pspec (GESTrackObject * object,
-    GParamSpec * pspec, GValue * value)
-{
-  GstElement *element;
-  GESTrackObjectPrivate *priv;
-
-  g_return_if_fail (GES_IS_TRACK_OBJECT (object));
-
-  priv = object->priv;
-
-  if (!priv->properties_hashtable)
-    goto prop_hash_not_set;
-
-  element = g_hash_table_lookup (priv->properties_hashtable, pspec);
-  if (!element)
-    goto not_found;
-
-  g_object_get_property (G_OBJECT (element), pspec->name, value);
-
-  return;
-
-not_found:
-  {
-    GST_ERROR ("The %s property doesn't exist", pspec->name);
-    return;
-  }
-prop_hash_not_set:
-  {
-    GST_ERROR ("The child properties haven't been set on %p", object);
-    return;
-  }
-}
-
-/**
- * ges_track_object_set_child_property:
- * @object: The origin #GESTrackObject
- * @property_name: The name of the property
- * @value: the value
- *
- * Sets a property of a GstElement contained in @object.
- *
- * Note that #ges_track_object_set_child_property is really
- * intended for language bindings, #ges_track_object_set_child_properties
- * is much more convenient for C programming.
- *
- * Returns: %TRUE if the property was set, %FALSE otherwize
- */
-gboolean
-ges_track_object_set_child_property (GESTrackObject * object,
-    const gchar * property_name, GValue * value)
-{
-  GParamSpec *pspec;
-  GstElement *element;
-
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
-
-  if (!ges_track_object_lookup_child (object, property_name, &element, &pspec))
-    goto not_found;
-
-  g_object_set_property (G_OBJECT (element), pspec->name, value);
-
-  g_object_unref (element);
-  g_param_spec_unref (pspec);
-
-  return TRUE;
-
-not_found:
-  {
-    GST_WARNING_OBJECT (object, "The %s property doesn't exist", property_name);
-
-    return FALSE;
-  }
-}
-
-/**
-* ges_track_object_get_child_property:
-* @object: The origin #GESTrackObject
-* @property_name: The name of the property
-* @value: (out): return location for the property value, it will
-* be initialized if it is initialized with 0
-*
-* In general, a copy is made of the property contents and
-* the caller is responsible for freeing the memory by calling
-* g_value_unset().
-*
-* Gets a property of a GstElement contained in @object.
-*
-* Note that #ges_track_object_get_child_property is really
-* intended for language bindings, #ges_track_object_get_child_properties
-* is much more convenient for C programming.
-*
-* Returns: %TRUE if the property was found, %FALSE otherwize
-*/
-gboolean
-ges_track_object_get_child_property (GESTrackObject * object,
-    const gchar * property_name, GValue * value)
-{
-  GParamSpec *pspec;
-  GstElement *element;
-
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
-
-  if (!ges_track_object_lookup_child (object, property_name, &element, &pspec))
-    goto not_found;
-
-  if (G_VALUE_TYPE (value) == G_TYPE_INVALID)
-    g_value_init (value, pspec->value_type);
-
-  g_object_get_property (G_OBJECT (element), pspec->name, value);
-
-  g_object_unref (element);
-  g_param_spec_unref (pspec);
-
-  return TRUE;
-
-not_found:
-  {
-    GST_WARNING_OBJECT (object, "The %s property doesn't exist", property_name);
-
-    return FALSE;
-  }
-}
-
-static GParamSpec **
-default_list_children_properties (GESTrackObject * object, guint * n_properties)
-{
-  GParamSpec **pspec, *spec;
-  GHashTableIter iter;
-  gpointer key, value;
-
-  guint i = 0;
-
-  if (!object->priv->properties_hashtable)
-    goto prop_hash_not_set;
-
-  *n_properties = g_hash_table_size (object->priv->properties_hashtable);
-  pspec = g_new (GParamSpec *, *n_properties);
-
-  g_hash_table_iter_init (&iter, object->priv->properties_hashtable);
-  while (g_hash_table_iter_next (&iter, &key, &value)) {
-    spec = G_PARAM_SPEC (key);
-    pspec[i] = g_param_spec_ref (spec);
-    i++;
-  }
-
-  return pspec;
-
-prop_hash_not_set:
-  {
-    *n_properties = 0;
-    GST_DEBUG_OBJECT (object, "No child properties have been set yet");
-    return NULL;
-  }
-}
-
-void
-_deep_copy (GESTimelineElement * element, GESTimelineElement * elementcopy)
-{
-  GParamSpec **specs;
-  guint n, n_specs;
-  GValue val = { 0 };
-  GESTrackObject *copy = GES_TRACK_OBJECT (elementcopy);
-
-  ensure_gnl_object (copy);
-  specs =
-      ges_track_object_list_children_properties (GES_TRACK_OBJECT (element),
-      &n_specs);
-  for (n = 0; n < n_specs; ++n) {
-    g_value_init (&val, specs[n]->value_type);
-    g_object_get_property (G_OBJECT (element), specs[n]->name, &val);
-    ges_track_object_set_child_property_by_pspec (copy, specs[n], &val);
-    g_value_unset (&val);
-  }
-
-  g_free (specs);
-}
-
-/**
- * ges_track_object_edit:
- * @object: the #GESTrackObject to edit
- * @layers: (element-type GESTimelineLayer): The layers you want the edit to
- *  happen in, %NULL means that the edition is done in all the
- *  #GESTimelineLayers contained in the current timeline.
- *      FIXME: This is not implemented yet.
- * @mode: The #GESEditMode in which the editition will happen.
- * @edge: The #GESEdge the edit should happen on.
- * @position: The position at which to edit @object (in nanosecond)
- *
- * Edit @object in the different exisiting #GESEditMode modes. In the case of
- * slide, and roll, you need to specify a #GESEdge
- *
- * Returns: %TRUE if the object as been edited properly, %FALSE if an error
- * occured
- *
- * Since: 0.10.XX
- */
-gboolean
-ges_track_object_edit (GESTrackObject * object,
-    GList * layers, GESEditMode mode, GESEdge edge, guint64 position)
-{
-  GESTrack *track = ges_track_object_get_track (object);
-  GESTimeline *timeline;
-
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
-
-  if (G_UNLIKELY (!track)) {
-    GST_WARNING_OBJECT (object, "Trying to edit in %d mode but not in"
-        "any Track yet.", mode);
-    return FALSE;
-  }
-
-  timeline = GES_TIMELINE (ges_track_get_timeline (track));
-
-  if (G_UNLIKELY (!timeline)) {
-    GST_WARNING_OBJECT (object, "Trying to edit in %d mode but not in"
-        "track %p no in any timeline yet.", mode, track);
-    return FALSE;
-  }
-
-  switch (mode) {
-    case GES_EDIT_MODE_NORMAL:
-      timeline_move_object (timeline, object, layers, edge, position);
-      break;
-    case GES_EDIT_MODE_TRIM:
-      timeline_trim_object (timeline, object, layers, edge, position);
-      break;
-    case GES_EDIT_MODE_RIPPLE:
-      timeline_ripple_object (timeline, object, layers, edge, position);
-      break;
-    case GES_EDIT_MODE_ROLL:
-      timeline_roll_object (timeline, object, layers, edge, position);
-      break;
-    case GES_EDIT_MODE_SLIDE:
-      timeline_slide_object (timeline, object, layers, edge, position);
-      break;
-    default:
-      GST_ERROR ("Unkown edit mode: %d", mode);
-      return FALSE;
-  }
-
-  return TRUE;
-}
diff --git a/ges/ges-track-object.h b/ges/ges-track-object.h
deleted file mode 100644 (file)
index 4fc1319..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/* GStreamer Editing Services
- * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
- *               2009 Nokia Corporation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef _GES_TRACK_OBJECT
-#define _GES_TRACK_OBJECT
-
-#include <glib-object.h>
-#include <gst/gst.h>
-#include <ges/ges-types.h>
-#include <ges/ges-clip.h>
-#include <ges/ges-track.h>
-
-G_BEGIN_DECLS
-
-#define GES_TYPE_TRACK_OBJECT ges_track_object_get_type()
-
-#define GES_TRACK_OBJECT(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_OBJECT, GESTrackObject))
-
-#define GES_TRACK_OBJECT_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_OBJECT, GESTrackObjectClass))
-
-#define GES_IS_TRACK_OBJECT(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_OBJECT))
-
-#define GES_IS_TRACK_OBJECT_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_OBJECT))
-
-#define GES_TRACK_OBJECT_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_OBJECT, GESTrackObjectClass))
-
-typedef struct _GESTrackObjectPrivate GESTrackObjectPrivate;
-
-/**
- * GESTrackObject:
- *
- * The GESTrackObject base class.
- */
-struct _GESTrackObject {
-  GESTimelineElement parent;
-
-  /*< private >*/
-  gboolean active;
-
-  GESTrackObjectPrivate *priv;
-
-  GESAsset *asset;
-
-  /* Padding for API extension */
-  gpointer _ges_reserved[GES_PADDING_LARGE];
-};
-
-/**
- * GESTrackObjectClass:
- * @gnlobject_factorytype: name of the GNonLin GStElementFactory type to use.
- * @create_gnl_object: method to create the GNonLin container object.
- * @create_element: method to return the GstElement to put in the gnlobject.
- * @duration_changed: duration property glnobject has changed
- * @active_changed: active property of gnlobject has changed
- * @get_props_hastable: method to list children properties that user could like
- *                      to configure. Since: 0.10.2
- * @list_children_properties: method to get children properties that user could
- *                            like to configure.
- *                            The default implementation will create an object
- *                            of type @gnlobject_factorytype and call
- *                            @create_element. Since: 0.10.2
- *
- * Subclasses can override the @create_gnl_object method to override what type
- * of GNonLin object will be created.
- */
-struct _GESTrackObjectClass {
-  /*< private >*/
-  GESTimelineElementClass parent_class;
-
-  /*< public >*/
-  /* virtual methods for subclasses */
-  const gchar  *gnlobject_factorytype;
-  GstElement*  (*create_gnl_object)        (GESTrackObject * object);
-  GstElement*  (*create_element)           (GESTrackObject * object);
-
-  void (*duration_changed)     (GESTrackObject *object, guint64 duration);
-  void (*active_changed)       (GESTrackObject *object, gboolean active);
-
-  /*< private >*/
-  /* signals (currently unused) */
-  void  (*changed)  (GESTrackObject * object);
-
-  /*< public >*/
-  /* virtual methods for subclasses */
-  GHashTable*  (*get_props_hastable)       (GESTrackObject * object);
-  GParamSpec** (*list_children_properties) (GESTrackObject * object,
-              guint *n_properties);
-  /*< private >*/
-  /* Padding for API extension */
-  gpointer _ges_reserved[GES_PADDING_LARGE];
-};
-
-GType ges_track_object_get_type               (void);
-
-gboolean ges_track_object_set_track           (GESTrackObject * object,
-              GESTrack * track);
-GESTrack* ges_track_object_get_track          (GESTrackObject * object);
-
-GESTrackType ges_track_object_get_track_type  (GESTrackObject * object);
-void ges_track_object_set_track_type          (GESTrackObject * object,
-                                               GESTrackType     type);
-
-void ges_track_object_set_clip     (GESTrackObject * object,
-                                               GESClip * clipect);
-GESClip *
-ges_track_object_get_clip          (GESTrackObject* object);
-
-GstElement * ges_track_object_get_gnlobject   (GESTrackObject * object);
-
-GstElement * ges_track_object_get_element     (GESTrackObject * object);
-
-void ges_track_object_set_locked              (GESTrackObject * object,
-                                               gboolean locked);
-
-gboolean ges_track_object_is_locked           (GESTrackObject * object);
-
-gboolean ges_track_object_set_active          (GESTrackObject * object,
-                                               gboolean active);
-
-gboolean ges_track_object_is_active           (GESTrackObject * object);
-
-GParamSpec **
-ges_track_object_list_children_properties     (GESTrackObject *object,
-                                               guint *n_properties);
-
-gboolean ges_track_object_lookup_child        (GESTrackObject *object,
-                                               const gchar *prop_name,
-                                               GstElement **element,
-                                               GParamSpec **pspec);
-
-void
-ges_track_object_get_child_property_by_pspec (GESTrackObject * object,
-                                              GParamSpec * pspec,
-                                              GValue * value);
-
-void
-ges_track_object_get_child_property_valist   (GESTrackObject * object,
-                                              const gchar * first_property_name,
-                                              va_list var_args);
-
-void ges_track_object_get_child_properties   (GESTrackObject *object,
-                                              const gchar * first_property_name,
-                                              ...) G_GNUC_NULL_TERMINATED;
-
-void
-ges_track_object_set_child_property_valist   (GESTrackObject * object,
-                                              const gchar * first_property_name,
-                                              va_list var_args);
-
-void
-ges_track_object_set_child_property_by_pspec (GESTrackObject * object,
-                                              GParamSpec * pspec,
-                                              GValue * value);
-
-void ges_track_object_set_child_properties   (GESTrackObject * object,
-                                              const gchar * first_property_name,
-                                              ...) G_GNUC_NULL_TERMINATED;
-
-gboolean ges_track_object_set_child_property (GESTrackObject *object,
-                                              const gchar *property_name,
-                                              GValue * value);
-
-gboolean ges_track_object_get_child_property (GESTrackObject *object,
-                                              const gchar *property_name,
-                                              GValue * value);
-
-gboolean
-ges_track_object_edit                        (GESTrackObject * object,
-                                              GList *layers, GESEditMode mode,
-                                              GESEdge edge, guint64 position);
-
-G_END_DECLS
-#endif /* _GES_TRACK_OBJECT */
index 5e654af0dcdba5a2f5054ebd63b200ffeb36d0f4..072493b4e2fa744aa03d9e763d923d281f468a22 100644 (file)
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-operation.h"
 
 G_DEFINE_ABSTRACT_TYPE (GESTrackOperation, ges_track_operation,
-    GES_TYPE_TRACK_OBJECT);
+    GES_TYPE_TRACK_ELEMENT);
 
 struct _GESTrackOperationPrivate
 {
@@ -39,7 +39,7 @@ struct _GESTrackOperationPrivate
 static void
 ges_track_operation_class_init (GESTrackOperationClass * klass)
 {
-  GESTrackObjectClass *track_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *track_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackOperationPrivate));
 
index 27fad92a71d3b32c57203e0849f3de63d45e95bf..0a5f7435cdc2ddad4d6113e06f989e5148c55123 100644 (file)
@@ -24,7 +24,7 @@
 #include <glib-object.h>
 #include <gst/gst.h>
 #include <ges/ges-types.h>
-#include <ges/ges-track-object.h>
+#include <ges/ges-track-element.h>
 
 G_BEGIN_DECLS
 
@@ -55,7 +55,7 @@ typedef struct _GESTrackOperationPrivate GESTrackOperationPrivate;
 
 struct _GESTrackOperation {
   /*< private >*/
-  GESTrackObject parent;
+  GESTrackElement parent;
 
   GESTrackOperationPrivate *priv;
 
@@ -69,7 +69,7 @@ struct _GESTrackOperation {
 
 struct _GESTrackOperationClass {
   /*< private >*/
-  GESTrackObjectClass parent_class;
+  GESTrackElementClass parent_class;
 
   /*< private >*/
   /* Padding for API extension */
index 0e5185399870fbde4bdc1035599e13f3046bad9d..0e7d278f8beb1e0dda9b10d34565603fbe5cf11c 100644 (file)
@@ -25,7 +25,7 @@
 
 #include "ges-internal.h"
 #include "ges-extractable.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-effect.h"
 #include "ges-track-parse-launch-effect.h"
 
@@ -38,7 +38,7 @@ G_DEFINE_TYPE_WITH_CODE (GESTrackParseLaunchEffect,
 
 static void ges_track_parse_launch_effect_dispose (GObject * object);
 static void ges_track_parse_launch_effect_finalize (GObject * object);
-static GstElement *ges_track_parse_launch_effect_create_element (GESTrackObject
+static GstElement *ges_track_parse_launch_effect_create_element (GESTrackElement
     * self);
 
 struct _GESTrackParseLaunchEffectPrivate
@@ -128,10 +128,10 @@ ges_track_parse_launch_effect_class_init (GESTrackParseLaunchEffectClass *
     klass)
 {
   GObjectClass *object_class;
-  GESTrackObjectClass *obj_bg_class;
+  GESTrackElementClass *obj_bg_class;
 
   object_class = G_OBJECT_CLASS (klass);
-  obj_bg_class = GES_TRACK_OBJECT_CLASS (klass);
+  obj_bg_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackParseLaunchEffectPrivate));
 
@@ -184,14 +184,14 @@ ges_track_parse_launch_effect_finalize (GObject * object)
 }
 
 static GstElement *
-ges_track_parse_launch_effect_create_element (GESTrackObject * object)
+ges_track_parse_launch_effect_create_element (GESTrackElement * object)
 {
   GstElement *effect;
   gchar *bin_desc;
 
   GError *error = NULL;
   GESTrackParseLaunchEffect *self = GES_TRACK_PARSE_LAUNCH_EFFECT (object);
-  GESTrack *track = ges_track_object_get_track (object);
+  GESTrack *track = ges_track_element_get_track (object);
 
   if (!track) {
     GST_WARNING
index becba808ce8e47bc83ec739dab93515f62d4fc15..7c9ef867d88c873602cfc66ae5b478cfb9d11023 100644 (file)
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-source.h"
 
-G_DEFINE_TYPE (GESTrackSource, ges_track_source, GES_TYPE_TRACK_OBJECT);
+G_DEFINE_TYPE (GESTrackSource, ges_track_source, GES_TYPE_TRACK_ELEMENT);
 
 struct _GESTrackSourcePrivate
 {
@@ -38,7 +38,7 @@ struct _GESTrackSourcePrivate
 static void
 ges_track_source_class_init (GESTrackSourceClass * klass)
 {
-  GESTrackObjectClass *track_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *track_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackSourcePrivate));
 
index b86cc3053734309fd9399a14a94e4f8ec52e4c02..54985650bba61f8839dbca89ba4f412a62477ed5 100644 (file)
@@ -24,7 +24,7 @@
 #include <glib-object.h>
 #include <gst/gst.h>
 #include <ges/ges-types.h>
-#include <ges/ges-track-object.h>
+#include <ges/ges-track-element.h>
 
 G_BEGIN_DECLS
 
@@ -55,7 +55,7 @@ typedef struct _GESTrackSourcePrivate GESTrackSourcePrivate;
 
 struct _GESTrackSource {
   /*< private >*/
-  GESTrackObject parent;
+  GESTrackElement parent;
 
   GESTrackSourcePrivate *priv;
 
@@ -69,7 +69,7 @@ struct _GESTrackSource {
 
 struct _GESTrackSourceClass {
   /*< private >*/
-  GESTrackObjectClass parent_class;
+  GESTrackElementClass parent_class;
 
   /*< private >*/
   /* Padding for API extension */
index d79de30159a6bd12181551e6a44b9b3ff89428a1..ab145c8d6c0ad6deb8842e8b42ed9e460a83b3a0 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-title-source.h"
 #include "ges-track-text-overlay.h"
 
@@ -60,14 +60,14 @@ static void ges_track_text_overlay_get_property (GObject * object, guint
 static void ges_track_text_overlay_set_property (GObject * object, guint
     property_id, const GValue * value, GParamSpec * pspec);
 
-static GstElement *ges_track_text_overlay_create_element (GESTrackObject
+static GstElement *ges_track_text_overlay_create_element (GESTrackElement
     * self);
 
 static void
 ges_track_text_overlay_class_init (GESTrackTextOverlayClass * klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GESTrackObjectClass *bg_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *bg_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackTextOverlayPrivate));
 
@@ -142,7 +142,7 @@ ges_track_text_overlay_set_property (GObject * object,
 }
 
 static GstElement *
-ges_track_text_overlay_create_element (GESTrackObject * object)
+ges_track_text_overlay_create_element (GESTrackElement * object)
 {
   GstElement *ret, *text, *iconv, *oconv;
   GstPad *src_target, *sink_target;
index 49cfa068e4bb4bc5de2b426d2dae9ba126b7c147..412119727a9252a39edafb29af4ec19d526fbbee 100644 (file)
@@ -25,7 +25,7 @@
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-title-source.h"
 #include "ges-track-video-test-source.h"
 
@@ -59,14 +59,14 @@ static void ges_track_title_source_get_property (GObject * object, guint
 static void ges_track_title_source_set_property (GObject * object, guint
     property_id, const GValue * value, GParamSpec * pspec);
 
-static GstElement *ges_track_title_source_create_element (GESTrackObject *
+static GstElement *ges_track_title_source_create_element (GESTrackElement *
     self);
 
 static void
 ges_track_title_source_class_init (GESTrackTitleSourceClass * klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GESTrackObjectClass *bg_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *bg_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackTitleSourcePrivate));
 
@@ -141,7 +141,7 @@ ges_track_title_source_set_property (GObject * object,
 }
 
 static GstElement *
-ges_track_title_source_create_element (GESTrackObject * object)
+ges_track_title_source_create_element (GESTrackElement * object)
 {
   GESTrackTitleSource *self = GES_TRACK_TITLE_SOURCE (object);
   GESTrackTitleSourcePrivate *priv = self->priv;
index bba3a9b54cefac62ef001325f80357d2c81d83b3..037182fda341cd512b3f64b788d5e5626b07c4ce 100644 (file)
@@ -24,7 +24,7 @@
  */
 
 #include "ges-internal.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-track-video-test-source.h"
 
 G_DEFINE_TYPE (GESTrackVideoTestSource, ges_track_video_test_source,
@@ -35,17 +35,17 @@ struct _GESTrackVideoTestSourcePrivate
   GESVideoTestPattern pattern;
 };
 
-static GstElement *ges_track_video_test_source_create_element (GESTrackObject *
+static GstElement *ges_track_video_test_source_create_element (GESTrackElement *
     self);
 
 static void
 ges_track_video_test_source_class_init (GESTrackVideoTestSourceClass * klass)
 {
-  GESTrackObjectClass *track_object_class = GES_TRACK_OBJECT_CLASS (klass);
+  GESTrackElementClass *track_element_class = GES_TRACK_ELEMENT_CLASS (klass);
 
   g_type_class_add_private (klass, sizeof (GESTrackVideoTestSourcePrivate));
 
-  track_object_class->create_element =
+  track_element_class->create_element =
       ges_track_video_test_source_create_element;
 }
 
@@ -59,7 +59,7 @@ ges_track_video_test_source_init (GESTrackVideoTestSource * self)
 }
 
 static GstElement *
-ges_track_video_test_source_create_element (GESTrackObject * self)
+ges_track_video_test_source_create_element (GESTrackElement * self)
 {
   GstElement *ret;
   gint pattern;
@@ -83,7 +83,8 @@ void
 ges_track_video_test_source_set_pattern (GESTrackVideoTestSource
     * self, GESVideoTestPattern pattern)
 {
-  GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
+  GstElement *element =
+      ges_track_element_get_element (GES_TRACK_ELEMENT (self));
 
   self->priv->pattern = pattern;
 
index 8e356da28af37c0ad39e28f345c13c6125340383..65a6641907632c3987fd5628d48290fc3141bcc1 100644 (file)
@@ -89,10 +89,10 @@ static GObject *link_element_to_mixer_with_smpte (GstBin * bin,
     GstElement ** smpteref);
 
 static void
-ges_track_video_transition_duration_changed (GESTrackObject * self,
+ges_track_video_transition_duration_changed (GESTrackElement * self,
     guint64 duration);
 
-static GstElement *ges_track_video_transition_create_element (GESTrackObject
+static GstElement *ges_track_video_transition_create_element (GESTrackElement
     * self);
 
 static void ges_track_video_transition_dispose (GObject * object);
@@ -109,7 +109,7 @@ static void
 ges_track_video_transition_class_init (GESTrackVideoTransitionClass * klass)
 {
   GObjectClass *object_class;
-  GESTrackObjectClass *toclass;
+  GESTrackElementClass *toclass;
 
   g_type_class_add_private (klass, sizeof (GESTrackVideoTransitionPrivate));
 
@@ -157,7 +157,7 @@ ges_track_video_transition_class_init (GESTrackVideoTransitionClass * klass)
   g_object_class_install_property (object_class, PROP_INVERT,
       properties[PROP_INVERT]);
 
-  toclass = GES_TRACK_OBJECT_CLASS (klass);
+  toclass = GES_TRACK_ELEMENT_CLASS (klass);
   toclass->duration_changed = ges_track_video_transition_duration_changed;
   toclass->create_element = ges_track_video_transition_create_element;
 }
@@ -333,7 +333,7 @@ set_interpolation (GstObject * element, GESTrackVideoTransitionPrivate * priv,
 }
 
 static GstElement *
-ges_track_video_transition_create_element (GESTrackObject * object)
+ges_track_video_transition_create_element (GESTrackElement * object)
 {
   GstElement *topbin, *iconva, *iconvb, *scalea, *scaleb, *capsfilt, *oconv;
   GstObject *target = NULL;
@@ -507,7 +507,7 @@ switch_to_smpte_cb (GstPad * sink, gboolean blocked,
   priv->end_value = 0.0;
 
   set_interpolation (GST_OBJECT (smptealphab), priv, (gchar *) "position");
-  ges_track_video_transition_duration_changed (GES_TRACK_OBJECT (transition),
+  ges_track_video_transition_duration_changed (GES_TRACK_ELEMENT (transition),
       priv->dur);
 
 
@@ -585,7 +585,7 @@ switch_to_crossfade_cb (GstPad * sink, gboolean blocked,
   priv->start_value = 0.0;
   priv->end_value = 1.0;
   set_interpolation (GST_OBJECT (priv->sinkb), priv, (gchar *) "alpha");
-  ges_track_video_transition_duration_changed (GES_TRACK_OBJECT (transition),
+  ges_track_video_transition_duration_changed (GES_TRACK_ELEMENT (transition),
       priv->dur);
 
   priv->smpte = NULL;
@@ -642,10 +642,10 @@ link_element_to_mixer_with_smpte (GstBin * bin, GstElement * element,
 }
 
 static void
-ges_track_video_transition_duration_changed (GESTrackObject * object,
+ges_track_video_transition_duration_changed (GESTrackElement * object,
     guint64 duration)
 {
-  GstElement *gnlobj = ges_track_object_get_gnlobject (object);
+  GstElement *gnlobj = ges_track_element_get_gnlobject (object);
   GESTrackVideoTransition *self = GES_TRACK_VIDEO_TRANSITION (object);
   GESTrackVideoTransitionPrivate *priv = self->priv;
   GstTimedValueControlSource *ts;
index 01e037e90b402eab58f68cf509bc631d119951f8..3d87c4e2c08001d9e52a722beceb7bd93be69286 100644 (file)
  *
  * Corresponds to one output format (i.e. audio OR video).
  *
- * Contains the compatible TrackObject(s).
+ * Contains the compatible TrackElement(s).
  *
  * Wraps GNonLin's 'gnlcomposition' element.
  */
 
 #include "ges-internal.h"
 #include "ges-track.h"
-#include "ges-track-object.h"
+#include "ges-track-element.h"
 #include "ges-meta-container.h"
 
 G_DEFINE_TYPE_WITH_CODE (GESTrack, ges_track, GST_TYPE_BIN,
@@ -52,8 +52,8 @@ struct _GESTrackPrivate
 {
   /*< private > */
   GESTimeline *timeline;
-  GSequence *tckobjs_by_start;
-  GHashTable *tckobjs_iter;
+  GSequence *trackelements_by_start;
+  GHashTable *trackelements_iter;
   GList *gaps;
 
   guint64 duration;
@@ -76,8 +76,8 @@ enum
   ARG_TYPE,
   ARG_DURATION,
   ARG_LAST,
-  TRACK_OBJECT_ADDED,
-  TRACK_OBJECT_REMOVED,
+  TRACK_ELEMENT_ADDED,
+  TRACK_ELEMENT_REMOVED,
   LAST_SIGNAL
 };
 
@@ -93,10 +93,10 @@ static void composition_duration_cb (GstElement * composition, GParamSpec * arg
 
 /* Private methods/functions/callbacks */
 static void
-add_trackobj_to_list_foreach (GESTrackObject * trackobj, GList ** list)
+add_trackelement_to_list_foreach (GESTrackElement * trackelement, GList ** list)
 {
-  g_object_ref (trackobj);
-  *list = g_list_prepend (*list, trackobj);
+  g_object_ref (trackelement);
+  *list = g_list_prepend (*list, trackelement);
 }
 
 static Gap *
@@ -172,7 +172,7 @@ update_gaps (GESTrack * track)
   Gap *gap;
   GSequenceIter *it;
 
-  GESTrackObject *tckobj;
+  GESTrackElement *trackelement;
   GstClockTime start, end, duration = 0, timeline_duration;
 
   GESTrackPrivate *priv = track->priv;
@@ -188,12 +188,12 @@ update_gaps (GESTrack * track)
   priv->gaps = NULL;
 
   /* 2- And recalculate gaps */
-  for (it = g_sequence_get_begin_iter (priv->tckobjs_by_start);
+  for (it = g_sequence_get_begin_iter (priv->trackelements_by_start);
       g_sequence_iter_is_end (it) == FALSE; it = g_sequence_iter_next (it)) {
-    tckobj = g_sequence_get (it);
+    trackelement = g_sequence_get (it);
 
-    start = _START (tckobj);
-    end = start + _DURATION (tckobj);
+    start = _START (trackelement);
+    end = start + _DURATION (trackelement);
 
     if (start > duration) {
       /* 3- Fill gap */
@@ -226,7 +226,7 @@ update_gaps (GESTrack * track)
 static inline void
 resort_and_fill_gaps (GESTrack * track)
 {
-  g_sequence_sort (track->priv->tckobjs_by_start,
+  g_sequence_sort (track->priv->trackelements_by_start,
       (GCompareDataFunc) element_start_compare, NULL);
 
   if (track->priv->updating == TRUE) {
@@ -254,7 +254,7 @@ timeline_duration_changed_cb (GESTimeline * timeline,
 }
 
 static void
-sort_track_objects_cb (GESTrackObject * child,
+sort_track_elements_cb (GESTrackElement * child,
     GParamSpec * arg G_GNUC_UNUSED, GESTrack * track)
 {
   resort_and_fill_gaps (track);
@@ -338,7 +338,7 @@ create_element_for_raw_video_gap (GESTrack * track)
  * accessing it
  */
 static gboolean
-remove_object_internal (GESTrack * track, GESTrackObject * object)
+remove_object_internal (GESTrack * track, GESTrackElement * object)
 {
   GESTrackPrivate *priv;
   GstElement *gnlobject;
@@ -347,12 +347,12 @@ remove_object_internal (GESTrack * track, GESTrackObject * object)
 
   priv = track->priv;
 
-  if (G_UNLIKELY (ges_track_object_get_track (object) != track)) {
+  if (G_UNLIKELY (ges_track_element_get_track (object) != track)) {
     GST_WARNING ("Object belongs to another track");
     return FALSE;
   }
 
-  if ((gnlobject = ges_track_object_get_gnlobject (object))) {
+  if ((gnlobject = ges_track_element_get_gnlobject (object))) {
     GST_DEBUG ("Removing GnlObject '%s' from composition '%s'",
         GST_ELEMENT_NAME (gnlobject), GST_ELEMENT_NAME (priv->composition));
 
@@ -364,12 +364,12 @@ remove_object_internal (GESTrack * track, GESTrackObject * object)
     gst_element_set_state (gnlobject, GST_STATE_NULL);
   }
 
-  g_signal_handlers_disconnect_by_func (object, sort_track_objects_cb, NULL);
+  g_signal_handlers_disconnect_by_func (object, sort_track_elements_cb, NULL);
 
-  ges_track_object_set_track (object, NULL);
+  ges_track_element_set_track (object, NULL);
 
-  g_signal_emit (track, ges_track_signals[TRACK_OBJECT_REMOVED], 0,
-      GES_TRACK_OBJECT (object));
+  g_signal_emit (track, ges_track_signals[TRACK_ELEMENT_REMOVED], 0,
+      GES_TRACK_ELEMENT (object));
 
   g_object_unref (object);
 
@@ -377,14 +377,14 @@ remove_object_internal (GESTrack * track, GESTrackObject * object)
 }
 
 static void
-dispose_tckobjs_foreach (GESTrackObject * tckobj, GESTrack * track)
+dispose_trackelements_foreach (GESTrackElement * trackelement, GESTrack * track)
 {
   GESClip *clip;
 
-  clip = ges_track_object_get_clip (tckobj);
+  clip = ges_track_element_get_clip (trackelement);
 
-  remove_object_internal (track, tckobj);
-  ges_clip_release_track_object (clip, tckobj);
+  remove_object_internal (track, trackelement);
+  ges_clip_release_track_element (clip, trackelement);
 }
 
 /* GObject virtual methods */
@@ -433,11 +433,11 @@ ges_track_dispose (GObject * object)
   GESTrack *track = (GESTrack *) object;
   GESTrackPrivate *priv = track->priv;
 
-  /* Remove all TrackObjects and drop our reference */
-  g_hash_table_unref (priv->tckobjs_iter);
-  g_sequence_foreach (track->priv->tckobjs_by_start,
-      (GFunc) dispose_tckobjs_foreach, track);
-  g_sequence_free (priv->tckobjs_by_start);
+  /* Remove all TrackElements and drop our reference */
+  g_hash_table_unref (priv->trackelements_iter);
+  g_sequence_foreach (track->priv->trackelements_by_start,
+      (GFunc) dispose_trackelements_foreach, track);
+  g_sequence_free (priv->trackelements_by_start);
   g_list_free_full (priv->gaps, (GDestroyNotify) free_gap);
 
   if (priv->composition) {
@@ -518,30 +518,30 @@ ges_track_class_init (GESTrackClass * klass)
   /**
    * GESTrack::track-object-added:
    * @object: the #GESTrack
-   * @effect: the #GESTrackObject that was added.
+   * @effect: the #GESTrackElement that was added.
    *
    * Will be emitted after a track object was added to the track.
    *
    * Since: 0.10.2
    */
-  ges_track_signals[TRACK_OBJECT_ADDED] =
+  ges_track_signals[TRACK_ELEMENT_ADDED] =
       g_signal_new ("track-object-added", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_generic,
-      G_TYPE_NONE, 1, GES_TYPE_TRACK_OBJECT);
+      G_TYPE_NONE, 1, GES_TYPE_TRACK_ELEMENT);
 
   /**
    * GESTrack::track-object-removed:
    * @object: the #GESTrack
-   * @effect: the #GESTrackObject that was removed.
+   * @effect: the #GESTrackElement that was removed.
    *
    * Will be emitted after a track object was removed from the track.
    *
    * Since: 0.10.2
    */
-  ges_track_signals[TRACK_OBJECT_REMOVED] =
+  ges_track_signals[TRACK_ELEMENT_REMOVED] =
       g_signal_new ("track-object-removed", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_FIRST, 0, NULL, NULL, g_cclosure_marshal_generic,
-      G_TYPE_NONE, 1, GES_TYPE_TRACK_OBJECT);
+      G_TYPE_NONE, 1, GES_TYPE_TRACK_ELEMENT);
 }
 
 static void
@@ -552,8 +552,9 @@ ges_track_init (GESTrack * self)
 
   self->priv->composition = gst_element_factory_make ("gnlcomposition", NULL);
   self->priv->updating = TRUE;
-  self->priv->tckobjs_by_start = g_sequence_new (NULL);
-  self->priv->tckobjs_iter = g_hash_table_new (g_direct_hash, g_direct_equal);
+  self->priv->trackelements_by_start = g_sequence_new (NULL);
+  self->priv->trackelements_iter =
+      g_hash_table_new (g_direct_hash, g_direct_equal);
   self->priv->create_element_for_gaps = NULL;
   self->priv->gaps = NULL;
 
@@ -702,13 +703,13 @@ ges_track_set_caps (GESTrack * track, const GstCaps * caps)
   priv->caps = gst_caps_copy (caps);
 
   g_object_set (priv->composition, "caps", caps, NULL);
-  /* FIXME : update all trackobjects ? */
+  /* FIXME : update all trackelements ? */
 }
 
 /**
  * ges_track_add_object:
  * @track: a #GESTrack
- * @object: (transfer full): the #GESTrackObject to add
+ * @object: (transfer full): the #GESTrackElement to add
  *
  * Adds the given object to the track. Sets the object's controlling track,
  * and thus takes ownership of the @object.
@@ -719,49 +720,49 @@ ges_track_set_caps (GESTrack * track, const GstCaps * caps)
  * want to accept the object.
  */
 gboolean
-ges_track_add_object (GESTrack * track, GESTrackObject * object)
+ges_track_add_object (GESTrack * track, GESTrackElement * object)
 {
   g_return_val_if_fail (GES_IS_TRACK (track), FALSE);
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
 
   GST_DEBUG ("track:%p, object:%p", track, object);
 
-  if (G_UNLIKELY (ges_track_object_get_track (object) != NULL)) {
+  if (G_UNLIKELY (ges_track_element_get_track (object) != NULL)) {
     GST_WARNING ("Object already belongs to another track");
     return FALSE;
   }
 
-  if (G_UNLIKELY (!ges_track_object_set_track (object, track))) {
+  if (G_UNLIKELY (!ges_track_element_set_track (object, track))) {
     GST_ERROR ("Couldn't properly add the object to the Track");
     return FALSE;
   }
 
   GST_DEBUG ("Adding object %s to ourself %s",
-      GST_OBJECT_NAME (ges_track_object_get_gnlobject (object)),
+      GST_OBJECT_NAME (ges_track_element_get_gnlobject (object)),
       GST_OBJECT_NAME (track->priv->composition));
 
   if (G_UNLIKELY (!gst_bin_add (GST_BIN (track->priv->composition),
-              ges_track_object_get_gnlobject (object)))) {
+              ges_track_element_get_gnlobject (object)))) {
     GST_WARNING ("Couldn't add object to the GnlComposition");
     return FALSE;
   }
 
   g_object_ref_sink (object);
-  g_hash_table_insert (track->priv->tckobjs_iter, object,
-      g_sequence_insert_sorted (track->priv->tckobjs_by_start, object,
+  g_hash_table_insert (track->priv->trackelements_iter, object,
+      g_sequence_insert_sorted (track->priv->trackelements_by_start, object,
           (GCompareDataFunc) element_start_compare, NULL));
 
-  g_signal_emit (track, ges_track_signals[TRACK_OBJECT_ADDED], 0,
-      GES_TRACK_OBJECT (object));
+  g_signal_emit (track, ges_track_signals[TRACK_ELEMENT_ADDED], 0,
+      GES_TRACK_ELEMENT (object));
 
-  g_signal_connect (GES_TRACK_OBJECT (object), "notify::start",
-      G_CALLBACK (sort_track_objects_cb), track);
+  g_signal_connect (GES_TRACK_ELEMENT (object), "notify::start",
+      G_CALLBACK (sort_track_elements_cb), track);
 
-  g_signal_connect (GES_TRACK_OBJECT (object), "notify::duration",
-      G_CALLBACK (sort_track_objects_cb), track);
+  g_signal_connect (GES_TRACK_ELEMENT (object), "notify::duration",
+      G_CALLBACK (sort_track_elements_cb), track);
 
-  g_signal_connect (GES_TRACK_OBJECT (object), "notify::priority",
-      G_CALLBACK (sort_track_objects_cb), track);
+  g_signal_connect (GES_TRACK_ELEMENT (object), "notify::priority",
+      G_CALLBACK (sort_track_elements_cb), track);
 
   resort_and_fill_gaps (track);
 
@@ -772,10 +773,10 @@ ges_track_add_object (GESTrack * track, GESTrackObject * object)
  * ges_track_get_objects:
  * @track: a #GESTrack
  *
- * Gets the #GESTrackObject contained in @track
+ * Gets the #GESTrackElement contained in @track
  *
- * Returns: (transfer full) (element-type GESTrackObject): the list of
- * #GESTrackObject present in the Track sorted by priority and start.
+ * Returns: (transfer full) (element-type GESTrackElement): the list of
+ * #GESTrackElement present in the Track sorted by priority and start.
  */
 GList *
 ges_track_get_objects (GESTrack * track)
@@ -784,8 +785,8 @@ ges_track_get_objects (GESTrack * track)
 
   g_return_val_if_fail (GES_IS_TRACK (track), NULL);
 
-  g_sequence_foreach (track->priv->tckobjs_by_start,
-      (GFunc) add_trackobj_to_list_foreach, &ret);
+  g_sequence_foreach (track->priv->trackelements_by_start,
+      (GFunc) add_trackelement_to_list_foreach, &ret);
 
   ret = g_list_reverse (ret);
   return ret;
@@ -794,7 +795,7 @@ ges_track_get_objects (GESTrack * track)
 /**
  * ges_track_remove_object:
  * @track: a #GESTrack
- * @object: the #GESTrackObject to remove
+ * @object: the #GESTrackElement to remove
  *
  * Removes the object from the track and unparents it.
  * Unparenting it means the reference owned by @track on the @object will be
@@ -805,18 +806,18 @@ ges_track_get_objects (GESTrack * track)
  * could not remove the object (like if it didn't belong to the track).
  */
 gboolean
-ges_track_remove_object (GESTrack * track, GESTrackObject * object)
+ges_track_remove_object (GESTrack * track, GESTrackElement * object)
 {
   GSequenceIter *it;
   GESTrackPrivate *priv;
 
   g_return_val_if_fail (GES_IS_TRACK (track), FALSE);
-  g_return_val_if_fail (GES_IS_TRACK_OBJECT (object), FALSE);
+  g_return_val_if_fail (GES_IS_TRACK_ELEMENT (object), FALSE);
 
   priv = track->priv;
 
   if (remove_object_internal (track, object) == TRUE) {
-    it = g_hash_table_lookup (priv->tckobjs_iter, object);
+    it = g_hash_table_lookup (priv->trackelements_iter, object);
     g_sequence_remove (it);
 
     resort_and_fill_gaps (track);
index d81bf320c4b2db27a08a6cafb342ddc1b85ea587..bcbe5baedce359141511bfc1fe8fe736cd99a967 100644 (file)
@@ -106,10 +106,10 @@ const GstCaps * ges_track_get_caps        (GESTrack *track);
 const GESTimeline *ges_track_get_timeline (GESTrack *track);
 
 gboolean ges_track_add_object             (GESTrack * track,
-                                           GESTrackObject * object);
+                                           GESTrackElement * object);
 
 gboolean ges_track_remove_object          (GESTrack * track,
-                                           GESTrackObject * object);
+                                           GESTrackElement * object);
 
 GESTrack *ges_track_video_raw_new         (void);
 GESTrack *ges_track_audio_raw_new         (void);
index 0e52c8895c0512f9ccf460fb3a2e59ca6d125dda..71521680b440f70dda4534df303431651c731652 100644 (file)
@@ -56,13 +56,13 @@ enum
   PROP_VTYPE = 5,
 };
 
-static GESTrackObject *ges_tl_transition_create_track_object (GESClip
+static GESTrackElement *ges_tl_transition_create_track_element (GESClip
     * self, GESTrackType type);
 static void
-ges_transition_clip_track_object_added (GESClip * obj, GESTrackObject * tckobj);
-static void
-ges_transition_clip_track_object_released (GESClip * obj,
-    GESTrackObject * tckobj);
+ges_transition_clip_track_element_added (GESClip * obj,
+    GESTrackElement * trackelement);
+static void ges_transition_clip_track_element_released (GESClip * obj,
+    GESTrackElement * trackelement);
 
 /* Internal methods */
 static void
@@ -249,11 +249,11 @@ ges_transition_clip_class_init (GESTransitionClipClass * klass)
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
 
-  timobj_class->create_track_object = ges_tl_transition_create_track_object;
+  timobj_class->create_track_element = ges_tl_transition_create_track_element;
   timobj_class->need_fill_track = FALSE;
-  timobj_class->track_object_added = ges_transition_clip_track_object_added;
-  timobj_class->track_object_released =
-      ges_transition_clip_track_object_released;
+  timobj_class->track_element_added = ges_transition_clip_track_element_added;
+  timobj_class->track_element_released =
+      ges_transition_clip_track_element_released;
 }
 
 static void
@@ -268,37 +268,40 @@ ges_transition_clip_init (GESTransitionClip * self)
 }
 
 static void
-ges_transition_clip_track_object_released (GESClip * obj,
-    GESTrackObject * tckobj)
+ges_transition_clip_track_element_released (GESClip * obj,
+    GESTrackElement * trackelement)
 {
   GESTransitionClipPrivate *priv = GES_TRANSITION_CLIP (obj)->priv;
 
-  /* If this is called, we should be sure the tckobj exists */
-  if (GES_IS_TRACK_VIDEO_TRANSITION (tckobj)) {
-    GST_DEBUG ("GESTrackVideoTransition %p released from %p", tckobj, obj);
+  /* If this is called, we should be sure the trackelement exists */
+  if (GES_IS_TRACK_VIDEO_TRANSITION (trackelement)) {
+    GST_DEBUG ("GESTrackVideoTransition %p released from %p", trackelement,
+        obj);
     priv->track_video_transitions =
-        g_slist_remove (priv->track_video_transitions, tckobj);
-    g_object_unref (tckobj);
+        g_slist_remove (priv->track_video_transitions, trackelement);
+    g_object_unref (trackelement);
   }
 }
 
 static void
-ges_transition_clip_track_object_added (GESClip * obj, GESTrackObject * tckobj)
+ges_transition_clip_track_element_added (GESClip * obj,
+    GESTrackElement * trackelement)
 {
   GESTransitionClipPrivate *priv = GES_TRANSITION_CLIP (obj)->priv;
 
-  if (GES_IS_TRACK_VIDEO_TRANSITION (tckobj)) {
-    GST_DEBUG ("GESTrackVideoTransition %p added to %p", tckobj, obj);
+  if (GES_IS_TRACK_VIDEO_TRANSITION (trackelement)) {
+    GST_DEBUG ("GESTrackVideoTransition %p added to %p", trackelement, obj);
     priv->track_video_transitions =
-        g_slist_prepend (priv->track_video_transitions, g_object_ref (tckobj));
+        g_slist_prepend (priv->track_video_transitions,
+        g_object_ref (trackelement));
   }
 }
 
-static GESTrackObject *
-ges_tl_transition_create_track_object (GESClip * obj, GESTrackType type)
+static GESTrackElement *
+ges_tl_transition_create_track_element (GESClip * obj, GESTrackType type)
 {
   GESTransitionClip *transition = (GESTransitionClip *) obj;
-  GESTrackObject *res = NULL;
+  GESTrackElement *res = NULL;
   GESTrackType supportedformats;
 
   GST_DEBUG ("Creating a GESTrackTransition");
@@ -312,7 +315,7 @@ ges_tl_transition_create_track_object (GESClip * obj, GESTrackType type)
       trans = ges_track_video_transition_new ();
       ges_track_video_transition_set_transition_type (trans, transition->vtype);
 
-      res = GES_TRACK_OBJECT (trans);
+      res = GES_TRACK_ELEMENT (trans);
     } else {
       GST_DEBUG ("Not creating transition as video track not on"
           " supportedformats");
@@ -322,7 +325,7 @@ ges_tl_transition_create_track_object (GESClip * obj, GESTrackType type)
 
     if (supportedformats == GES_TRACK_TYPE_UNKNOWN ||
         supportedformats & GES_TRACK_TYPE_AUDIO)
-      res = GES_TRACK_OBJECT (ges_track_audio_transition_new ());
+      res = GES_TRACK_ELEMENT (ges_track_audio_transition_new ());
     else
       GST_DEBUG ("Not creating transition as audio track"
           " not on supportedformats");
index 24240eacef919170376e2cc5eb5a81bcdd4f50a5..f0ad227d048d10db39df85347307346fc76cb0b2 100644 (file)
@@ -86,8 +86,8 @@ typedef struct _GESEffectClipClass GESEffectClipClass;
 typedef struct _GESTrack GESTrack;
 typedef struct _GESTrackClass GESTrackClass;
 
-typedef struct _GESTrackObject GESTrackObject;
-typedef struct _GESTrackObjectClass GESTrackObjectClass;
+typedef struct _GESTrackElement GESTrackElement;
+typedef struct _GESTrackElementClass GESTrackElementClass;
 
 typedef struct _GESTrackSource GESTrackSource;
 typedef struct _GESTrackSourceClass GESTrackSourceClass;
@@ -149,8 +149,8 @@ typedef struct _GESAssetClipClass GESAssetClipClass;
 typedef struct _GESUriClipAsset GESUriClipAsset;
 typedef struct _GESUriClipAssetClass GESUriClipAssetClass;
 
-typedef struct _GESAssetTrackObject GESAssetTrackObject;
-typedef struct _GESAssetTrackObjectClass GESAssetTrackObjectClass;
+typedef struct _GESAssetTrackElement GESAssetTrackElement;
+typedef struct _GESAssetTrackElementClass GESAssetTrackElementClass;
 
 typedef struct _GESAssetTrackFileSource GESAssetTrackFileSource;
 typedef struct _GESAssetTrackFileSourceClass GESAssetTrackFileSourceClass;
index 4c3d9063c13b861a748fca4f999a9cb8fd66231b..db866865e1808639e7e9effb87dc7597cb39570a 100644 (file)
@@ -247,7 +247,7 @@ _create_track_file_source_asset (GESUriClipAsset * asset,
   priv_tckasset->uri = ges_asset_get_id (GES_ASSET (asset));
   priv_tckasset->sinfo = g_object_ref (sinfo);
   priv_tckasset->parent_asset = asset;
-  ges_asset_track_object_set_track_type (GES_ASSET_TRACK_OBJECT
+  ges_asset_track_element_set_track_type (GES_ASSET_TRACK_ELEMENT
       (tck_filesource_asset), type);
 
   priv->asset_trackfilesources = g_list_append (priv->asset_trackfilesources,
@@ -470,12 +470,12 @@ ges_uri_clip_asset_get_stream_assets (GESUriClipAsset * self)
  */
 
 G_DEFINE_TYPE (GESAssetTrackFileSource, ges_asset_track_filesource,
-    GES_TYPE_ASSET_TRACK_OBJECT);
+    GES_TYPE_ASSET_TRACK_ELEMENT);
 
 static GESExtractable *
 _extract (GESAsset * asset, GError ** error)
 {
-  GESTrackObject *tckobj;
+  GESTrackElement *trackelement;
   GESAssetTrackFileSourcePrivate *priv =
       GES_ASSET_TRACK_FILESOURCE (asset)->priv;
 
@@ -491,10 +491,11 @@ _extract (GESAsset * asset, GError ** error)
     return NULL;
   }
 
-  tckobj = GES_TRACK_OBJECT (ges_track_filesource_new (g_strdup (priv->uri)));
-  ges_track_object_set_track_type (tckobj, priv->type);
+  trackelement =
+      GES_TRACK_ELEMENT (ges_track_filesource_new (g_strdup (priv->uri)));
+  ges_track_element_set_track_type (trackelement, priv->type);
 
-  return GES_EXTRACTABLE (tckobj);
+  return GES_EXTRACTABLE (trackelement);
 }
 
 static void
index 585ac7d177bf3357ec933ff5328b71dee94740b8..f631963f865f3243034b3222bdf6916ee6aa3084 100644 (file)
@@ -95,7 +95,7 @@ GType ges_asset_track_filesource_get_type (void);
 
 struct _GESAssetTrackFileSource
 {
-  GESAssetTrackObject parent;
+  GESAssetTrackElement parent;
 
   /* <private> */
   GESAssetTrackFileSourcePrivate *priv;
@@ -106,7 +106,7 @@ struct _GESAssetTrackFileSource
 
 struct _GESAssetTrackFileSourceClass
 {
-  GESAssetTrackObjectClass parent_class;
+  GESAssetTrackElementClass parent_class;
 
   gpointer _ges_reserved[GES_PADDING];
 };
index 95db7bbe869cd89a06b22774b41f3a96845a095c..b14df6958a4781059c51cfa278380869ecc281cb 100644 (file)
@@ -65,10 +65,10 @@ enum
 };
 
 
-static GList *ges_uri_clip_create_track_objects (GESClip *
+static GList *ges_uri_clip_create_track_elements (GESClip *
     obj, GESTrackType type);
-static GESTrackObject
-    * ges_uri_clip_create_track_object (GESClip * obj, GESTrackType type);
+static GESTrackElement
+    * ges_uri_clip_create_track_element (GESClip * obj, GESTrackType type);
 void ges_uri_clip_set_uri (GESUriClip * self, gchar * uri);
 
 gboolean
@@ -171,7 +171,7 @@ ges_uri_clip_class_init (GESUriClipClass * klass)
    * GESUriClip:is-image:
    *
    * Whether this filesource represents a still image or not. This must be set
-   * before create_track_objects is called.
+   * before create_track_elements is called.
    */
   g_object_class_install_property (object_class, PROP_IS_IMAGE,
       g_param_spec_boolean ("is-image", "Is still image",
@@ -188,8 +188,8 @@ ges_uri_clip_class_init (GESUriClipClass * klass)
 
   element_class->set_max_duration = filesource_set_max_duration;
 
-  timobj_class->create_track_objects = ges_uri_clip_create_track_objects;
-  timobj_class->create_track_object = ges_uri_clip_create_track_object;
+  timobj_class->create_track_elements = ges_uri_clip_create_track_elements;
+  timobj_class->create_track_element = ges_uri_clip_create_track_element;
   timobj_class->need_fill_track = FALSE;
 
 }
@@ -280,7 +280,7 @@ ges_uri_clip_init (GESUriClip * self)
 void
 ges_uri_clip_set_mute (GESUriClip * self, gboolean mute)
 {
-  GList *tmp, *trackobjects;
+  GList *tmp, *trackelements;
   GESClip *object = (GESClip *) self;
 
   GST_DEBUG ("self:%p, mute:%d", self, mute);
@@ -288,16 +288,17 @@ ges_uri_clip_set_mute (GESUriClip * self, gboolean mute)
   self->priv->mute = mute;
 
   /* Go over tracked objects, and update 'active' status on all audio objects */
-  trackobjects = ges_clip_get_track_objects (object);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
+  trackelements = ges_clip_get_track_elements (object);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
 
-    if (ges_track_object_get_track (trackobject)->type == GES_TRACK_TYPE_AUDIO)
-      ges_track_object_set_active (trackobject, !mute);
+    if (ges_track_element_get_track (trackelement)->type ==
+        GES_TRACK_TYPE_AUDIO)
+      ges_track_element_set_active (trackelement, !mute);
 
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 }
 
 gboolean
@@ -369,7 +370,7 @@ ges_uri_clip_get_uri (GESUriClip * self)
 }
 
 static GList *
-ges_uri_clip_create_track_objects (GESClip * obj, GESTrackType type)
+ges_uri_clip_create_track_elements (GESClip * obj, GESTrackType type)
 {
   GList *res = NULL;
   const GList *tmp, *stream_assets;
@@ -380,20 +381,20 @@ ges_uri_clip_create_track_objects (GESClip * obj, GESTrackType type)
       ges_uri_clip_asset_get_stream_assets (GES_URI_CLIP_ASSET
       (GES_TIMELINE_ELEMENT (obj)->asset));
   for (tmp = stream_assets; tmp; tmp = tmp->next) {
-    GESAssetTrackObject *asset = GES_ASSET_TRACK_OBJECT (tmp->data);
+    GESAssetTrackElement *asset = GES_ASSET_TRACK_ELEMENT (tmp->data);
 
-    if (ges_asset_track_object_get_track_type (asset) == type)
+    if (ges_asset_track_element_get_track_type (asset) == type)
       res = g_list_prepend (res, ges_asset_extract (GES_ASSET (asset), NULL));
   }
 
   return res;
 }
 
-static GESTrackObject *
-ges_uri_clip_create_track_object (GESClip * obj, GESTrackType type)
+static GESTrackElement *
+ges_uri_clip_create_track_element (GESClip * obj, GESTrackType type)
 {
   GESUriClipPrivate *priv = GES_URI_CLIP (obj)->priv;
-  GESTrackObject *res;
+  GESTrackElement *res;
 
   if (priv->is_image) {
     if (type != GES_TRACK_TYPE_VIDEO) {
@@ -401,22 +402,22 @@ ges_uri_clip_create_track_object (GESClip * obj, GESTrackType type)
       return NULL;
     } else {
       GST_DEBUG ("Creating a GESTrackImageSource");
-      res = (GESTrackObject *) ges_track_image_source_new (priv->uri);
+      res = (GESTrackElement *) ges_track_image_source_new (priv->uri);
     }
 
   } else {
     GST_DEBUG ("Creating a GESTrackFileSource");
 
     /* FIXME : Implement properly ! */
-    res = (GESTrackObject *) ges_track_filesource_new (priv->uri);
+    res = (GESTrackElement *) ges_track_filesource_new (priv->uri);
 
     /* If mute and track is audio, deactivate the track object */
     if (type == GES_TRACK_TYPE_AUDIO && priv->mute)
-      ges_track_object_set_active (res, FALSE);
+      ges_track_element_set_active (res, FALSE);
   }
 
   if (res)
-    ges_track_object_set_track_type (res, type);
+    ges_track_element_set_track_type (res, type);
 
   return res;
 }
@@ -445,12 +446,12 @@ void
 ges_uri_clip_set_uri (GESUriClip * self, gchar * uri)
 {
   GESClip *clip = GES_CLIP (self);
-  GList *tckobjs = ges_clip_get_track_objects (clip);
+  GList *trackelements = ges_clip_get_track_elements (clip);
 
-  if (tckobjs) {
+  if (trackelements) {
     /* FIXME handle this case properly */
     GST_WARNING_OBJECT (clip, "Can not change uri when already"
-        "containing TrackObjects");
+        "containing TrackElements");
 
     return;
   }
index 2a56adda1867fcea22ae15b7d91e795c356a3c18..7afab76c6b8f3b1ea46d8f4aba3951ba44a5af25 100644 (file)
@@ -555,7 +555,7 @@ _parse_effect (GMarkupParseContext * context, const gchar * element_name,
       goto wrong_properties;
   }
 
-  ges_base_xml_formatter_add_track_object (GES_BASE_XML_FORMATTER (self),
+  ges_base_xml_formatter_add_track_element (GES_BASE_XML_FORMATTER (self),
       type, asset_id, track_id, clip_id, children_props, props, metadatas,
       error);
 
@@ -768,7 +768,7 @@ _save_tracks (GString * str, GESTimeline * timeline)
 }
 
 static inline void
-_save_effect (GString * str, guint clip_id, GESTrackObject * tckobj,
+_save_effect (GString * str, guint clip_id, GESTrackElement * trackelement,
     GESTimeline * timeline)
 {
   GESTrack *tck;
@@ -778,9 +778,9 @@ _save_effect (GString * str, guint clip_id, GESTrackObject * tckobj,
   GParamSpec **pspecs, *spec;
   guint j, n_props = 0, track_id = 0;
 
-  tck = ges_track_object_get_track (tckobj);
+  tck = ges_track_element_get_track (trackelement);
   if (tck == NULL) {
-    GST_WARNING_OBJECT (tckobj, " Not in any track, can not save it");
+    GST_WARNING_OBJECT (trackelement, " Not in any track, can not save it");
 
     return;
   }
@@ -793,18 +793,20 @@ _save_effect (GString * str, guint clip_id, GESTrackObject * tckobj,
   }
   g_list_free_full (tracks, gst_object_unref);
 
-  properties = _serialize_properties (G_OBJECT (tckobj), "start",
+  properties = _serialize_properties (G_OBJECT (trackelement), "start",
       "in-point", "duration", "locked", "max-duration", "name", NULL);
-  metas = ges_meta_container_metas_to_string (GES_META_CONTAINER (tckobj));
-  append_printf_escaped (str, "<effect asset-id='%s' clip-id='%u'"
+  metas =
+      ges_meta_container_metas_to_string (GES_META_CONTAINER (trackelement));
+  append_printf_escaped (str,
+      "<effect asset-id='%s' clip-id='%u'"
       " type-name='%s' track-type='%i' track-id='%i' properties='%s' metadatas='%s'",
-      ges_extractable_get_id (GES_EXTRACTABLE (tckobj)), clip_id,
-      g_type_name (G_OBJECT_TYPE (tckobj)), tck->type, track_id, properties,
-      metas);
+      ges_extractable_get_id (GES_EXTRACTABLE (trackelement)), clip_id,
+      g_type_name (G_OBJECT_TYPE (trackelement)), tck->type, track_id,
+      properties, metas);
   g_free (properties);
   g_free (metas);
 
-  pspecs = ges_track_object_list_children_properties (tckobj, &n_props);
+  pspecs = ges_track_element_list_children_properties (trackelement, &n_props);
   structure = gst_structure_new_empty ("properties");
   for (j = 0; j < n_props; j++) {
     GValue val = { 0 };
@@ -812,7 +814,7 @@ _save_effect (GString * str, guint clip_id, GESTrackObject * tckobj,
     spec = pspecs[j];
     if (_can_serialize_spec (spec)) {
       _init_value_from_spec_for_serialization (&val, spec);
-      ges_track_object_get_child_property_by_pspec (tckobj, spec, &val);
+      ges_track_element_get_child_property_by_pspec (trackelement, spec, &val);
       gst_structure_set_value (structure, spec->name, &val);
       g_value_unset (&val);
     }
@@ -872,7 +874,7 @@ _save_layers (GString * str, GESTimeline * timeline)
       g_free (properties);
 
       for (tmpeffect = effects; tmpeffect; tmpeffect = tmpeffect->next)
-        _save_effect (str, nbclips, GES_TRACK_OBJECT (tmpeffect->data),
+        _save_effect (str, nbclips, GES_TRACK_ELEMENT (tmpeffect->data),
             timeline);
       g_string_append (str, "</clip>\n");
       nbclips++;
index 23f82c01b2d5bf727781833915cf68afa17cf48c..0d0bf90b06b0255c0199b73389d16f7fbce360ca 100644 (file)
--- a/ges/ges.h
+++ b/ges/ges.h
@@ -56,7 +56,7 @@
 #include <ges/ges-xml-formatter.h>
 
 #include <ges/ges-track.h>
-#include <ges/ges-track-object.h>
+#include <ges/ges-track-element.h>
 #include <ges/ges-track-source.h>
 #include <ges/ges-track-operation.h>
 
index 761ddb1f9fa4952ab1ec47837e3c60022ad41893..f46ddc6751f3dd689f8d243d76053dd46662358d 100644 (file)
@@ -38,7 +38,7 @@ GST_END_TEST;
 GST_START_TEST (test_test_source_properties)
 {
   GESTrack *track;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESClip *object;
 
   ges_init ();
@@ -57,18 +57,18 @@ GST_START_TEST (test_test_source_properties)
   assert_equals_uint64 (_DURATION (object), 51);
   assert_equals_uint64 (_INPOINT (object), 12);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 51);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 51);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
@@ -77,23 +77,23 @@ GST_START_TEST (test_test_source_properties)
   assert_equals_uint64 (_START (object), 420);
   assert_equals_uint64 (_DURATION (object), 510);
   assert_equals_uint64 (_INPOINT (object), 120);
-  assert_equals_uint64 (_START (trackobject), 420);
-  assert_equals_uint64 (_DURATION (trackobject), 510);
-  assert_equals_uint64 (_INPOINT (trackobject), 120);
+  assert_equals_uint64 (_START (trackelement), 420);
+  assert_equals_uint64 (_DURATION (trackelement), 510);
+  assert_equals_uint64 (_INPOINT (trackelement), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, TRUE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, TRUE);
 
   /* Test mute support */
   g_object_set (object, "mute", TRUE, NULL);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, FALSE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, FALSE);
   g_object_set (object, "mute", FALSE, NULL);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, TRUE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, TRUE);
 
-  ges_clip_release_track_object (object, trackobject);
+  ges_clip_release_track_element (object, trackelement);
   g_object_unref (object);
 }
 
@@ -104,7 +104,7 @@ GST_START_TEST (test_test_source_in_layer)
   GESTimeline *timeline;
   GESTimelineLayer *layer;
   GESTrack *a, *v;
-  GESTrackObject *trobj;
+  GESTrackElement *trobj;
   GESTestClip *source;
   GESVideoTestPattern ptrn;
   gdouble freq, volume;
@@ -135,7 +135,7 @@ GST_START_TEST (test_test_source_in_layer)
   assert_equals_int (ptrn, GES_VIDEO_TEST_PATTERN_WHITE);
 
   trobj =
-      ges_clip_find_track_object (GES_CLIP (source), v,
+      ges_clip_find_track_element (GES_CLIP (source), v,
       GES_TYPE_TRACK_VIDEO_TEST_SOURCE);
 
   g_assert (GES_IS_TRACK_VIDEO_TEST_SOURCE (trobj));
@@ -147,7 +147,7 @@ GST_START_TEST (test_test_source_in_layer)
 
   /* test audio properties as well */
 
-  trobj = ges_clip_find_track_object (GES_CLIP (source),
+  trobj = ges_clip_find_track_element (GES_CLIP (source),
       a, GES_TYPE_TRACK_AUDIO_TEST_SOURCE);
   g_assert (GES_IS_TRACK_AUDIO_TEST_SOURCE (trobj));
   assert_equals_float (ges_test_clip_get_frequency (source), 440);
@@ -236,7 +236,7 @@ find_composition (GESTrack * track)
 GST_START_TEST (test_gap_filling_basic)
 {
   GESTrack *track;
-  GESTrackObject *trackobject, *trackobject1, *trackobject2;
+  GESTrackElement *trackelement, *trackelement1, *trackelement2;
   /*GESTimelineLayer *layer; */
   GESClip *object, *object1, *object2;
   GstElement *gnlsrc, *gnlsrc1, *gap = NULL;
@@ -259,17 +259,17 @@ GST_START_TEST (test_gap_filling_basic)
   assert_equals_uint64 (_START (object), 0);
   assert_equals_uint64 (_DURATION (object), 5);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
 
-  fail_unless (ges_track_add_object (track, trackobject));
-  fail_unless (trackobject != NULL);
-  gnlsrc = ges_track_object_get_gnlobject (trackobject);
+  fail_unless (ges_track_add_object (track, trackelement));
+  fail_unless (trackelement != NULL);
+  gnlsrc = ges_track_element_get_gnlobject (trackelement);
   fail_unless (gnlsrc != NULL);
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 0);
-  assert_equals_uint64 (_DURATION (trackobject), 5);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 0);
+  assert_equals_uint64 (_DURATION (trackelement), 5);
 
   /* Check no gap were wrongly added */
   assert_equals_int (g_list_length (GST_BIN_CHILDREN (composition)), 1);
@@ -281,16 +281,16 @@ GST_START_TEST (test_gap_filling_basic)
   assert_equals_uint64 (_START (object1), 15);
   assert_equals_uint64 (_DURATION (object1), 5);
 
-  trackobject1 = ges_clip_create_track_object (object1, track->type);
-  ges_clip_add_track_object (object1, trackobject1);
-  fail_unless (ges_track_add_object (track, trackobject1));
-  fail_unless (trackobject1 != NULL);
-  gnlsrc1 = ges_track_object_get_gnlobject (trackobject1);
+  trackelement1 = ges_clip_create_track_element (object1, track->type);
+  ges_clip_add_track_element (object1, trackelement1);
+  fail_unless (ges_track_add_object (track, trackelement1));
+  fail_unless (trackelement1 != NULL);
+  gnlsrc1 = ges_track_element_get_gnlobject (trackelement1);
   fail_unless (gnlsrc1 != NULL);
 
-  /* Check that trackobject1 has the same properties */
-  assert_equals_uint64 (_START (trackobject1), 15);
-  assert_equals_uint64 (_DURATION (trackobject1), 5);
+  /* Check that trackelement1 has the same properties */
+  assert_equals_uint64 (_START (trackelement1), 15);
+  assert_equals_uint64 (_DURATION (trackelement1), 5);
 
   /* Check the gap as properly been added */
   assert_equals_int (g_list_length (GST_BIN_CHILDREN (composition)), 3);
@@ -308,12 +308,12 @@ GST_START_TEST (test_gap_filling_basic)
       object2 = GES_CLIP (ges_test_clip_new ());
   fail_unless (object2 != NULL);
   g_object_set (object2, "start", (guint64) 35, "duration", (guint64) 5, NULL);
-  trackobject2 = ges_clip_create_track_object (object2, track->type);
-  ges_clip_add_track_object (object2, trackobject2);
-  fail_unless (ges_track_add_object (track, trackobject2));
-  fail_unless (trackobject2 != NULL);
-  assert_equals_uint64 (_START (trackobject2), 35);
-  assert_equals_uint64 (_DURATION (trackobject2), 5);
+  trackelement2 = ges_clip_create_track_element (object2, track->type);
+  ges_clip_add_track_element (object2, trackelement2);
+  fail_unless (ges_track_add_object (track, trackelement2));
+  fail_unless (trackelement2 != NULL);
+  assert_equals_uint64 (_START (trackelement2), 35);
+  assert_equals_uint64 (_DURATION (trackelement2), 5);
   assert_equals_int (g_list_length (GST_BIN_CHILDREN (composition)), 5);
 
   gst_object_unref (track);
index 90ed262fb37c87c63f180ebc17f446a91ae6efa0..ef1fa281c200500749a963b595104a7694f37c28 100644 (file)
@@ -32,11 +32,11 @@ GST_END_TEST;
 
 static gboolean
 my_fill_track_func (GESClip * object,
-    GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data)
+    GESTrackElement * trobject, GstElement * gnlobj, gpointer user_data)
 {
   GstElement *src;
 
-  GST_DEBUG ("timelineobj:%p, trackobject:%p, gnlobj:%p",
+  GST_DEBUG ("timelineobj:%p, trackelement:%p, gnlobj:%p",
       object, trobject, gnlobj);
 
   /* Let's just put a fakesource in for the time being */
@@ -55,8 +55,8 @@ GST_START_TEST (test_ges_scenario)
   GESTimelineLayer *layer, *tmp_layer;
   GESTrack *track;
   GESCustomSourceClip *source;
-  GESTrackObject *trackobject;
-  GList *trackobjects, *tmp, *layers, *tracks;
+  GESTrackElement *trackelement;
+  GList *trackelements, *tmp, *layers, *tracks;
 
   ges_init ();
   /* This is the simplest scenario ever */
@@ -111,25 +111,25 @@ GST_START_TEST (test_ges_scenario)
   g_object_unref (tmp_layer);
   ASSERT_OBJECT_REFCOUNT (layer, "layer", 1);
 
-  /* Make sure the associated TrackObject is in the Track */
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (source));
-  fail_unless (trackobjects != NULL);
-  trackobject = GES_TRACK_OBJECT (trackobjects->data);
+  /* Make sure the associated TrackElement is in the Track */
+  trackelements = ges_clip_get_track_elements (GES_CLIP (source));
+  fail_unless (trackelements != NULL);
+  trackelement = GES_TRACK_ELEMENT (trackelements->data);
   /* There are 4 references:
    * 1 by the clip
    * 1 by the track
    * 1 by the timeline
-   * 1 added by the call to _get_track_objects() above */
-  ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 4);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+   * 1 added by the call to _get_track_elements() above */
+  ASSERT_OBJECT_REFCOUNT (trackelement, "trackelement", 4);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 3 references:
    * 1 by the clip
    * 1 by the timeline
    * 1 by the track */
-  ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement, "trackelement", 3);
 
   GST_DEBUG ("Remove the Clip from the layer");
 
@@ -141,8 +141,8 @@ GST_START_TEST (test_ges_scenario)
   ASSERT_OBJECT_REFCOUNT (layer, "layer", 1);
   tmp_layer = ges_clip_get_layer (GES_CLIP (source));
   fail_unless (tmp_layer == NULL);
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (source));
-  fail_unless (trackobjects == NULL);   /* No unreffing then */
+  trackelements = ges_clip_get_track_elements (GES_CLIP (source));
+  fail_unless (trackelements == NULL);  /* No unreffing then */
   g_object_unref (source);
 
   GST_DEBUG ("Removing track from the timeline");
@@ -184,8 +184,8 @@ GST_START_TEST (test_ges_timeline_add_layer)
   GESTimelineLayer *layer, *tmp_layer;
   GESTrack *track;
   GESCustomSourceClip *s1, *s2, *s3;
-  GList *trackobjects, *tmp, *layers;
-  GESTrackObject *trackobject;
+  GList *trackelements, *tmp, *layers;
+  GESTrackElement *trackelement;
 
   ges_init ();
 
@@ -247,51 +247,51 @@ GST_START_TEST (test_ges_timeline_add_layer)
   g_list_foreach (layers, (GFunc) g_object_unref, NULL);
   g_list_free (layers);
 
-  /* Make sure the associated TrackObjects are in the Track */
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s1));
-  fail_unless (trackobjects != NULL);
-  trackobject = GES_TRACK_OBJECT (trackobjects->data);
+  /* Make sure the associated TrackElements are in the Track */
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s1));
+  fail_unless (trackelements != NULL);
+  trackelement = GES_TRACK_ELEMENT (trackelements->data);
   /* There are 4 references:
    * 1 by the clip
-   * 1 by the trackobject
+   * 1 by the trackelement
    * 1 by the timeline
-   * 1 added by the call to _get_track_objects() above */
-  ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 4);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+   * 1 added by the call to _get_track_elements() above */
+  ASSERT_OBJECT_REFCOUNT (trackelement, "trackelement", 4);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 3 references:
    * 1 by the clip
    * 1 by the timeline
-   * 1 by the trackobject */
-  ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 3);
-
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s2));
-  trackobject = GES_TRACK_OBJECT (trackobjects->data);
-  fail_unless (trackobjects != NULL);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+   * 1 by the trackelement */
+  ASSERT_OBJECT_REFCOUNT (trackelement, "trackelement", 3);
+
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s2));
+  trackelement = GES_TRACK_ELEMENT (trackelements->data);
+  fail_unless (trackelements != NULL);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 3 references:
    * 1 by the clip
    * 1 by the timeline
-   * 1 by the trackobject */
-  ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (trackobject), "trackobject", 3);
-
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s3));
-  trackobject = GES_TRACK_OBJECT (trackobjects->data);
-  fail_unless (trackobjects != NULL);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+   * 1 by the trackelement */
+  ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (trackelement), "trackelement", 3);
+
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s3));
+  trackelement = GES_TRACK_ELEMENT (trackelements->data);
+  fail_unless (trackelements != NULL);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 3 references:
    * 1 by the clip
    * 1 by the timeline
-   * 1 by the trackobject */
-  ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 3);
+   * 1 by the trackelement */
+  ASSERT_OBJECT_REFCOUNT (trackelement, "trackelement", 3);
 
   /* theoretically this is all we need to do to ensure cleanup */
   g_object_unref (timeline);
@@ -307,7 +307,7 @@ GST_START_TEST (test_ges_timeline_add_layer_first)
   GESTimelineLayer *layer, *tmp_layer;
   GESTrack *track;
   GESCustomSourceClip *s1, *s2, *s3;
-  GList *trackobjects, *tmp, *layers;
+  GList *trackelements, *tmp, *layers;
 
   ges_init ();
 
@@ -365,45 +365,45 @@ GST_START_TEST (test_ges_timeline_add_layer_first)
   fail_unless (ges_track_get_timeline (track) == timeline);
   fail_unless ((gpointer) GST_ELEMENT_PARENT (track) == (gpointer) timeline);
 
-  /* Make sure the associated TrackObjects are in the Track */
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s1));
-  fail_unless (trackobjects != NULL);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  /* Make sure the associated TrackElements are in the Track */
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s1));
+  fail_unless (trackelements != NULL);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* Each object has 4 references:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by _get_track_object() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by _get_track_element() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s2));
-  fail_unless (trackobjects != NULL);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s2));
+  fail_unless (trackelements != NULL);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* Each object has 4 references:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by _get_track_object() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by _get_track_element() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s3));
-  fail_unless (trackobjects != NULL);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s3));
+  fail_unless (trackelements != NULL);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* Each object has 4 references:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by _get_track_object() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by _get_track_element() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 
   /* theoretically this is all we need to do to ensure cleanup */
   g_object_unref (timeline);
@@ -417,8 +417,8 @@ GST_START_TEST (test_ges_timeline_remove_track)
   GESTimelineLayer *layer, *tmp_layer;
   GESTrack *track;
   GESCustomSourceClip *s1, *s2, *s3;
-  GESTrackObject *t1, *t2, *t3;
-  GList *trackobjects, *tmp, *layers;
+  GESTrackElement *t1, *t2, *t3;
+  GList *trackelements, *tmp, *layers;
 
   ges_init ();
 
@@ -477,42 +477,42 @@ GST_START_TEST (test_ges_timeline_remove_track)
   fail_unless (ges_track_get_timeline (track) == timeline);
   fail_unless ((gpointer) GST_ELEMENT_PARENT (track) == (gpointer) timeline);
 
-  /* Make sure the associated TrackObjects are in the Track */
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s1));
-  fail_unless (trackobjects != NULL);
-  t1 = GES_TRACK_OBJECT ((trackobjects)->data);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  /* Make sure the associated TrackElements are in the Track */
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s1));
+  fail_unless (trackelements != NULL);
+  t1 = GES_TRACK_ELEMENT ((trackelements)->data);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* There are 4 references held:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by the call to _get_track_objects() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by the call to _get_track_elements() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
   g_object_ref (t1);
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 4 references held:
    * 1 by the timelinobject
    * 1 by the track
    * 1 by the timeline
    * 1 added by ourselves above (g_object_ref (t1)) */
-  ASSERT_OBJECT_REFCOUNT (t1, "trackobject", 4);
+  ASSERT_OBJECT_REFCOUNT (t1, "trackelement", 4);
 
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s2));
-  fail_unless (trackobjects != NULL);
-  t2 = GES_TRACK_OBJECT (trackobjects->data);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s2));
+  fail_unless (trackelements != NULL);
+  t2 = GES_TRACK_ELEMENT (trackelements->data);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* There are 4 references held:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by the call to _get_track_objects() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by the call to _get_track_elements() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
   g_object_ref (t2);
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 4 references held:
    * 1 by the timelinobject
    * 1 by the track
@@ -520,20 +520,20 @@ GST_START_TEST (test_ges_timeline_remove_track)
    * 1 added by ourselves above (g_object_ref (t1)) */
   ASSERT_OBJECT_REFCOUNT (t2, "t2", 4);
 
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s3));
-  fail_unless (trackobjects != NULL);
-  t3 = GES_TRACK_OBJECT (trackobjects->data);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s3));
+  fail_unless (trackelements != NULL);
+  t3 = GES_TRACK_ELEMENT (trackelements->data);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* There are 4 references held:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by the call to _get_track_objects() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by the call to _get_track_elements() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
   g_object_ref (t3);
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 4 references held:
    * 1 by the timelinobject
    * 1 by the track
@@ -544,9 +544,9 @@ GST_START_TEST (test_ges_timeline_remove_track)
   /* remove the track and check that the track objects have been released */
   fail_unless (ges_timeline_remove_track (timeline, track));
 
-  ASSERT_OBJECT_REFCOUNT (t1, "trackobject", 2);
-  ASSERT_OBJECT_REFCOUNT (t2, "trackobject", 2);
-  ASSERT_OBJECT_REFCOUNT (t3, "trackobject", 2);
+  ASSERT_OBJECT_REFCOUNT (t1, "trackelement", 2);
+  ASSERT_OBJECT_REFCOUNT (t2, "trackelement", 2);
+  ASSERT_OBJECT_REFCOUNT (t3, "trackelement", 2);
 
   g_object_unref (t1);
   g_object_unref (t2);
@@ -565,7 +565,7 @@ typedef struct
 
 static GPtrArray *
 select_tracks_cb (GESTimeline * timeline, GESClip * tobj,
-    GESTrackObject * trobj, SelectTracksData * st_data)
+    GESTrackElement * trobj, SelectTracksData * st_data)
 {
   GESTrack *track;
 
@@ -585,8 +585,8 @@ GST_START_TEST (test_ges_timeline_multiple_tracks)
   GESTimelineLayer *layer, *tmp_layer;
   GESTrack *track1, *track2;
   GESCustomSourceClip *s1, *s2, *s3;
-  GESTrackObject *t1, *t2, *t3;
-  GList *trackobjects, *tmp, *layers;
+  GESTrackElement *t1, *t2, *t3;
+  GList *trackelements, *tmp, *layers;
   SelectTracksData st_data = { &s1, &s2, &s3, &track1, &track2 };
 
   ges_init ();
@@ -658,44 +658,44 @@ GST_START_TEST (test_ges_timeline_multiple_tracks)
   g_list_foreach (layers, (GFunc) g_object_unref, NULL);
   g_list_free (layers);
 
-  /* Make sure the associated TrackObjects are in the Track */
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s1));
-  fail_unless (trackobjects != NULL);
-  t1 = GES_TRACK_OBJECT ((trackobjects)->data);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  /* Make sure the associated TrackElements are in the Track */
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s1));
+  fail_unless (trackelements != NULL);
+  t1 = GES_TRACK_ELEMENT ((trackelements)->data);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* There are 4 references held:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by the call to _get_track_objects() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    fail_unless (ges_track_object_get_track (tmp->data) == track1);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by the call to _get_track_elements() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    fail_unless (ges_track_element_get_track (tmp->data) == track1);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
   g_object_ref (t1);
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 4 references held:
    * 1 by the timelinobject
    * 1 by the track
    * 1 by the timeline
    * 1 added by ourselves above (g_object_ref (t1)) */
-  ASSERT_OBJECT_REFCOUNT (t1, "trackobject", 4);
+  ASSERT_OBJECT_REFCOUNT (t1, "trackelement", 4);
 
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s2));
-  fail_unless (trackobjects != NULL);
-  t2 = GES_TRACK_OBJECT (trackobjects->data);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s2));
+  fail_unless (trackelements != NULL);
+  t2 = GES_TRACK_ELEMENT (trackelements->data);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* There are 4 references held:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by the call to _get_track_objects() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    fail_unless (ges_track_object_get_track (tmp->data) == track2);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by the call to _get_track_elements() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    fail_unless (ges_track_element_get_track (tmp->data) == track2);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
   g_object_ref (t2);
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 4 references held:
    * 1 by the timelinobject
    * 1 by the track
@@ -703,21 +703,21 @@ GST_START_TEST (test_ges_timeline_multiple_tracks)
    * 1 added by ourselves above (g_object_ref (t1)) */
   ASSERT_OBJECT_REFCOUNT (t2, "t2", 4);
 
-  trackobjects = ges_clip_get_track_objects (GES_CLIP (s3));
-  fail_unless (trackobjects != NULL);
-  t3 = GES_TRACK_OBJECT (trackobjects->data);
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
+  trackelements = ges_clip_get_track_elements (GES_CLIP (s3));
+  fail_unless (trackelements != NULL);
+  t3 = GES_TRACK_ELEMENT (trackelements->data);
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
     /* There are 4 references held:
      * 1 by the clip
      * 1 by the track
      * 1 by the timeline
-     * 1 added by the call to _get_track_objects() above */
-    ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 4);
-    fail_unless (ges_track_object_get_track (tmp->data) == track1);
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+     * 1 added by the call to _get_track_elements() above */
+    ASSERT_OBJECT_REFCOUNT (GES_TRACK_ELEMENT (tmp->data), "trackelement", 4);
+    fail_unless (ges_track_element_get_track (tmp->data) == track1);
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
   g_object_ref (t3);
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
   /* There are 4 references held:
    * 1 by the timelinobject
    * 1 by the track
index 7d39db3329f34e2a35b5d2a43e63085233e47d33..04ae691b0facffdb2f549d4b4b348fce2309d0bf 100644 (file)
 
 static gboolean
 my_fill_track_func (GESClip * object,
-    GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data)
+    GESTrackElement * trobject, GstElement * gnlobj, gpointer user_data)
 {
   GstElement *src;
 
-  GST_DEBUG ("timelineobj:%p, trackobjec:%p, gnlobj:%p",
+  GST_DEBUG ("timelineobj:%p, trackelementec:%p, gnlobj:%p",
       object, trobject, gnlobj);
 
   /* Let's just put a fakesource in for the time being */
@@ -42,7 +42,7 @@ my_fill_track_func (GESClip * object,
 GST_START_TEST (test_object_properties)
 {
   GESTrack *track;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESClip *object;
 
   ges_init ();
@@ -60,18 +60,18 @@ GST_START_TEST (test_object_properties)
   assert_equals_uint64 (_DURATION (object), 51);
   assert_equals_uint64 (_INPOINT (object), 12);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 51);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 51);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
@@ -80,24 +80,24 @@ GST_START_TEST (test_object_properties)
   assert_equals_uint64 (_START (object), 420);
   assert_equals_uint64 (_DURATION (object), 510);
   assert_equals_uint64 (_INPOINT (object), 120);
-  assert_equals_uint64 (_START (trackobject), 420);
-  assert_equals_uint64 (_DURATION (trackobject), 510);
-  assert_equals_uint64 (_INPOINT (trackobject), 120);
+  assert_equals_uint64 (_START (trackelement), 420);
+  assert_equals_uint64 (_DURATION (trackelement), 510);
+  assert_equals_uint64 (_INPOINT (trackelement), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, TRUE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, TRUE);
 
 
-  /* This time, we move the trackobject to see if the changes move
+  /* This time, we move the trackelement to see if the changes move
    * along to the parent and the gnonlin object */
-  g_object_set (trackobject, "start", (guint64) 400, NULL);
+  g_object_set (trackelement, "start", (guint64) 400, NULL);
   assert_equals_uint64 (_START (object), 400);
-  assert_equals_uint64 (_START (trackobject), 400);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 400, 510, 120,
-      510, 0, TRUE);
+  assert_equals_uint64 (_START (trackelement), 400);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 400, 510,
+      120, 510, 0, TRUE);
 
-  ges_clip_release_track_object (object, trackobject);
+  ges_clip_release_track_element (object, trackelement);
 
   g_object_unref (object);
   g_object_unref (track);
@@ -108,7 +108,7 @@ GST_END_TEST;
 GST_START_TEST (test_object_properties_unlocked)
 {
   GESTrack *track;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESClip *object;
 
   ges_init ();
@@ -126,22 +126,22 @@ GST_START_TEST (test_object_properties_unlocked)
   assert_equals_uint64 (_DURATION (object), 51);
   assert_equals_uint64 (_INPOINT (object), 12);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 51);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 51);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
-  /* This time we unlock the trackobject and make sure it doesn't propagate */
-  ges_track_object_set_locked (trackobject, FALSE);
+  /* This time we unlock the trackelement and make sure it doesn't propagate */
+  ges_track_element_set_locked (trackelement, FALSE);
 
   /* Change more properties, they will be set on the GESClip */
   g_object_set (object, "start", (guint64) 420, "duration", (guint64) 510,
@@ -149,26 +149,26 @@ GST_START_TEST (test_object_properties_unlocked)
   assert_equals_uint64 (_START (object), 420);
   assert_equals_uint64 (_DURATION (object), 510);
   assert_equals_uint64 (_INPOINT (object), 120);
-  /* ... but not on the GESTrackObject since it was unlocked... */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 51);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* ... but not on the GESTrackElement since it was unlocked... */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 51);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
   /* ... and neither on the GNonLin object */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
-  /* When unlocked, moving the GESTrackObject won't move the GESClip
+  /* When unlocked, moving the GESTrackElement won't move the GESClip
    * either */
-  /* This time, we move the trackobject to see if the changes move
+  /* This time, we move the trackelement to see if the changes move
    * along to the parent and the gnonlin object */
-  g_object_set (trackobject, "start", (guint64) 400, NULL);
+  g_object_set (trackelement, "start", (guint64) 400, NULL);
   assert_equals_uint64 (_START (object), 420);
-  assert_equals_uint64 (_START (trackobject), 400);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 400, 51, 12,
+  assert_equals_uint64 (_START (trackelement), 400);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 400, 51, 12,
       51, 0, TRUE);
 
 
-  ges_clip_release_track_object (object, trackobject);
+  ges_clip_release_track_element (object, trackelement);
 
   g_object_unref (object);
   g_object_unref (track);
@@ -179,9 +179,9 @@ GST_END_TEST;
 GST_START_TEST (test_split_object)
 {
   GESTrack *track;
-  GESTrackObject *trackobject, *splittckobj;
+  GESTrackElement *trackelement, *splittrackelement;
   GESClip *object, *splitobj;
-  GList *splittckobjs;
+  GList *splittrackelements;
 
   ges_init ();
 
@@ -198,18 +198,18 @@ GST_START_TEST (test_split_object)
   assert_equals_uint64 (_DURATION (object), 50);
   assert_equals_uint64 (_INPOINT (object), 12);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 50);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 50);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 50, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 50, 12,
       50, 0, TRUE);
 
   splitobj = ges_clip_split (object, 67);
@@ -223,29 +223,29 @@ GST_START_TEST (test_split_object)
   assert_equals_uint64 (_DURATION (splitobj), 25);
   assert_equals_uint64 (_INPOINT (splitobj), 37);
 
-  splittckobjs = ges_clip_get_track_objects (splitobj);
-  fail_unless_equals_int (g_list_length (splittckobjs), 1);
+  splittrackelements = ges_clip_get_track_elements (splitobj);
+  fail_unless_equals_int (g_list_length (splittrackelements), 1);
 
-  splittckobj = GES_TRACK_OBJECT (splittckobjs->data);
-  fail_unless (GES_IS_TRACK_OBJECT (splittckobj));
-  assert_equals_uint64 (_START (splittckobj), 67);
-  assert_equals_uint64 (_DURATION (splittckobj), 25);
-  assert_equals_uint64 (_INPOINT (splittckobj), 37);
+  splittrackelement = GES_TRACK_ELEMENT (splittrackelements->data);
+  fail_unless (GES_IS_TRACK_ELEMENT (splittrackelement));
+  assert_equals_uint64 (_START (splittrackelement), 67);
+  assert_equals_uint64 (_DURATION (splittrackelement), 25);
+  assert_equals_uint64 (_INPOINT (splittrackelement), 37);
 
-  fail_unless (splittckobj != trackobject);
+  fail_unless (splittrackelement != trackelement);
   fail_unless (splitobj != object);
 
   /* We own the only ref */
   ASSERT_OBJECT_REFCOUNT (splitobj, "splitobj", 1);
-  /* 1 ref for the Clip, 1 ref for the Track and 1 in splittckobjs */
-  ASSERT_OBJECT_REFCOUNT (splittckobj, "splittckobj", 3);
+  /* 1 ref for the Clip, 1 ref for the Track and 1 in splittrackelements */
+  ASSERT_OBJECT_REFCOUNT (splittrackelement, "splittrackelement", 3);
 
   g_object_unref (track);
   g_object_unref (splitobj);
   g_object_unref (object);
 
-  ASSERT_OBJECT_REFCOUNT (splittckobj, "splittckobj", 1);
-  g_list_free_full (splittckobjs, g_object_unref);
+  ASSERT_OBJECT_REFCOUNT (splittrackelement, "splittrackelement", 1);
+  g_list_free_full (splittrackelements, g_object_unref);
 }
 
 GST_END_TEST;
index 0e2670521c66070f99fafa730bd33803161bf8db..54f69e14bd3cf4bc88df6df1eb6671b8b5dd4a76 100644 (file)
@@ -23,7 +23,7 @@
 
 void effect_added_cb (GESClip * obj, GESTrackEffect * trop, gpointer data);
 void
-deep_prop_changed_cb (GESTrackObject * obj, GstElement * element,
+deep_prop_changed_cb (GESTrackElement * obj, GstElement * element,
     GParamSpec * spec);
 
 GST_START_TEST (test_effect_basic)
@@ -72,12 +72,12 @@ GST_START_TEST (test_add_effect_to_clip)
   fail_unless (GES_IS_TRACK_EFFECT (track_effect));
 
 
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (source), GES_TRACK_OBJECT (track_effect)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (source), GES_TRACK_ELEMENT (track_effect)));
   fail_unless (ges_track_add_object (track_video,
-          GES_TRACK_OBJECT (track_effect)));
+          GES_TRACK_ELEMENT (track_effect)));
 
-  assert_equals_int (GES_TRACK_OBJECT (track_effect)->active, TRUE);
+  assert_equals_int (GES_TRACK_ELEMENT (track_effect)->active, TRUE);
 
   ges_timeline_layer_remove_object (layer, (GESClip *) source);
 
@@ -123,20 +123,20 @@ GST_START_TEST (test_get_effects_from_tl)
   fail_unless (GES_IS_TRACK_EFFECT (track_effect1));
   fail_unless (GES_IS_TRACK_EFFECT (track_effect2));
 
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (source), GES_TRACK_OBJECT (track_effect)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (source), GES_TRACK_ELEMENT (track_effect)));
   fail_unless (ges_track_add_object (track_video,
-          GES_TRACK_OBJECT (track_effect)));
+          GES_TRACK_ELEMENT (track_effect)));
 
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (source), GES_TRACK_OBJECT (track_effect1)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (source), GES_TRACK_ELEMENT (track_effect1)));
   fail_unless (ges_track_add_object (track_video,
-          GES_TRACK_OBJECT (track_effect1)));
+          GES_TRACK_ELEMENT (track_effect1)));
 
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (source), GES_TRACK_OBJECT (track_effect2)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (source), GES_TRACK_ELEMENT (track_effect2)));
   fail_unless (ges_track_add_object (track_video,
-          GES_TRACK_OBJECT (track_effect2)));
+          GES_TRACK_ELEMENT (track_effect2)));
 
   g_object_get (G_OBJECT (source), "height", &clip_height, NULL);
   fail_unless (clip_height == 4);
@@ -197,19 +197,19 @@ GST_START_TEST (test_effect_clip)
       (GESClip *) effect_clip, 0);
 
   tck_effect = ges_track_parse_launch_effect_new ("identity");
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (effect_clip), GES_TRACK_OBJECT (tck_effect)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (effect_clip), GES_TRACK_ELEMENT (tck_effect)));
   fail_unless (ges_track_add_object (track_video,
-          GES_TRACK_OBJECT (tck_effect)));
+          GES_TRACK_ELEMENT (tck_effect)));
 
   g_object_get (effect_clip, "height", &clip_height, NULL);
   assert_equals_int (clip_height, 3);
 
   tck_effect1 = ges_track_parse_launch_effect_new ("identity");
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (effect_clip), GES_TRACK_OBJECT (tck_effect1)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (effect_clip), GES_TRACK_ELEMENT (tck_effect1)));
   fail_unless (ges_track_add_object (track_audio,
-          GES_TRACK_OBJECT (tck_effect1)));
+          GES_TRACK_ELEMENT (tck_effect1)));
 
   g_object_get (effect_clip, "height", &clip_height, NULL);
   assert_equals_int (clip_height, 4);
@@ -220,7 +220,7 @@ GST_START_TEST (test_effect_clip)
         GES_TRACK_EFFECT (tmp->data));
     fail_unless (priority > effect_prio);
     fail_unless (GES_IS_TRACK_EFFECT (tmp->data));
-    fail_unless (ges_track_object_get_track (GES_TRACK_OBJECT (tmp->
+    fail_unless (ges_track_element_get_track (GES_TRACK_ELEMENT (tmp->
                 data))->type == track_type[i]);
     effect_prio = priority;
 
@@ -266,19 +266,19 @@ GST_START_TEST (test_priorities_clip)
       (GESClip *) effect_clip, 0);
 
   tck_effect = ges_track_parse_launch_effect_new ("identity");
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (effect_clip), GES_TRACK_OBJECT (tck_effect)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (effect_clip), GES_TRACK_ELEMENT (tck_effect)));
   fail_unless (ges_track_add_object (track_video,
-          GES_TRACK_OBJECT (tck_effect)));
+          GES_TRACK_ELEMENT (tck_effect)));
 
   g_object_get (effect_clip, "height", &clip_height, NULL);
   fail_unless (clip_height == 3);
 
   tck_effect1 = ges_track_parse_launch_effect_new ("identity");
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (effect_clip), GES_TRACK_OBJECT (tck_effect1)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (effect_clip), GES_TRACK_ELEMENT (tck_effect1)));
   fail_unless (ges_track_add_object (track_audio,
-          GES_TRACK_OBJECT (tck_effect1)));
+          GES_TRACK_ELEMENT (tck_effect1)));
 
   fail_unless (ges_clip_set_top_effect_priority (GES_CLIP
           (effect_clip), GES_TRACK_EFFECT (tck_effect1), 0));
@@ -317,7 +317,7 @@ GST_START_TEST (test_track_effect_set_properties)
   GESTimelineLayer *layer;
   GESTrack *track_video;
   GESEffectClip *effect_clip;
-  GESTrackObject *tck_effect;
+  GESTrackElement *tck_effect;
   guint scratch_line, n_props, i;
   gboolean color_aging;
   GParamSpec **pspecs, *spec;
@@ -341,19 +341,20 @@ GST_START_TEST (test_track_effect_set_properties)
   ges_simple_timeline_layer_add_object ((GESSimpleTimelineLayer *) (layer),
       (GESClip *) effect_clip, 0);
 
-  tck_effect = GES_TRACK_OBJECT (ges_track_parse_launch_effect_new ("agingtv"));
-  fail_unless (ges_clip_add_track_object (GES_CLIP (effect_clip), tck_effect));
+  tck_effect =
+      GES_TRACK_ELEMENT (ges_track_parse_launch_effect_new ("agingtv"));
+  fail_unless (ges_clip_add_track_element (GES_CLIP (effect_clip), tck_effect));
   fail_unless (ges_track_add_object (track_video, tck_effect));
 
-  ges_track_object_set_child_properties (tck_effect,
+  ges_track_element_set_child_properties (tck_effect,
       "GstAgingTV::scratch-lines", 17, "color-aging", FALSE, NULL);
-  ges_track_object_get_child_properties (tck_effect,
+  ges_track_element_get_child_properties (tck_effect,
       "GstAgingTV::scratch-lines", &scratch_line,
       "color-aging", &color_aging, NULL);
   fail_unless (scratch_line == 17);
   fail_unless (color_aging == FALSE);
 
-  pspecs = ges_track_object_list_children_properties (tck_effect, &n_props);
+  pspecs = ges_track_element_list_children_properties (tck_effect, &n_props);
   fail_unless (n_props == 7);
 
   spec = pspecs[0];
@@ -366,8 +367,8 @@ GST_START_TEST (test_track_effect_set_properties)
   g_value_init (&nval, G_TYPE_UINT);
   g_value_set_uint (&val, 10);
 
-  ges_track_object_set_child_property_by_pspec (tck_effect, spec, &val);
-  ges_track_object_get_child_property_by_pspec (tck_effect, spec, &nval);
+  ges_track_element_set_child_property_by_pspec (tck_effect, spec, &val);
+  ges_track_element_get_child_property_by_pspec (tck_effect, spec, &nval);
   fail_unless (g_value_get_uint (&nval) == 10);
 
   for (i = 0; i < n_props; i++) {
@@ -391,11 +392,11 @@ effect_added_cb (GESClip * obj, GESTrackEffect * trop, gpointer data)
 }
 
 void
-deep_prop_changed_cb (GESTrackObject * obj, GstElement * element,
+deep_prop_changed_cb (GESTrackElement * obj, GstElement * element,
     GParamSpec * spec)
 {
   GST_DEBUG ("%s property changed", g_param_spec_get_name (spec));
-  fail_unless (GES_IS_TRACK_OBJECT (obj));
+  fail_unless (GES_IS_TRACK_ELEMENT (obj));
   fail_unless (GST_IS_ELEMENT (element));
 }
 
@@ -428,18 +429,18 @@ GST_START_TEST (test_clip_signals)
       (GESClip *) effect_clip, 0);
 
   tck_effect = ges_track_parse_launch_effect_new ("agingtv");
-  fail_unless (ges_clip_add_track_object (GES_CLIP
-          (effect_clip), GES_TRACK_OBJECT (tck_effect)));
+  fail_unless (ges_clip_add_track_element (GES_CLIP
+          (effect_clip), GES_TRACK_ELEMENT (tck_effect)));
   fail_unless (ges_track_add_object (track_video,
-          GES_TRACK_OBJECT (tck_effect)));
+          GES_TRACK_ELEMENT (tck_effect)));
   g_signal_connect (tck_effect, "deep-notify", (GCallback) deep_prop_changed_cb,
       tck_effect);
 
-  ges_track_object_set_child_properties (GES_TRACK_OBJECT (tck_effect),
+  ges_track_element_set_child_properties (GES_TRACK_ELEMENT (tck_effect),
       "GstAgingTV::scratch-lines", 17, NULL);
 
   g_value_init (&val, G_TYPE_UINT);
-  ges_track_object_get_child_property (GES_TRACK_OBJECT (tck_effect),
+  ges_track_element_get_child_property (GES_TRACK_ELEMENT (tck_effect),
       "GstAgingTV::scratch-lines", &val);
   fail_unless (G_VALUE_HOLDS_UINT (&val));
   g_value_unset (&val);
index e9f68013860e62b426dd3fb1bcea89c31ba3cdb8..5a537e0474e52d41274d90fab63c7616927c1907 100644 (file)
 
 static gboolean
 my_fill_track_func (GESClip * object,
-    GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data)
+    GESTrackElement * trobject, GstElement * gnlobj, gpointer user_data)
 {
   GstElement *src;
 
-  GST_DEBUG ("timelineobj:%p, trackobjec:%p, gnlobj:%p",
+  GST_DEBUG ("timelineobj:%p, trackelementec:%p, gnlobj:%p",
       object, trobject, gnlobj);
 
   /* Let's just put a fakesource in for the time being */
@@ -47,7 +47,7 @@ GST_START_TEST (test_layer_properties)
   GESTimeline *timeline;
   GESTimelineLayer *layer;
   GESTrack *track;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESClip *object;
 
   ges_init ();
@@ -84,39 +84,39 @@ GST_START_TEST (test_layer_properties)
   fail_unless (g_object_is_floating (object));
   fail_unless (ges_timeline_layer_add_object (layer, GES_CLIP (object)));
   fail_if (g_object_is_floating (object));
-  trackobject = ges_clip_find_track_object (object, track, G_TYPE_NONE);
-  fail_unless (trackobject != NULL);
+  trackelement = ges_clip_find_track_element (object, track, G_TYPE_NONE);
+  fail_unless (trackelement != NULL);
 
   /* This is not a SimpleLayer, therefore the properties shouldn't have changed */
   assert_equals_uint64 (_START (object), 42);
   assert_equals_uint64 (_DURATION (object), 51);
   assert_equals_uint64 (_INPOINT (object), 12);
   assert_equals_uint64 (_PRIORITY (object), 0);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
   /* Change the priority of the layer */
   g_object_set (layer, "priority", 1, NULL);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 1);
   assert_equals_uint64 (_PRIORITY (object), 0);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, LAYER_HEIGHT, TRUE);
 
   /* Change it to an insanely high value */
   g_object_set (layer, "priority", 31, NULL);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 31);
   assert_equals_uint64 (_PRIORITY (object), 0);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, LAYER_HEIGHT * 31, TRUE);
 
   /* and back to 0 */
   g_object_set (layer, "priority", 0, NULL);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 0);
   assert_equals_uint64 (_PRIORITY (object), 0);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
-  g_object_unref (trackobject);
+  g_object_unref (trackelement);
   fail_unless (ges_timeline_layer_remove_object (layer, object));
   fail_unless (ges_timeline_remove_track (timeline, track));
   fail_unless (ges_timeline_remove_layer (timeline, layer));
@@ -130,7 +130,7 @@ GST_START_TEST (test_layer_priorities)
   GESTrack *track;
   GESTimeline *timeline;
   GESTimelineLayer *layer1, *layer2, *layer3;
-  GESTrackObject *tckobj1, *tckobj2, *tckobj3;
+  GESTrackElement *trackelement1, *trackelement2, *trackelement3;
   GESClip *object1, *object2, *object3;
   GstElement *gnlobj1, *gnlobj2, *gnlobj3;
   guint prio1, prio2, prio3;
@@ -181,32 +181,32 @@ GST_START_TEST (test_layer_priorities)
 
   /* Add objects to the timeline */
   fail_unless (ges_timeline_layer_add_object (layer1, object1));
-  tckobj1 = ges_clip_find_track_object (object1, track, G_TYPE_NONE);
-  fail_unless (tckobj1 != NULL);
+  trackelement1 = ges_clip_find_track_element (object1, track, G_TYPE_NONE);
+  fail_unless (trackelement1 != NULL);
 
   fail_unless (ges_timeline_layer_add_object (layer2, object2));
-  tckobj2 = ges_clip_find_track_object (object2, track, G_TYPE_NONE);
-  fail_unless (tckobj2 != NULL);
+  trackelement2 = ges_clip_find_track_element (object2, track, G_TYPE_NONE);
+  fail_unless (trackelement2 != NULL);
 
   fail_unless (ges_timeline_layer_add_object (layer3, object3));
-  tckobj3 = ges_clip_find_track_object (object3, track, G_TYPE_NONE);
-  fail_unless (tckobj3 != NULL);
+  trackelement3 = ges_clip_find_track_element (object3, track, G_TYPE_NONE);
+  fail_unless (trackelement3 != NULL);
 
   assert_equals_int (_PRIORITY (object1), 0);
-  gnlobj1 = ges_track_object_get_gnlobject (tckobj1);
+  gnlobj1 = ges_track_element_get_gnlobject (trackelement1);
   fail_unless (gnlobj1 != NULL);
   g_object_get (gnlobj1, "priority", &prio1, NULL);
   assert_equals_int (prio1, 0);
 
   assert_equals_int (_PRIORITY (object2), 1);
-  gnlobj2 = ges_track_object_get_gnlobject (tckobj2);
+  gnlobj2 = ges_track_element_get_gnlobject (trackelement2);
   fail_unless (gnlobj2 != NULL);
   g_object_get (gnlobj2, "priority", &prio2, NULL);
   /* object2 is on the second layer and has a priority of 1 */
   assert_equals_int (prio2, LAYER_HEIGHT + 1);
 
   assert_equals_int (_PRIORITY (object3), LAYER_HEIGHT - 1);
-  gnlobj3 = ges_track_object_get_gnlobject (tckobj3);
+  gnlobj3 = ges_track_element_get_gnlobject (trackelement3);
   fail_unless (gnlobj3 != NULL);
   /* object3 is on the third layer and has a priority of LAYER_HEIGHT + 1
    * it priority must have the maximum priority of this layer*/
@@ -257,17 +257,17 @@ GST_START_TEST (test_layer_priorities)
   assert_equals_int (prio2, 2 * LAYER_HEIGHT + 1);
   assert_equals_int (prio3, LAYER_HEIGHT * 3 - 1);
 
-  /* And change TrackObject-s priorities and check that changes are well
+  /* And change TrackElement-s priorities and check that changes are well
    * refected on it containing Clip */
-  ges_timeline_element_set_priority (GES_TIMELINE_ELEMENT (tckobj3),
+  ges_timeline_element_set_priority (GES_TIMELINE_ELEMENT (trackelement3),
       LAYER_HEIGHT * 2);
   g_object_get (gnlobj3, "priority", &prio3, NULL);
   assert_equals_int (prio3, 2 * LAYER_HEIGHT);
   assert_equals_int (_PRIORITY (object3), 0);
 
-  g_object_unref (tckobj1);
-  g_object_unref (tckobj2);
-  g_object_unref (tckobj3);
+  g_object_unref (trackelement1);
+  g_object_unref (trackelement2);
+  g_object_unref (trackelement3);
   g_object_unref (timeline);
 }
 
@@ -1230,7 +1230,7 @@ GST_START_TEST (test_layer_activate_automatic_transition)
       GES_CLIP (ges_timeline_layer_add_asset (layer,
           transition_asset, 1000, 0, 500, 1, GES_TRACK_TYPE_VIDEO));
   fail_unless (GES_IS_TRANSITION_CLIP (transition));
-  objects = ges_clip_get_track_objects (transition);
+  objects = ges_clip_get_track_elements (transition);
   assert_equals_int (g_list_length (objects), 1);
   g_list_free_full (objects, gst_object_unref);
 
index 531c8726d6c314ecaf836946752c9c18f91c857a..891847ac0fd7f3068696064adc006ac3cd5ab9f3 100644 (file)
@@ -38,7 +38,7 @@ GST_END_TEST;
 GST_START_TEST (test_overlay_properties)
 {
   GESTrack *track;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESClip *object;
 
   ges_init ();
@@ -57,18 +57,18 @@ GST_START_TEST (test_overlay_properties)
   assert_equals_uint64 (_DURATION (object), 51);
   assert_equals_uint64 (_INPOINT (object), 12);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 51);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 51);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
@@ -77,15 +77,15 @@ GST_START_TEST (test_overlay_properties)
   assert_equals_uint64 (_START (object), 420);
   assert_equals_uint64 (_DURATION (object), 510);
   assert_equals_uint64 (_INPOINT (object), 120);
-  assert_equals_uint64 (_START (trackobject), 420);
-  assert_equals_uint64 (_DURATION (trackobject), 510);
-  assert_equals_uint64 (_INPOINT (trackobject), 120);
+  assert_equals_uint64 (_START (trackelement), 420);
+  assert_equals_uint64 (_DURATION (trackelement), 510);
+  assert_equals_uint64 (_INPOINT (trackelement), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, TRUE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, TRUE);
 
-  ges_clip_release_track_object (object, trackobject);
+  ges_clip_release_track_element (object, trackelement);
   g_object_unref (object);
 }
 
@@ -96,7 +96,7 @@ GST_START_TEST (test_overlay_in_layer)
   GESTimeline *timeline;
   GESTimelineLayer *layer;
   GESTrack *a, *v;
-  GESTrackObject *trobj;
+  GESTrackElement *trobj;
   GESTextOverlayClip *source;
   gchar *text;
   gint halign, valign;
@@ -128,7 +128,7 @@ GST_START_TEST (test_overlay_in_layer)
   assert_equals_string ("some text", text);
   g_free (text);
 
-  trobj = ges_clip_find_track_object (GES_CLIP (source), v, G_TYPE_NONE);
+  trobj = ges_clip_find_track_element (GES_CLIP (source), v, G_TYPE_NONE);
 
   /* test the font-desc property */
   g_object_set (source, "font-desc", (gchar *) "sans 72", NULL);
index 9c19ceb3f605cad6da1cec3d00b502108188099f..1b932cf6b99e6ec18baed973bf20bd6986e2a727 100644 (file)
@@ -198,7 +198,7 @@ _test_project (GESProject * project, GESTimeline * timeline)
   GESTrack *track;
   const GList *profiles;
   GstEncodingContainerProfile *profile;
-  GList *tracks, *tmp, *tmptckobj, *clips;
+  GList *tracks, *tmp, *tmptrackelement, *clips;
 
   fail_unless (GES_IS_TIMELINE (timeline));
   assert_equals_int (g_list_length (timeline->layers), 2);
@@ -222,40 +222,42 @@ _test_project (GESProject * project, GESTimeline * timeline)
   tracks = ges_timeline_get_tracks (timeline);
   assert_equals_int (g_list_length (tracks), 2);
   for (tmp = tracks; tmp; tmp = tmp->next) {
-    GList *trackobjs;
+    GList *trackelements;
     track = GES_TRACK (tmp->data);
 
-    trackobjs = ges_track_get_objects (track);
+    trackelements = ges_track_get_objects (track);
     GST_DEBUG_OBJECT (track, "Testing track");
     switch (track->type) {
       case GES_TRACK_TYPE_VIDEO:
-        assert_equals_int (g_list_length (trackobjs), 2);
-        for (tmptckobj = trackobjs; tmptckobj; tmptckobj = tmptckobj->next) {
-          GESTrackObject *tckobj = GES_TRACK_OBJECT (tmptckobj->data);
+        assert_equals_int (g_list_length (trackelements), 2);
+        for (tmptrackelement = trackelements; tmptrackelement;
+            tmptrackelement = tmptrackelement->next) {
+          GESTrackElement *trackelement =
+              GES_TRACK_ELEMENT (tmptrackelement->data);
 
-          if (GES_IS_TRACK_EFFECT (tckobj)) {
+          if (GES_IS_TRACK_EFFECT (trackelement)) {
             guint nb_scratch_lines;
 
-            ges_track_object_get_child_properties (tckobj, "scratch-lines",
-                &nb_scratch_lines, NULL);
+            ges_track_element_get_child_properties (trackelement,
+                "scratch-lines", &nb_scratch_lines, NULL);
             assert_equals_int (nb_scratch_lines, 12);
 
-            gnl_object_check (ges_track_object_get_gnlobject (tckobj),
+            gnl_object_check (ges_track_element_get_gnlobject (trackelement),
                 0, 1000000000, 0, 1000000000, 0, TRUE);
           } else {
-            gnl_object_check (ges_track_object_get_gnlobject (tckobj),
+            gnl_object_check (ges_track_element_get_gnlobject (trackelement),
                 0, 1000000000, 0, 1000000000, 1, TRUE);
           }
         }
         break;
       case GES_TRACK_TYPE_AUDIO:
-        assert_equals_int (g_list_length (trackobjs), 2);
+        assert_equals_int (g_list_length (trackelements), 2);
         break;
       default:
         g_assert (1);
     }
 
-    g_list_free_full (trackobjs, gst_object_unref);
+    g_list_free_full (trackelements, gst_object_unref);
 
   }
   g_list_free_full (tracks, gst_object_unref);
index 6c761082cc83d6fd0e46a0e69eeb23ab61d19bb0..635e2cbac557b75134675f19fe03293535dccbf1 100644 (file)
 
 static gboolean
 my_fill_track_func (GESClip * object,
-    GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data)
+    GESTrackElement * trobject, GstElement * gnlobj, gpointer user_data)
 {
   GstElement *src;
 
-  GST_DEBUG ("timelineobj:%p, trackobjec:%p, gnlobj:%p",
+  GST_DEBUG ("timelineobj:%p, trackelementec:%p, gnlobj:%p",
       object, trobject, gnlobj);
 
   /* Let's just put a fakesource in for the time being */
@@ -42,13 +42,13 @@ my_fill_track_func (GESClip * object,
 
 static gboolean
 arbitrary_fill_track_func (GESClip * object,
-    GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data)
+    GESTrackElement * trobject, GstElement * gnlobj, gpointer user_data)
 {
   GstElement *src;
 
   g_assert (user_data);
 
-  GST_DEBUG ("element:%s, timelineobj:%p, trackobjects:%p, gnlobj:%p,",
+  GST_DEBUG ("element:%s, timelineobj:%p, trackelements:%p, gnlobj:%p,",
       (const gchar *) user_data, object, trobject, gnlobj);
 
   /* interpret user_data as name of element to create */
index d3b874d666d3999f36efb222be7a294b2af7ee0c..aa4a5e419f9c360551231eae9a98eb2bebeab8ce 100644 (file)
@@ -26,7 +26,7 @@ GST_START_TEST (test_text_properties_in_layer)
   GESTimeline *timeline;
   GESTimelineLayer *layer;
   GESTrack *a, *v;
-  GESTrackObject *trobj;
+  GESTrackElement *trobj;
   GESTestClip *source;
   gchar *text;
   gint halign, valign;
@@ -50,7 +50,7 @@ GST_START_TEST (test_text_properties_in_layer)
       (GESClip *) source, 0);
 
   trobj =
-      ges_clip_find_track_object (GES_CLIP (source), v,
+      ges_clip_find_track_element (GES_CLIP (source), v,
       GES_TYPE_TRACK_TEXT_OVERLAY);
 
   fail_unless (trobj != NULL);
index e1125d688da86720bd5ea532ffadf8c56bcb3de7..ba2264be14417d03657b641dee7a9c6e8bb75070 100644 (file)
 
 static gboolean
 my_fill_track_func (GESClip * object,
-    GESTrackObject * trobject, GstElement * gnlobj, gpointer user_data)
+    GESTrackElement * trobject, GstElement * gnlobj, gpointer user_data)
 {
   GstElement *src;
 
-  GST_DEBUG ("timelineobj:%p, trackobjec:%p, gnlobj:%p",
+  GST_DEBUG ("timelineobj:%p, trackelementec:%p, gnlobj:%p",
       object, trobject, gnlobj);
 
   /* Let's just put a fakesource in for the time being */
@@ -56,7 +56,7 @@ GST_START_TEST (test_basic_timeline_edition)
 {
   GESTrack *track;
   GESTimeline *timeline;
-  GESTrackObject *tckobj, *tckobj1, *tckobj2;
+  GESTrackElement *trackelement, *trackelement1, *trackelement2;
   GESClip *obj, *obj1, *obj2;
 
   ges_init ();
@@ -90,23 +90,23 @@ GST_START_TEST (test_basic_timeline_edition)
   g_object_set (obj2, "start", (guint64) 50, "duration", (guint64) 60,
       "in-point", (guint64) 0, NULL);
 
-  tckobj = ges_clip_create_track_object (obj, track->type);
-  fail_unless (tckobj != NULL);
-  fail_unless (ges_clip_add_track_object (obj, tckobj));
-  fail_unless (ges_track_add_object (track, tckobj));
-  assert_equals_uint64 (_DURATION (tckobj), 10);
+  trackelement = ges_clip_create_track_element (obj, track->type);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_clip_add_track_element (obj, trackelement));
+  fail_unless (ges_track_add_object (track, trackelement));
+  assert_equals_uint64 (_DURATION (trackelement), 10);
 
-  tckobj1 = ges_clip_create_track_object (obj1, track->type);
-  fail_unless (tckobj1 != NULL);
-  fail_unless (ges_clip_add_track_object (obj1, tckobj1));
-  fail_unless (ges_track_add_object (track, tckobj1));
-  assert_equals_uint64 (_DURATION (tckobj1), 10);
+  trackelement1 = ges_clip_create_track_element (obj1, track->type);
+  fail_unless (trackelement1 != NULL);
+  fail_unless (ges_clip_add_track_element (obj1, trackelement1));
+  fail_unless (ges_track_add_object (track, trackelement1));
+  assert_equals_uint64 (_DURATION (trackelement1), 10);
 
-  tckobj2 = ges_clip_create_track_object (obj2, track->type);
-  fail_unless (ges_clip_add_track_object (obj2, tckobj2));
-  fail_unless (tckobj2 != NULL);
-  fail_unless (ges_track_add_object (track, tckobj2));
-  assert_equals_uint64 (_DURATION (tckobj2), 60);
+  trackelement2 = ges_clip_create_track_element (obj2, track->type);
+  fail_unless (ges_clip_add_track_element (obj2, trackelement2));
+  fail_unless (trackelement2 != NULL);
+  fail_unless (ges_track_add_object (track, trackelement2));
+  assert_equals_uint64 (_DURATION (trackelement2), 60);
 
   /**
    * Simple rippling obj to: 10
@@ -120,27 +120,27 @@ GST_START_TEST (test_basic_timeline_edition)
    */
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_NONE, 10) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 10, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 60, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 10, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 60, 0, 60);
 
 
   /* FIXME find a way to check that we are using the same MovingContext
    * inside the GESTrack */
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_NONE, 40) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 10, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 40, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 80, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 10, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 40, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 80, 0, 60);
 
   /**
    * Rippling obj1 back to: 20 (getting to the exact same timeline as before
    */
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_NONE, 20) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 10, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 60, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 10, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 60, 0, 60);
 
   /**
    * Simple move obj to: 27 and obj2 to 35
@@ -156,9 +156,9 @@ GST_START_TEST (test_basic_timeline_edition)
           GES_EDGE_NONE, 27) == TRUE);
   fail_unless (ges_clip_edit (obj2, NULL, -1, GES_EDIT_MODE_NORMAL,
           GES_EDGE_NONE, 35) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 27, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 35, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 27, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 35, 0, 60);
 
   /**
    * Trim start obj to: 32 and obj2 to 35
@@ -172,9 +172,9 @@ GST_START_TEST (test_basic_timeline_edition)
    */
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_START, 32) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 32, 5, 5);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 35, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 32, 5, 5);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 35, 0, 60);
 
   /* Ripple end obj to 42
    * New timeline:
@@ -186,9 +186,9 @@ GST_START_TEST (test_basic_timeline_edition)
    */
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_END, 42) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 32, 5, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 35, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 32, 5, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 35, 0, 60);
 
   /**
    * New timeline:
@@ -201,9 +201,9 @@ GST_START_TEST (test_basic_timeline_edition)
           GES_EDGE_NONE, 42) == TRUE);
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_END, 52) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 32, 5, 20);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 52, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 32, 5, 20);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 52, 0, 60);
 
   /**
    * New timeline:
@@ -214,9 +214,9 @@ GST_START_TEST (test_basic_timeline_edition)
    */
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_END, 40) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 42, 5, 20);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 20);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 42, 5, 20);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 20);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /**
    * New timeline:
@@ -229,18 +229,18 @@ GST_START_TEST (test_basic_timeline_edition)
           GES_EDGE_START, 40) == TRUE);
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_ROLL,
           GES_EDGE_START, 25) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 5);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 5);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /* Make sure that not doing anything when not able to roll */
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_ROLL,
           GES_EDGE_START, 65) == TRUE);
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_ROLL,
           GES_EDGE_END, 65) == TRUE, 0);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 5);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 5);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   g_object_unref (timeline);
   g_object_unref (obj);
@@ -254,10 +254,10 @@ GST_START_TEST (test_snapping)
 {
   GESTrack *track;
   GESTimeline *timeline;
-  GESTrackObject *tckobj, *tckobj1, *tckobj2;
+  GESTrackElement *trackelement, *trackelement1, *trackelement2;
   GESClip *obj, *obj1, *obj2;
   GESTimelineLayer *layer;
-  GList *tckobjs;
+  GList *trackelements;
 
   ges_init ();
 
@@ -294,55 +294,58 @@ GST_START_TEST (test_snapping)
 
 
   fail_unless (ges_timeline_layer_add_object (layer, obj));
-  fail_unless ((tckobjs = ges_clip_get_track_objects (obj)) != NULL);
-  fail_unless ((tckobj = GES_TRACK_OBJECT (tckobjs->data)) != NULL);
-  fail_unless (ges_track_object_get_track (tckobj) == track);
-  assert_equals_uint64 (_DURATION (tckobj), 37);
-  g_list_free_full (tckobjs, g_object_unref);
-
-  /* We have 3 references to tckobj from:
+  fail_unless ((trackelements = ges_clip_get_track_elements (obj)) != NULL);
+  fail_unless ((trackelement =
+          GES_TRACK_ELEMENT (trackelements->data)) != NULL);
+  fail_unless (ges_track_element_get_track (trackelement) == track);
+  assert_equals_uint64 (_DURATION (trackelement), 37);
+  g_list_free_full (trackelements, g_object_unref);
+
+  /* We have 3 references to trackelement from:
    *  track + timeline + obj */
-  ASSERT_OBJECT_REFCOUNT (tckobj, "First tckobj", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement, "First trackelement", 3);
   /* We have 1 ref to obj1:
    * + layer */
   ASSERT_OBJECT_REFCOUNT (obj, "First clip", 1);
 
   fail_unless (ges_timeline_layer_add_object (layer, obj1));
-  fail_unless ((tckobjs = ges_clip_get_track_objects (obj1)) != NULL);
-  fail_unless ((tckobj1 = GES_TRACK_OBJECT (tckobjs->data)) != NULL);
-  fail_unless (ges_track_object_get_track (tckobj1) == track);
-  assert_equals_uint64 (_DURATION (tckobj1), 15);
-  g_list_free_full (tckobjs, g_object_unref);
+  fail_unless ((trackelements = ges_clip_get_track_elements (obj1)) != NULL);
+  fail_unless ((trackelement1 =
+          GES_TRACK_ELEMENT (trackelements->data)) != NULL);
+  fail_unless (ges_track_element_get_track (trackelement1) == track);
+  assert_equals_uint64 (_DURATION (trackelement1), 15);
+  g_list_free_full (trackelements, g_object_unref);
 
   /* Same ref logic */
-  ASSERT_OBJECT_REFCOUNT (tckobj1, "First tckobj", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement1, "First trackelement", 3);
   ASSERT_OBJECT_REFCOUNT (obj1, "First clip", 1);
 
   fail_unless (ges_timeline_layer_add_object (layer, obj2));
-  fail_unless ((tckobjs = ges_clip_get_track_objects (obj2)) != NULL);
-  fail_unless ((tckobj2 = GES_TRACK_OBJECT (tckobjs->data)) != NULL);
-  fail_unless (ges_track_object_get_track (tckobj2) == track);
-  assert_equals_uint64 (_DURATION (tckobj2), 60);
-  g_list_free_full (tckobjs, g_object_unref);
+  fail_unless ((trackelements = ges_clip_get_track_elements (obj2)) != NULL);
+  fail_unless ((trackelement2 =
+          GES_TRACK_ELEMENT (trackelements->data)) != NULL);
+  fail_unless (ges_track_element_get_track (trackelement2) == track);
+  assert_equals_uint64 (_DURATION (trackelement2), 60);
+  g_list_free_full (trackelements, g_object_unref);
 
   /* Same ref logic */
-  ASSERT_OBJECT_REFCOUNT (tckobj2, "First tckobj", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement2, "First trackelement", 3);
   ASSERT_OBJECT_REFCOUNT (obj2, "First clip", 1);
 
   /* Snaping to edge, so no move */
   g_object_set (timeline, "snapping-distance", (guint64) 3, NULL);
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_END, 27) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 5);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 5);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /* Snaping to edge, so no move */
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_END, 27) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 5);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 5);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /**
    * New timeline:
@@ -354,9 +357,9 @@ GST_START_TEST (test_snapping)
    */
   g_object_set (timeline, "snapping-distance", (guint64) 0, NULL);
   ges_timeline_element_set_duration (GES_TIMELINE_ELEMENT (obj1), 10);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /**
    * New timeline(the "layers" are just to help reading diagram, nothing else):
@@ -372,9 +375,9 @@ GST_START_TEST (test_snapping)
   fail_unless (ges_timeline_element_roll_end (GES_TIMELINE_ELEMENT (obj1), 62));
   fail_unless (ges_timeline_element_roll_end (GES_TIMELINE_ELEMENT (obj1),
           72) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 52);
-  CHECK_OBJECT_PROPS (tckobj2, 72, 10, 50);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 52);
+  CHECK_OBJECT_PROPS (trackelement2, 72, 10, 50);
 
   /**
    *                    0----------
@@ -387,9 +390,9 @@ GST_START_TEST (test_snapping)
   g_object_set (timeline, "snapping-distance", (guint64) 4, NULL);
   fail_unless (ges_timeline_element_trim (GES_TIMELINE_ELEMENT (obj1),
           28) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 25, 5, 47);
-  CHECK_OBJECT_PROPS (tckobj2, 72, 10, 50);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 25, 5, 47);
+  CHECK_OBJECT_PROPS (trackelement2, 72, 10, 50);
 
   /**
    *                    0----------
@@ -401,9 +404,9 @@ GST_START_TEST (test_snapping)
    */
   fail_unless (ges_timeline_element_roll_start (GES_TIMELINE_ELEMENT (obj2),
           59) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 25, 5, 37);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 25, 5, 37);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
    /**
    * inpoints           0----------5---------- 0----------
@@ -412,9 +415,9 @@ GST_START_TEST (test_snapping)
    */
   fail_unless (ges_timeline_element_ripple (GES_TIMELINE_ELEMENT (obj1),
           58) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 62, 5, 37);
-  CHECK_OBJECT_PROPS (tckobj2, 99, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 62, 5, 37);
+  CHECK_OBJECT_PROPS (trackelement2, 99, 0, 60);
 
   /**
    * inpoints     0----------5----------     0----------
@@ -422,9 +425,9 @@ GST_START_TEST (test_snapping)
    * time         25---------62-------- 99  110--------170
    */
   ges_timeline_element_set_start (GES_TIMELINE_ELEMENT (obj2), 110);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 62, 5, 37);
-  CHECK_OBJECT_PROPS (tckobj2, 110, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 62, 5, 37);
+  CHECK_OBJECT_PROPS (trackelement2, 110, 0, 60);
 
   /**
    * inpoints     0----------5    5 --------- 0----------
@@ -433,9 +436,9 @@ GST_START_TEST (test_snapping)
    */
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_NORMAL,
           GES_EDGE_NONE, 72) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 73, 5, 37);
-  CHECK_OBJECT_PROPS (tckobj2, 110, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 73, 5, 37);
+  CHECK_OBJECT_PROPS (trackelement2, 110, 0, 60);
 
   /**
    * inpoints     0----------5----------     0----------
@@ -444,9 +447,9 @@ GST_START_TEST (test_snapping)
    */
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_NORMAL,
           GES_EDGE_NONE, 58) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 62, 5, 37);
-  CHECK_OBJECT_PROPS (tckobj2, 110, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 62, 5, 37);
+  CHECK_OBJECT_PROPS (trackelement2, 110, 0, 60);
 
 
   /**
@@ -455,9 +458,9 @@ GST_START_TEST (test_snapping)
    * time         25---------62--------110--------170
    */
   g_object_set (obj1, "duration", 46, NULL);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 62, 5, 48);
-  CHECK_OBJECT_PROPS (tckobj2, 110, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 62, 5, 48);
+  CHECK_OBJECT_PROPS (trackelement2, 110, 0, 60);
 
   /**
    * inpoints     5----------- 0--------- 0----------
@@ -465,14 +468,14 @@ GST_START_TEST (test_snapping)
    * time         62---------110--------170--------207
    */
   g_object_set (obj, "start", 168, NULL);
-  CHECK_OBJECT_PROPS (tckobj, 170, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 62, 5, 48);
-  CHECK_OBJECT_PROPS (tckobj2, 110, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 170, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 62, 5, 48);
+  CHECK_OBJECT_PROPS (trackelement2, 110, 0, 60);
 
   /* Check we didn't lose/screwed any references */
-  ASSERT_OBJECT_REFCOUNT (tckobj, "First tckobj", 3);
-  ASSERT_OBJECT_REFCOUNT (tckobj1, "Second tckobj", 3);
-  ASSERT_OBJECT_REFCOUNT (tckobj2, "Third tckobj", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement, "First trackelement", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement1, "Second trackelement", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement2, "Third trackelement", 3);
   ASSERT_OBJECT_REFCOUNT (obj, "First clip", 1);
   ASSERT_OBJECT_REFCOUNT (obj1, "Second clip", 1);
   ASSERT_OBJECT_REFCOUNT (obj2, "Third clip", 1);
@@ -480,9 +483,9 @@ GST_START_TEST (test_snapping)
   g_object_unref (timeline);
 
   /* Check we destroyed everything */
-  fail_if (G_IS_OBJECT (tckobj));
-  fail_if (G_IS_OBJECT (tckobj1));
-  fail_if (G_IS_OBJECT (tckobj2));
+  fail_if (G_IS_OBJECT (trackelement));
+  fail_if (G_IS_OBJECT (trackelement1));
+  fail_if (G_IS_OBJECT (trackelement2));
   fail_if (G_IS_OBJECT (obj));
   fail_if (G_IS_OBJECT (obj1));
   fail_if (G_IS_OBJECT (obj2));
@@ -496,10 +499,10 @@ GST_START_TEST (test_timeline_edition_mode)
   guint i;
   GESTrack *track;
   GESTimeline *timeline;
-  GESTrackObject *tckobj, *tckobj1, *tckobj2;
+  GESTrackElement *trackelement, *trackelement1, *trackelement2;
   GESClip *obj, *obj1, *obj2;
   GESTimelineLayer *layer, *layer1, *layer2;
-  GList *tckobjs, *layers, *tmp;
+  GList *trackelements, *layers, *tmp;
 
   ges_init ();
 
@@ -540,11 +543,12 @@ GST_START_TEST (test_timeline_edition_mode)
 
 
   fail_unless (ges_timeline_layer_add_object (layer, obj));
-  fail_unless ((tckobjs = ges_clip_get_track_objects (obj)) != NULL);
-  fail_unless ((tckobj = GES_TRACK_OBJECT (tckobjs->data)) != NULL);
-  fail_unless (ges_track_object_get_track (tckobj) == track);
-  assert_equals_uint64 (_DURATION (tckobj), 10);
-  g_list_free_full (tckobjs, g_object_unref);
+  fail_unless ((trackelements = ges_clip_get_track_elements (obj)) != NULL);
+  fail_unless ((trackelement =
+          GES_TRACK_ELEMENT (trackelements->data)) != NULL);
+  fail_unless (ges_track_element_get_track (trackelement) == track);
+  assert_equals_uint64 (_DURATION (trackelement), 10);
+  g_list_free_full (trackelements, g_object_unref);
 
   /* Add a new layer and add objects to it */
   fail_unless ((layer1 = ges_timeline_append_layer (timeline)) != NULL);
@@ -552,18 +556,20 @@ GST_START_TEST (test_timeline_edition_mode)
   assert_equals_int (ges_timeline_layer_get_priority (layer1), 1);
 
   fail_unless (ges_timeline_layer_add_object (layer1, obj1));
-  fail_unless ((tckobjs = ges_clip_get_track_objects (obj1)) != NULL);
-  fail_unless ((tckobj1 = GES_TRACK_OBJECT (tckobjs->data)) != NULL);
-  fail_unless (ges_track_object_get_track (tckobj1) == track);
-  assert_equals_uint64 (_DURATION (tckobj1), 10);
-  g_list_free_full (tckobjs, g_object_unref);
+  fail_unless ((trackelements = ges_clip_get_track_elements (obj1)) != NULL);
+  fail_unless ((trackelement1 =
+          GES_TRACK_ELEMENT (trackelements->data)) != NULL);
+  fail_unless (ges_track_element_get_track (trackelement1) == track);
+  assert_equals_uint64 (_DURATION (trackelement1), 10);
+  g_list_free_full (trackelements, g_object_unref);
 
   fail_unless (ges_timeline_layer_add_object (layer1, obj2));
-  fail_unless ((tckobjs = ges_clip_get_track_objects (obj2)) != NULL);
-  fail_unless ((tckobj2 = GES_TRACK_OBJECT (tckobjs->data)) != NULL);
-  fail_unless (ges_track_object_get_track (tckobj2) == track);
-  assert_equals_uint64 (_DURATION (tckobj2), 60);
-  g_list_free_full (tckobjs, g_object_unref);
+  fail_unless ((trackelements = ges_clip_get_track_elements (obj2)) != NULL);
+  fail_unless ((trackelement2 =
+          GES_TRACK_ELEMENT (trackelements->data)) != NULL);
+  fail_unless (ges_track_element_get_track (trackelement2) == track);
+  assert_equals_uint64 (_DURATION (trackelement2), 60);
+  g_list_free_full (trackelements, g_object_unref);
 
   /**
    * Simple rippling obj to: 10
@@ -581,18 +587,18 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_NONE, 10) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 10, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 60, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 10, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 60, 0, 60);
 
 
   /* FIXME find a way to check that we are using the same MovingContext
    * inside the GESTimeline */
   fail_unless (ges_clip_edit (obj1, NULL, 3, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_NONE, 40) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 10, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 40, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 80, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 10, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 40, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 80, 0, 60);
   layer2 = ges_clip_get_layer (obj1);
   assert_equals_int (ges_timeline_layer_get_priority (layer2), 3);
   /* obj2 should have moved layer too */
@@ -606,9 +612,9 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj1, NULL, 1, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_NONE, 20) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 10, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 60, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 10, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 60, 0, 60);
   layer2 = ges_clip_get_layer (obj1);
   assert_equals_int (ges_timeline_layer_get_priority (layer2), 1);
   /* obj2 should have moved layer too */
@@ -635,9 +641,9 @@ GST_START_TEST (test_timeline_edition_mode)
           GES_EDGE_NONE, 27) == TRUE);
   fail_unless (ges_clip_edit (obj2, NULL, -1, GES_EDIT_MODE_NORMAL,
           GES_EDGE_NONE, 35) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 27, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 35, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 27, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 35, 0, 60);
 
   /**
    * Simple trimming start obj to: 32
@@ -655,9 +661,9 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_START, 32) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 32, 5, 5);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 35, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 32, 5, 5);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 35, 0, 60);
 
   /* Ripple end obj to 35 and move to layer 2
    * New timeline:
@@ -673,9 +679,9 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj, NULL, 2, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_END, 35) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 32, 5, 3);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 35, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 32, 5, 3);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 35, 0, 60);
   layer = ges_clip_get_layer (obj);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 2);
   g_object_unref (layer);
@@ -694,9 +700,9 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj, NULL, 2, GES_EDIT_MODE_ROLL,
           GES_EDGE_END, 50) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 32, 5, 18);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 50, 15, 45);
+  CHECK_OBJECT_PROPS (trackelement, 32, 5, 18);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 50, 15, 45);
   layer = ges_clip_get_layer (obj);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 2);
   g_object_unref (layer);
@@ -708,9 +714,9 @@ GST_START_TEST (test_timeline_edition_mode)
 
     fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_ROLL,
             GES_EDGE_END, random) == TRUE);
-    CHECK_OBJECT_PROPS (tckobj, 32, 5, random - 32);
-    CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-    CHECK_OBJECT_PROPS (tckobj2, random, tck3_inpoint, 95 - random);
+    CHECK_OBJECT_PROPS (trackelement, 32, 5, random - 32);
+    CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+    CHECK_OBJECT_PROPS (trackelement2, random, tck3_inpoint, 95 - random);
   }
 
   /* Roll end obj back to 35
@@ -727,9 +733,9 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj, NULL, 2, GES_EDIT_MODE_ROLL,
           GES_EDGE_END, 35) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 32, 5, 3);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 35, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 32, 5, 3);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 35, 0, 60);
   layer = ges_clip_get_layer (obj);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 2);
   g_object_unref (layer);
@@ -750,9 +756,9 @@ GST_START_TEST (test_timeline_edition_mode)
   /* Can not move to the first layer as obj2 should move to a layer with priority < 0 */
   fail_unless (ges_clip_edit (obj, NULL, 0, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_END, 52) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 32, 5, 20);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 52, 0, 60)
+  CHECK_OBJECT_PROPS (trackelement, 32, 5, 20);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 52, 0, 60)
       layer = ges_clip_get_layer (obj);
   assert_equals_int (ges_timeline_layer_get_priority (layer), 2);
   g_object_unref (layer);
@@ -771,9 +777,9 @@ GST_START_TEST (test_timeline_edition_mode)
   /* We have 3 references:
    *  track  + timeline  + obj
    */
-  ASSERT_OBJECT_REFCOUNT (tckobj, "First tckobj", 3);
-  ASSERT_OBJECT_REFCOUNT (tckobj1, "Second tckobj", 3);
-  ASSERT_OBJECT_REFCOUNT (tckobj2, "Third tckobj", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement, "First trackelement", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement1, "Second trackelement", 3);
+  ASSERT_OBJECT_REFCOUNT (trackelement2, "Third trackelement", 3);
   /* We have 1 ref:
    * + layer */
   ASSERT_OBJECT_REFCOUNT (obj, "First clip", 1);
@@ -795,9 +801,9 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj1, NULL, 0, GES_EDIT_MODE_RIPPLE,
           GES_EDGE_END, 40) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 42, 5, 20);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 20);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 42, 5, 20);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 20);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /* Check that movement between layer has been done properly */
   layer1 = ges_clip_get_layer (obj);
@@ -825,9 +831,9 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_START, 40) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 40, 3, 22);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 20);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 40, 3, 22);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 20);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /* Roll obj end to 25
    * New timeline:
@@ -844,34 +850,34 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_ROLL,
           GES_EDGE_END, 25) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 5);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 5);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /* Make sure that not doing anything when not able to roll */
   fail_unless (ges_clip_edit (obj, NULL, -1, GES_EDIT_MODE_ROLL,
           GES_EDGE_START, 65) == TRUE);
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_ROLL,
           GES_EDGE_END, 65) == TRUE, 0);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 5);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 5);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /* Snaping to edge, so no move */
   g_object_set (timeline, "snapping-distance", (guint64) 3, NULL);
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_END, 27) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 5);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 5);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /* Snaping to edge, so no move */
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_END, 27) == TRUE);
 
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 5);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 5);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /**
    * New timeline:
@@ -884,9 +890,9 @@ GST_START_TEST (test_timeline_edition_mode)
   g_object_set (timeline, "snapping-distance", (guint64) 0, NULL);
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_END, 30) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 10);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 10);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
   /**
    * New timeline
@@ -903,9 +909,9 @@ GST_START_TEST (test_timeline_edition_mode)
           GES_EDGE_END, 62) == TRUE);
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_ROLL,
           GES_EDGE_END, 72) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 20, 0, 52);
-  CHECK_OBJECT_PROPS (tckobj2, 72, 10, 50);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 20, 0, 52);
+  CHECK_OBJECT_PROPS (trackelement2, 72, 10, 50);
 
   /* Test Snapping */
   /**
@@ -919,9 +925,9 @@ GST_START_TEST (test_timeline_edition_mode)
   g_object_set (timeline, "snapping-distance", (guint64) 4, NULL);
   fail_unless (ges_clip_edit (obj1, NULL, -1, GES_EDIT_MODE_TRIM,
           GES_EDGE_START, 28) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 25, 5, 47);
-  CHECK_OBJECT_PROPS (tckobj2, 72, 10, 50);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 25, 5, 47);
+  CHECK_OBJECT_PROPS (trackelement2, 72, 10, 50);
 
   /**
    *                    0----------
@@ -933,9 +939,9 @@ GST_START_TEST (test_timeline_edition_mode)
    */
   fail_unless (ges_clip_edit (obj2, NULL, -1, GES_EDIT_MODE_ROLL,
           GES_EDGE_START, 59) == TRUE);
-  CHECK_OBJECT_PROPS (tckobj, 25, 0, 37);
-  CHECK_OBJECT_PROPS (tckobj1, 25, 5, 37);
-  CHECK_OBJECT_PROPS (tckobj2, 62, 0, 60);
+  CHECK_OBJECT_PROPS (trackelement, 25, 0, 37);
+  CHECK_OBJECT_PROPS (trackelement1, 25, 5, 37);
+  CHECK_OBJECT_PROPS (trackelement2, 62, 0, 60);
 
 }
 
index acb9caacdba24ee19855ac58f4a5e3e3f6e23411..8dcec127d2dd74386286663b43509111fc48d092 100644 (file)
@@ -38,7 +38,7 @@ GST_END_TEST;
 GST_START_TEST (test_title_source_properties)
 {
   GESTrack *track;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESClip *object;
 
   ges_init ();
@@ -57,18 +57,18 @@ GST_START_TEST (test_title_source_properties)
   assert_equals_uint64 (_DURATION (object), 51);
   assert_equals_uint64 (_INPOINT (object), 12);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 51);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 51);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
@@ -77,15 +77,15 @@ GST_START_TEST (test_title_source_properties)
   assert_equals_uint64 (_START (object), 420);
   assert_equals_uint64 (_DURATION (object), 510);
   assert_equals_uint64 (_INPOINT (object), 120);
-  assert_equals_uint64 (_START (trackobject), 420);
-  assert_equals_uint64 (_DURATION (trackobject), 510);
-  assert_equals_uint64 (_INPOINT (trackobject), 120);
+  assert_equals_uint64 (_START (trackelement), 420);
+  assert_equals_uint64 (_DURATION (trackelement), 510);
+  assert_equals_uint64 (_INPOINT (trackelement), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, TRUE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, TRUE);
 
-  ges_clip_release_track_object (object, trackobject);
+  ges_clip_release_track_element (object, trackelement);
   g_object_unref (object);
 }
 
@@ -96,7 +96,7 @@ GST_START_TEST (test_title_source_in_layer)
   GESTimeline *timeline;
   GESTimelineLayer *layer;
   GESTrack *a, *v;
-  GESTrackObject *trobj;
+  GESTrackElement *trobj;
   GESTitleClip *source;
   gchar *text;
   gint halign, valign;
@@ -129,7 +129,7 @@ GST_START_TEST (test_title_source_in_layer)
   g_free (text);
 
   trobj =
-      ges_clip_find_track_object (GES_CLIP (source), v,
+      ges_clip_find_track_element (GES_CLIP (source), v,
       GES_TYPE_TRACK_TITLE_SOURCE);
 
   /* Check the text is still the same */
index 173a2bc35ddec0bcdf32504ee38a61b179eabe66..9164f519b969d345f2f8c1bd704bfcb41163e73d 100644 (file)
@@ -28,7 +28,7 @@
 GST_START_TEST (test_transition_basic)
 {
   GESTransitionClip *tr1, *tr2;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESTrack *track;
 
   ges_init ();
@@ -45,15 +45,15 @@ GST_START_TEST (test_transition_basic)
   fail_unless (tr2->vtype == 1);
 
   /* Make sure track object is created and vtype is set */
-  trackobject = ges_clip_create_track_object (GES_CLIP (tr2), track->type);
-  ges_clip_add_track_object (GES_CLIP (tr2), trackobject);
+  trackelement = ges_clip_create_track_element (GES_CLIP (tr2), track->type);
+  ges_clip_add_track_element (GES_CLIP (tr2), trackelement);
 
-  fail_unless (trackobject != NULL);
+  fail_unless (trackelement != NULL);
   fail_unless (ges_track_video_transition_get_transition_type
-      (GES_TRACK_VIDEO_TRANSITION (trackobject)) == 1);
+      (GES_TRACK_VIDEO_TRANSITION (trackelement)) == 1);
 
-  fail_unless (ges_clip_release_track_object (GES_CLIP
-          (tr2), trackobject) == TRUE);
+  fail_unless (ges_clip_release_track_element (GES_CLIP
+          (tr2), trackelement) == TRUE);
 
   g_object_unref (track);
   g_object_unref (tr1);
@@ -65,7 +65,7 @@ GST_END_TEST;
 GST_START_TEST (test_transition_properties)
 {
   GESTrack *track;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESClip *object;
 
   ges_init ();
@@ -85,18 +85,18 @@ GST_START_TEST (test_transition_properties)
   assert_equals_uint64 (_DURATION (object), 51);
   assert_equals_uint64 (_INPOINT (object), 12);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 51);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 51);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
@@ -105,13 +105,13 @@ GST_START_TEST (test_transition_properties)
   assert_equals_uint64 (_START (object), 420);
   assert_equals_uint64 (_DURATION (object), 510);
   assert_equals_uint64 (_INPOINT (object), 120);
-  assert_equals_uint64 (_START (trackobject), 420);
-  assert_equals_uint64 (_DURATION (trackobject), 510);
-  assert_equals_uint64 (_INPOINT (trackobject), 120);
+  assert_equals_uint64 (_START (trackelement), 420);
+  assert_equals_uint64 (_DURATION (trackelement), 510);
+  assert_equals_uint64 (_INPOINT (trackelement), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, TRUE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, TRUE);
 
   /* test changing vtype */
   GST_DEBUG ("Setting to crossfade");
@@ -120,7 +120,7 @@ GST_START_TEST (test_transition_properties)
   assert_equals_int (GES_TRANSITION_CLIP (object)->vtype,
       GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
   assert_equals_int (ges_track_video_transition_get_transition_type
-      (GES_TRACK_VIDEO_TRANSITION (trackobject)),
+      (GES_TRACK_VIDEO_TRANSITION (trackelement)),
       GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE);
 
   /* Check that changing from crossfade to anything else fails (it should
@@ -130,27 +130,27 @@ GST_START_TEST (test_transition_properties)
 
   assert_equals_int (GES_TRANSITION_CLIP (object)->vtype, 1);
   assert_equals_int (ges_track_video_transition_get_transition_type
-      (GES_TRACK_VIDEO_TRANSITION (trackobject)), 1);
+      (GES_TRACK_VIDEO_TRANSITION (trackelement)), 1);
 
   GST_DEBUG ("Releasing track object");
-  ges_clip_release_track_object (object, trackobject);
+  ges_clip_release_track_element (object, trackelement);
 
   g_object_set (object, "vtype", 1, NULL);
 
   GST_DEBUG ("creating track object");
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
   /* The new track object should have taken the previously set transition
    * type (in this case 1) */
   GST_DEBUG ("Setting to vtype:1");
   assert_equals_int (ges_track_video_transition_get_transition_type
-      (GES_TRACK_VIDEO_TRANSITION (trackobject)), 1);
+      (GES_TRACK_VIDEO_TRANSITION (trackelement)), 1);
   assert_equals_int (GES_TRANSITION_CLIP (object)->vtype, 1);
 
-  ges_clip_release_track_object (object, trackobject);
+  ges_clip_release_track_element (object, trackelement);
   g_object_unref (object);
   g_object_unref (track);
 }
index 0933b179c7cd88c2b91bf3559113c628a92377df..d37da9775c5785ba865791664f55d5cdc33c94f7 100644 (file)
@@ -57,11 +57,11 @@ asset_created_cb (GObject * source, GAsyncResult * res, gpointer udata)
 
   tracks = ges_timeline_get_tracks (ges_timeline_layer_get_timeline (layer));
   for (tmp = tracks; tmp; tmp = tmp->next) {
-    GList *tckobjs = ges_track_get_objects (GES_TRACK (tmp->data));
+    GList *trackelements = ges_track_get_objects (GES_TRACK (tmp->data));
 
-    assert_equals_int (g_list_length (tckobjs), 1);
-    fail_unless (GES_IS_TRACK_FILESOURCE (tckobjs->data));
-    g_list_free_full (tckobjs, gst_object_unref);
+    assert_equals_int (g_list_length (trackelements), 1);
+    fail_unless (GES_IS_TRACK_FILESOURCE (trackelements->data));
+    g_list_free_full (trackelements, gst_object_unref);
   }
   g_list_free_full (tracks, gst_object_unref);
 
@@ -113,7 +113,7 @@ GST_END_TEST;
 GST_START_TEST (test_filesource_properties)
 {
   GESTrack *track;
-  GESTrackObject *trackobject;
+  GESTrackElement *trackelement;
   GESClip *object;
 
   ges_init ();
@@ -134,18 +134,18 @@ GST_START_TEST (test_filesource_properties)
   assert_equals_uint64 (_DURATION (object), 51);
   assert_equals_uint64 (_INPOINT (object), 12);
 
-  trackobject = ges_clip_create_track_object (object, track->type);
-  ges_clip_add_track_object (object, trackobject);
-  fail_unless (trackobject != NULL);
-  fail_unless (ges_track_object_set_track (trackobject, track));
+  trackelement = ges_clip_create_track_element (object, track->type);
+  ges_clip_add_track_element (object, trackelement);
+  fail_unless (trackelement != NULL);
+  fail_unless (ges_track_element_set_track (trackelement, track));
 
-  /* Check that trackobject has the same properties */
-  assert_equals_uint64 (_START (trackobject), 42);
-  assert_equals_uint64 (_DURATION (trackobject), 51);
-  assert_equals_uint64 (_INPOINT (trackobject), 12);
+  /* Check that trackelement has the same properties */
+  assert_equals_uint64 (_START (trackelement), 42);
+  assert_equals_uint64 (_DURATION (trackelement), 51);
+  assert_equals_uint64 (_INPOINT (trackelement), 12);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 42, 51, 12,
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
       51, 0, TRUE);
 
   /* Change more properties, see if they propagate */
@@ -154,23 +154,23 @@ GST_START_TEST (test_filesource_properties)
   assert_equals_uint64 (_START (object), 420);
   assert_equals_uint64 (_DURATION (object), 510);
   assert_equals_uint64 (_INPOINT (object), 120);
-  assert_equals_uint64 (_START (trackobject), 420);
-  assert_equals_uint64 (_DURATION (trackobject), 510);
-  assert_equals_uint64 (_INPOINT (trackobject), 120);
+  assert_equals_uint64 (_START (trackelement), 420);
+  assert_equals_uint64 (_DURATION (trackelement), 510);
+  assert_equals_uint64 (_INPOINT (trackelement), 120);
 
   /* And let's also check that it propagated correctly to GNonLin */
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, TRUE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, TRUE);
 
   /* Test mute support */
   g_object_set (object, "mute", TRUE, NULL);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, FALSE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, FALSE);
   g_object_set (object, "mute", FALSE, NULL);
-  gnl_object_check (ges_track_object_get_gnlobject (trackobject), 420, 510, 120,
-      510, 0, TRUE);
+  gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
+      120, 510, 0, TRUE);
 
-  ges_clip_release_track_object (object, trackobject);
+  ges_clip_release_track_element (object, trackelement);
 
   g_object_unref (object);
   g_object_unref (track);
@@ -180,7 +180,7 @@ GST_END_TEST;
 
 GST_START_TEST (test_filesource_images)
 {
-  GESTrackObject *trobj;
+  GESTrackElement *trobj;
   GESClip *clip;
   GESUriClip *uriclip;
   GESTrack *a, *v;
@@ -199,8 +199,8 @@ GST_START_TEST (test_filesource_images)
   g_object_set (G_OBJECT (uriclip), "is-image", TRUE, NULL);
 
   /* the returned track object should be an image source */
-  trobj = ges_clip_create_track_object (clip, v->type);
-  ges_clip_add_track_object (clip, trobj);
+  trobj = ges_clip_create_track_element (clip, v->type);
+  ges_clip_add_track_element (clip, trobj);
   fail_unless (GES_IS_TRACK_IMAGE_SOURCE (trobj));
 
   /* The track holds a reference to the object
@@ -208,10 +208,10 @@ GST_START_TEST (test_filesource_images)
   ASSERT_OBJECT_REFCOUNT (trobj, "Video Track Object", 2);
 
   ges_track_remove_object (v, trobj);
-  ges_clip_release_track_object (clip, trobj);
+  ges_clip_release_track_element (clip, trobj);
 
-  /* the timeline object should not create any TrackObject in the audio track */
-  trobj = ges_clip_create_track_object (clip, a->type);
+  /* the timeline object should not create any TrackElement in the audio track */
+  trobj = ges_clip_create_track_element (clip, a->type);
   fail_unless (trobj == NULL);
 
   g_object_unref (a);
index 48a3c198b67a6747ea8a26a776a6e80b70899c5b..6b07e274e93927e34370705446d464c48940327c 100644 (file)
@@ -1071,15 +1071,15 @@ app_add_effect_on_selected_clips (App * app, const gchar * bin_desc,
     GESTrackType type)
 {
   GList *objects, *tmp;
-  GESTrackObject *effect = NULL;
+  GESTrackElement *effect = NULL;
 
   /* No crash if the video is playing */
   gst_element_set_state (GST_ELEMENT (app->pipeline), GST_STATE_PAUSED);
   objects = ges_timeline_layer_get_objects (app->layer);
 
   for (tmp = objects; tmp; tmp = tmp->next) {
-    effect = GES_TRACK_OBJECT (ges_track_parse_launch_effect_new (bin_desc));
-    ges_clip_add_track_object (GES_CLIP (tmp->data), effect);
+    effect = GES_TRACK_ELEMENT (ges_track_parse_launch_effect_new (bin_desc));
+    ges_clip_add_track_element (GES_CLIP (tmp->data), effect);
 
     if (type == GES_TRACK_TYPE_VIDEO)
       ges_track_add_object (app->video_track, effect);
index e6e110d7165863a3cfb94fab907f60d2c54f21f5..5ed407fc383eb4e2b01fdff4c1d68399e156f014 100644 (file)
@@ -57,21 +57,21 @@ make_source (gchar * path, guint64 start, guint64 duration, guint64 inpoint,
 gboolean
 print_transition_data (GESClip * tr)
 {
-  GESTrackObject *trackobj;
+  GESTrackElement *trackelement;
   GstElement *gnlobj;
   guint64 start, duration;
   gint priority;
   char *name;
-  GList *trackobjects, *tmp;
+  GList *trackelements, *tmp;
 
   if (!tr)
     return FALSE;
 
-  if (!(trackobjects = ges_clip_get_track_objects (tr)))
+  if (!(trackelements = ges_clip_get_track_elements (tr)))
     return FALSE;
-  if (!(trackobj = GES_TRACK_OBJECT (trackobjects->data)))
+  if (!(trackelement = GES_TRACK_ELEMENT (trackelements->data)))
     return FALSE;
-  if (!(gnlobj = ges_track_object_get_gnlobject (trackobj)))
+  if (!(gnlobj = ges_track_element_get_gnlobject (trackelement)))
     return FALSE;
 
   g_object_get (gnlobj, "start", &start, "duration", &duration,
@@ -80,11 +80,11 @@ print_transition_data (GESClip * tr)
       ((gfloat) start) / GST_SECOND,
       ((gfloat) duration) / GST_SECOND, priority);
 
-  for (tmp = trackobjects; tmp; tmp = tmp->next) {
-    g_object_unref (GES_TRACK_OBJECT (tmp->data));
+  for (tmp = trackelements; tmp; tmp = tmp->next) {
+    g_object_unref (GES_TRACK_ELEMENT (tmp->data));
   }
 
-  g_list_free (trackobjects);
+  g_list_free (trackelements);
 
   return FALSE;
 }