ges: Make space in the GESTracks to be able to add mixing elements later
authorThibault Saunier <thibault.saunier@collabora.com>
Fri, 29 Mar 2013 18:23:00 +0000 (19:23 +0100)
committerThibault Saunier <thibault.saunier@collabora.com>
Sun, 23 Jun 2013 22:28:52 +0000 (18:28 -0400)
And update the tests

18 files changed:
ges/ges-auto-transition.c
ges/ges-clip.c
ges/ges-internal.h
ges/ges-layer.c
ges/ges-simple-layer.c
ges/ges-timeline.c
ges/ges-track-element.c
ges/ges-track.c
tests/check/ges/backgroundsource.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/test-utils.h
tests/check/ges/titles.c
tests/check/ges/transition.c
tests/check/ges/uriclip.c

index 6539d29..33036a2 100644 (file)
@@ -41,8 +41,8 @@ neighbour_changed_cb (GESClip * clip, GParamSpec * arg G_GNUC_UNUSED,
 {
   gint64 new_duration;
 
-  if (_PRIORITY (self->next_source) / LAYER_HEIGHT !=
-      _PRIORITY (self->previous_source) / LAYER_HEIGHT) {
+  if (_ges_track_element_get_layer_priority (self->next_source) !=
+      _ges_track_element_get_layer_priority (self->previous_source)) {
     GST_DEBUG_OBJECT (self, "Destroy changed layer");
     g_signal_emit (self, auto_transition_signals[DESTROY_ME], 0);
     return;
index fa0d84e..0aa655a 100644 (file)
@@ -148,7 +148,8 @@ _add_child (GESContainer * container, GESTimelineElement * element)
 
     GST_DEBUG_OBJECT (container, "Adding %ith effect: %" GST_PTR_FORMAT
         " Priority %i", priv->nb_effects + 1, element,
-        GES_TIMELINE_ELEMENT_PRIORITY (container) + priv->nb_effects);
+        min_prio + GES_TIMELINE_ELEMENT_PRIORITY (container) +
+        priv->nb_effects);
 
     tmp = g_list_nth (GES_CONTAINER_CHILDREN (container), priv->nb_effects);
     for (; tmp; tmp = tmp->next)
@@ -909,18 +910,20 @@ ges_clip_set_top_effect_priority (GESClip * clip,
   track_element = GES_TRACK_ELEMENT (effect);
   current_prio = _PRIORITY (track_element);
 
+  /* FIXME, do we actually want to change what the user is telling us to do? */
+  newpriority = newpriority + MIN_GNL_PRIO;
   /*  We don't change the priority */
   if (current_prio == newpriority ||
       (G_UNLIKELY (GES_CLIP (GES_TIMELINE_ELEMENT_PARENT (track_element)) !=
               clip)))
     return FALSE;
 
-  if (newpriority > (clip->priv->nb_effects - 1)) {
+  if (newpriority > (clip->priv->nb_effects - 1 + MIN_GNL_PRIO)) {
     GST_DEBUG ("You are trying to make %p not a top effect", effect);
     return FALSE;
   }
 
-  if (current_prio > clip->priv->nb_effects) {
+  if (current_prio > clip->priv->nb_effects + MIN_GNL_PRIO) {
     GST_DEBUG ("%p is not a top effect", effect);
     return FALSE;
   }
index 4a95de9..7ab4f10 100644 (file)
 GST_DEBUG_CATEGORY_EXTERN (_ges_debug);
 #define GST_CAT_DEFAULT _ges_debug
 
+/*  The first 2 GNL priorities are used for:
+ *    0- The Mixing element
+ *    1- The Gaps
+ */
+#define MIN_GNL_PRIO 2
 #define LAYER_HEIGHT 1000
 
 #define _START(obj) GES_TIMELINE_ELEMENT_START (obj)
@@ -257,6 +262,7 @@ GList*            ges_clip_create_track_elements  (GESClip *clip, GESTrackType t
 /****************************************************
  *              GESTrackElement                     *
  ****************************************************/
-gboolean          ges_track_element_set_track     (GESTrackElement * object, GESTrack * track);
+G_GNUC_INTERNAL gboolean  ges_track_element_set_track           (GESTrackElement * object, GESTrack * track);
+G_GNUC_INTERNAL guint32   _ges_track_element_get_layer_priority (GESTrackElement * element);
 
 #endif /* __GES_INTERNAL_H__ */
index c6bbaaf..2f2503f 100644 (file)
@@ -200,8 +200,8 @@ ges_layer_init (GESLayer * self)
 
   self->priv->priority = 0;
   self->priv->auto_transition = FALSE;
-  self->min_gnl_priority = 0;
-  self->max_gnl_priority = LAYER_HEIGHT;
+  self->min_gnl_priority = MIN_GNL_PRIO;
+  self->max_gnl_priority = LAYER_HEIGHT + MIN_GNL_PRIO;
 }
 
 /**
@@ -343,8 +343,8 @@ ges_layer_set_priority (GESLayer * layer, guint priority)
 
   if (priority != layer->priv->priority) {
     layer->priv->priority = priority;
-    layer->min_gnl_priority = (priority * LAYER_HEIGHT);
-    layer->max_gnl_priority = ((priority + 1) * LAYER_HEIGHT) - 1;
+    layer->min_gnl_priority = (priority * LAYER_HEIGHT) + MIN_GNL_PRIO;
+    layer->max_gnl_priority = ((priority + 1) * LAYER_HEIGHT) + MIN_GNL_PRIO;
 
     ges_layer_resync_priorities (layer);
   }
index 2c16e0b..ebc13ba 100644 (file)
@@ -165,7 +165,7 @@ gstl_recalculate (GESSimpleLayer * self)
   gboolean valid = TRUE;
   GESSimpleLayerPrivate *priv = self->priv;
 
-  priority = GES_LAYER (self)->min_gnl_priority + 2;
+  priority = GES_LAYER (self)->min_gnl_priority;
 
   GST_DEBUG ("recalculating values");
 
index fbb4937..28786e6 100644 (file)
@@ -809,7 +809,7 @@ _create_transitions_on_layer (GESTimeline * timeline, GESLayer * layer,
         start_or_end);
 
     /* Only object that are in that layer and track */
-    if ((_PRIORITY (next) / LAYER_HEIGHT) != layer_prio ||
+    if (_ges_track_element_get_layer_priority (next) != layer_prio ||
         (track && track != ges_track_element_get_track (next)))
       continue;
 
@@ -870,7 +870,7 @@ create_transitions (GESTimeline * timeline, GESTrackElement * track_element)
 
   track = ges_track_element_get_track (track_element);
   layer_node = g_list_find_custom (timeline->layers,
-      GINT_TO_POINTER (_PRIORITY (track_element) / LAYER_HEIGHT),
+      GINT_TO_POINTER (_ges_track_element_get_layer_priority (track_element)),
       (GCompareFunc) find_layer_by_prio);
 
   _create_transitions_on_layer (timeline,
@@ -945,7 +945,7 @@ start_tracking_track_element (GESTimeline * timeline,
   TrackObjIters *iters;
   GESTimelinePrivate *priv = timeline->priv;
 
-  guint layer_prio = _PRIORITY (trackelement) / LAYER_HEIGHT;
+  guint layer_prio = _ges_track_element_get_layer_priority (trackelement);
   GList *layer_node = g_list_find_custom (timeline->layers,
       GINT_TO_POINTER (layer_prio), (GCompareFunc) find_layer_by_prio);
   GESLayer *layer = layer_node ? layer_node->data : NULL;
@@ -2012,7 +2012,7 @@ trackelement_priority_changed_cb (GESTrackElement * child,
   GESTimelinePrivate *priv = timeline->priv;
 
   GList *layer_node = g_list_find_custom (timeline->layers,
-      GINT_TO_POINTER (_PRIORITY (child) / LAYER_HEIGHT),
+      GINT_TO_POINTER (_ges_track_element_get_layer_priority (child)),
       (GCompareFunc) find_layer_by_prio);
   GESLayer *layer = layer_node ? layer_node->data : NULL;
   TrackObjIters *iters = g_hash_table_lookup (priv->obj_iters,
index e9faecf..007f2e5 100644 (file)
@@ -274,7 +274,7 @@ ges_track_element_init (GESTrackElement * self)
   priv->pending_start = 0;
   priv->pending_inpoint = 0;
   priv->pending_duration = GST_SECOND;
-  priv->pending_priority = 1;
+  priv->pending_priority = MIN_GNL_PRIO;
   priv->pending_active = TRUE;
   priv->properties_hashtable = NULL;
   priv->bindings_hashtable = g_hash_table_new_full (g_str_hash, g_str_equal,
@@ -340,6 +340,12 @@ _set_priority (GESTimelineElement * element, guint32 priority)
 {
   GESTrackElement *object = GES_TRACK_ELEMENT (element);
 
+  if (priority <= MIN_GNL_PRIO) {
+    GST_INFO_OBJECT (element, "Priority (%d) < MIN_GNL_PRIO, setting it to %d",
+        priority, MIN_GNL_PRIO);
+    priority = MIN_GNL_PRIO;
+  }
+
   GST_DEBUG ("object:%p, priority:%" G_GUINT32_FORMAT, object, priority);
 
   if (object->priv->gnlobject != NULL) {
@@ -663,6 +669,15 @@ ges_track_element_get_bindings_hashtable (GESTrackElement * trackelement)
   return priv->bindings_hashtable;
 }
 
+guint32
+_ges_track_element_get_layer_priority (GESTrackElement * element)
+{
+  if (_PRIORITY (element) < LAYER_HEIGHT + MIN_GNL_PRIO)
+    return 0;
+
+  return (_PRIORITY (element) - MIN_GNL_PRIO) / LAYER_HEIGHT;
+}
+
 /**
  * ges_track_element_get_track:
  * @object: a #GESTrackElement
index eea74f5..913bb9b 100644 (file)
@@ -143,7 +143,7 @@ gap_new (GESTrack * track, GstClockTime start, GstClockTime duration)
 
 
   g_object_set (gnlsrc, "start", new_gap->start, "duration", new_gap->duration,
-      "priority", 0, NULL);
+      "priority", 1, NULL);
 
   GST_DEBUG_OBJECT (track,
       "Created gap with start %" GST_TIME_FORMAT " duration %" GST_TIME_FORMAT,
index 78cadc6..2045b15 100644 (file)
@@ -85,7 +85,7 @@ GST_START_TEST (test_test_source_properties)
   fail_unless (ges_timeline_commit (timeline));
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, 0, TRUE);
+      51, MIN_GNL_PRIO, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (clip, "start", (guint64) 420, "duration", (guint64) 510,
@@ -100,17 +100,17 @@ GST_START_TEST (test_test_source_properties)
   fail_unless (ges_timeline_commit (timeline));
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
   /* Test mute support */
   g_object_set (clip, "mute", TRUE, NULL);
   fail_unless (ges_timeline_commit (timeline));
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, FALSE);
+      120, 510, MIN_GNL_PRIO + 0, FALSE);
   g_object_set (clip, "mute", FALSE, NULL);
   fail_unless (ges_timeline_commit (timeline));
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
   ges_container_remove (GES_CONTAINER (clip),
       GES_TIMELINE_ELEMENT (trackelement));
index f8ca96e..1d76c10 100644 (file)
@@ -85,7 +85,7 @@ GST_START_TEST (test_object_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, 0, TRUE);
+      51, MIN_GNL_PRIO, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (clip, "start", (guint64) 420, "duration", (guint64) 510,
@@ -100,7 +100,7 @@ GST_START_TEST (test_object_properties)
   /* And let's also check that it propagated correctly to GNonLin */
   ges_timeline_commit (timeline);
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
 
   /* This time, we move the trackelement to see if the changes move
@@ -110,7 +110,7 @@ GST_START_TEST (test_object_properties)
   assert_equals_uint64 (_START (clip), 400);
   assert_equals_uint64 (_START (trackelement), 400);
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 400, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
   ges_container_remove (GES_CONTAINER (clip),
       GES_TIMELINE_ELEMENT (trackelement));
@@ -164,7 +164,7 @@ GST_START_TEST (test_split_object)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 50, 12,
-      50, 0, TRUE);
+      50, MIN_GNL_PRIO, TRUE);
 
   splitclip = ges_clip_split (clip, 67);
   fail_unless (GES_IS_CLIP (splitclip));
index 0d96837..f030930 100644 (file)
@@ -112,7 +112,7 @@ GST_START_TEST (test_get_effects_from_tl)
   assert_equals_int (g_list_length (GES_CONTAINER_CHILDREN (source)), 1);
   video_source = GES_CONTAINER_CHILDREN (source)->data;
   fail_unless (GES_IS_VIDEO_TEST_SOURCE (video_source));
-  assert_equals_int (_PRIORITY (video_source), 2);
+  assert_equals_int (_PRIORITY (video_source), MIN_GNL_PRIO);
 
   GST_DEBUG ("Create effect");
   effect = ges_effect_new ("agingtv");
@@ -128,17 +128,17 @@ GST_START_TEST (test_get_effects_from_tl)
           GES_TIMELINE_ELEMENT (effect)));
   fail_unless (ges_track_element_get_track (GES_TRACK_ELEMENT (effect)) ==
       track_video);
-  assert_equals_int (_PRIORITY (effect), 2);
-  assert_equals_int (_PRIORITY (video_source), 3);
+  assert_equals_int (_PRIORITY (effect), MIN_GNL_PRIO + 0);
+  assert_equals_int (_PRIORITY (video_source), MIN_GNL_PRIO + 1);
 
   GST_DEBUG ("Adding effect 1");
   fail_unless (ges_container_add (GES_CONTAINER (source),
           GES_TIMELINE_ELEMENT (effect1)));
   fail_unless (ges_track_element_get_track (GES_TRACK_ELEMENT (effect1)) ==
       track_video);
-  assert_equals_int (_PRIORITY (effect), 2);
-  assert_equals_int (_PRIORITY (effect1), 3);
-  assert_equals_int (_PRIORITY (video_source), 4);
+  assert_equals_int (_PRIORITY (effect), MIN_GNL_PRIO);
+  assert_equals_int (_PRIORITY (effect1), MIN_GNL_PRIO + 1);
+  assert_equals_int (_PRIORITY (video_source), MIN_GNL_PRIO + 2);
 
   GST_DEBUG ("Adding effect 2");
   fail_unless (ges_container_add (GES_CONTAINER (source),
@@ -286,8 +286,8 @@ GST_START_TEST (test_priorities_clip)
   fail_unless (GES_IS_EFFECT (video_effect));
 
   /* FIXME This is ridiculus, both effects should have the same priority (0) */
-  assert_equals_int (_PRIORITY (audio_effect), 0);
-  assert_equals_int (_PRIORITY (video_effect), 1);
+  assert_equals_int (_PRIORITY (audio_effect), MIN_GNL_PRIO);
+  assert_equals_int (_PRIORITY (video_effect), MIN_GNL_PRIO + 1);
   assert_equals_int (GES_CONTAINER_HEIGHT (effect_clip), 2);
 
   effect = ges_effect_new ("agingtv");
@@ -307,14 +307,14 @@ GST_START_TEST (test_priorities_clip)
 
   fail_unless (ges_clip_set_top_effect_priority (GES_CLIP (effect_clip),
           GES_BASE_EFFECT (effect1), 0));
-  assert_equals_int (_PRIORITY (effect), 3);
-  assert_equals_int (_PRIORITY (effect1), 0);
+  assert_equals_int (_PRIORITY (effect), 3 + MIN_GNL_PRIO);
+  assert_equals_int (_PRIORITY (effect1), 0 + MIN_GNL_PRIO);
   assert_equals_int (GES_CONTAINER_HEIGHT (effect_clip), 4);
 
   fail_unless (ges_clip_set_top_effect_priority (GES_CLIP (effect_clip),
           GES_BASE_EFFECT (effect1), 3));
-  assert_equals_int (_PRIORITY (effect), 2);
-  assert_equals_int (_PRIORITY (effect1), 3);
+  assert_equals_int (_PRIORITY (effect), 2 + MIN_GNL_PRIO);
+  assert_equals_int (_PRIORITY (effect1), 3 + MIN_GNL_PRIO);
   assert_equals_int (GES_CONTAINER_HEIGHT (effect_clip), 4);
 
   effects = ges_clip_get_top_effects (GES_CLIP (effect_clip));
index eaeb775..ccb12da 100644 (file)
@@ -94,7 +94,7 @@ GST_START_TEST (test_layer_properties)
   assert_equals_uint64 (_PRIORITY (clip), 0);
   ges_timeline_commit (timeline);
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, 0, TRUE);
+      51, MIN_GNL_PRIO, TRUE);
 
   /* Change the priority of the layer */
   g_object_set (layer, "priority", 1, NULL);
@@ -102,7 +102,7 @@ GST_START_TEST (test_layer_properties)
   assert_equals_uint64 (_PRIORITY (clip), 0);
   ges_timeline_commit (timeline);
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, LAYER_HEIGHT, TRUE);
+      51, LAYER_HEIGHT + MIN_GNL_PRIO, TRUE);
 
   /* Change it to an insanely high value */
   g_object_set (layer, "priority", 31, NULL);
@@ -110,7 +110,7 @@ GST_START_TEST (test_layer_properties)
   assert_equals_uint64 (_PRIORITY (clip), 0);
   ges_timeline_commit (timeline);
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, LAYER_HEIGHT * 31, TRUE);
+      51, MIN_GNL_PRIO + LAYER_HEIGHT * 31, TRUE);
 
   /* and back to 0 */
   g_object_set (layer, "priority", 0, NULL);
@@ -118,7 +118,7 @@ GST_START_TEST (test_layer_properties)
   assert_equals_uint64 (_PRIORITY (clip), 0);
   ges_timeline_commit (timeline);
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, 0, TRUE);
+      51, MIN_GNL_PRIO + 0, TRUE);
 
   gst_object_unref (trackelement);
   fail_unless (ges_layer_remove_clip (layer, clip));
@@ -201,14 +201,14 @@ GST_START_TEST (test_layer_priorities)
   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 (prio1, MIN_GNL_PRIO);
 
   assert_equals_int (_PRIORITY (clip2), 1);
   gnlobj2 = ges_track_element_get_gnlobject (trackelement2);
   fail_unless (gnlobj2 != NULL);
   g_object_get (gnlobj2, "priority", &prio2, NULL);
   /* clip2 is on the second layer and has a priority of 1 */
-  assert_equals_int (prio2, LAYER_HEIGHT + 1);
+  assert_equals_int (prio2, MIN_GNL_PRIO + LAYER_HEIGHT + 1);
 
   assert_equals_int (_PRIORITY (clip3), LAYER_HEIGHT - 1);
   gnlobj3 = ges_track_element_get_gnlobject (trackelement3);
@@ -216,7 +216,7 @@ GST_START_TEST (test_layer_priorities)
   /* clip3 is on the third layer and has a priority of LAYER_HEIGHT + 1
    * it priority must have the maximum priority of this layer*/
   g_object_get (gnlobj3, "priority", &prio3, NULL);
-  assert_equals_int (prio3, LAYER_HEIGHT * 3 - 1);
+  assert_equals_int (prio3, MIN_GNL_PRIO + LAYER_HEIGHT * 3 - 1);
 
   /* Move layers around */
   g_object_set (layer1, "priority", 2, NULL);
@@ -234,9 +234,9 @@ GST_START_TEST (test_layer_priorities)
   g_object_get (gnlobj1, "priority", &prio1, NULL);
   g_object_get (gnlobj2, "priority", &prio2, NULL);
   g_object_get (gnlobj3, "priority", &prio3, NULL);
-  assert_equals_int (prio1, 2 * LAYER_HEIGHT);
-  assert_equals_int (prio2, 1);
-  assert_equals_int (prio3, LAYER_HEIGHT * 2 - 1);
+  assert_equals_int (prio1, 2 * LAYER_HEIGHT + MIN_GNL_PRIO);
+  assert_equals_int (prio2, MIN_GNL_PRIO + 1);
+  assert_equals_int (prio3, LAYER_HEIGHT * 2 - 1 + MIN_GNL_PRIO);
 
   /* And move objects around */
   fail_unless (ges_clip_move_to_layer (clip2, layer1));
@@ -260,9 +260,9 @@ GST_START_TEST (test_layer_priorities)
   g_object_get (gnlobj1, "priority", &prio1, NULL);
   g_object_get (gnlobj2, "priority", &prio2, NULL);
   g_object_get (gnlobj3, "priority", &prio3, NULL);
-  assert_equals_int (prio1, 2 * LAYER_HEIGHT);
-  assert_equals_int (prio2, 2 * LAYER_HEIGHT + 1);
-  assert_equals_int (prio3, LAYER_HEIGHT * 3 - 1);
+  assert_equals_int (prio1, 2 * LAYER_HEIGHT + MIN_GNL_PRIO);
+  assert_equals_int (prio2, 2 * LAYER_HEIGHT + 1 + MIN_GNL_PRIO);
+  assert_equals_int (prio3, LAYER_HEIGHT * 3 - 1 + MIN_GNL_PRIO);
 
   /* And change TrackElement-s priorities and check that changes are not
    * refected on it containing Clip */
index 53f2b68..430e3c3 100644 (file)
@@ -81,7 +81,7 @@ GST_START_TEST (test_overlay_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, 0, TRUE);
+      51, MIN_GNL_PRIO, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (clip, "start", (guint64) 420, "duration", (guint64) 510,
@@ -96,7 +96,7 @@ GST_START_TEST (test_overlay_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
   ges_container_remove (GES_CONTAINER (clip),
       GES_TIMELINE_ELEMENT (trackelement));
index f9f7ecb..01f31ed 100644 (file)
@@ -242,10 +242,10 @@ _test_project (GESProject * project, GESTimeline * timeline)
             assert_equals_int (nb_scratch_lines, 12);
 
             gnl_object_check (ges_track_element_get_gnlobject (trackelement),
-                0, 1000000000, 0, 1000000000, 0, TRUE);
+                0, 1000000000, 0, 1000000000, MIN_GNL_PRIO, TRUE);
           } else {
             gnl_object_check (ges_track_element_get_gnlobject (trackelement),
-                0, 1000000000, 0, 1000000000, 1, TRUE);
+                0, 1000000000, 0, 1000000000, MIN_GNL_PRIO + 1, TRUE);
           }
         }
         break;
index cbeea61..069604e 100644 (file)
 #include <gst/check/gstcheck.h>
 
 GESTimelinePipeline * ges_test_create_pipeline (GESTimeline *timeline);
+/*  The first 2 GNL priorities are used for:
+ *    0- The Mixing element
+ *    1- The Gaps
+ */
+#define MIN_GNL_PRIO 2
+
 gchar * ges_test_get_audio_only_uri (void);
 gchar * ges_test_get_audio_video_uri (void);
 gchar * ges_test_get_image_uri (void);
index af303ec..6564bfb 100644 (file)
@@ -81,7 +81,7 @@ GST_START_TEST (test_title_source_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, 0, TRUE);
+      51, MIN_GNL_PRIO, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (clip, "start", (guint64) 420, "duration", (guint64) 510,
@@ -96,7 +96,7 @@ GST_START_TEST (test_title_source_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
   ges_container_remove (GES_CONTAINER (clip),
       GES_TIMELINE_ELEMENT (trackelement));
index 2320a4a..233ac64 100644 (file)
@@ -110,7 +110,7 @@ GST_START_TEST (test_transition_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, 0, TRUE);
+      51, MIN_GNL_PRIO, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (clip, "start", (guint64) 420, "duration", (guint64) 510,
@@ -125,7 +125,7 @@ GST_START_TEST (test_transition_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
   /* test changing vtype */
   GST_DEBUG ("Setting to crossfade");
index 05562f7..0c77748 100644 (file)
@@ -166,7 +166,7 @@ GST_START_TEST (test_filesource_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 42, 51, 12,
-      51, 0, TRUE);
+      51, MIN_GNL_PRIO, TRUE);
 
   /* Change more properties, see if they propagate */
   g_object_set (clip, "start", (guint64) 420, "duration", (guint64) 510,
@@ -181,17 +181,17 @@ GST_START_TEST (test_filesource_properties)
 
   /* And let's also check that it propagated correctly to GNonLin */
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
   /* Test mute support */
   g_object_set (clip, "mute", TRUE, NULL);
   ges_timeline_commit (timeline);
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, FALSE);
+      120, 510, MIN_GNL_PRIO + 0, FALSE);
   g_object_set (clip, "mute", FALSE, NULL);
   ges_timeline_commit (timeline);
   gnl_object_check (ges_track_element_get_gnlobject (trackelement), 420, 510,
-      120, 510, 0, TRUE);
+      120, 510, MIN_GNL_PRIO + 0, TRUE);
 
   ges_container_remove (GES_CONTAINER (clip),
       GES_TIMELINE_ELEMENT (trackelement));