ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (source));
fail_unless (trackobjects != NULL);
trackobject = GES_TRACK_OBJECT (trackobjects->data);
- ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 2);
+ /* There are 3 references:
+ * 1 by the timelineobject
+ * 1 by the track
+ * 1 added by the call to _get_track_objects() above */
+ ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 3);
for (tmp = trackobjects; tmp; tmp = tmp->next) {
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
g_list_free (trackobjects);
- ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 1);
+ /* There are 2 references:
+ * 1 by the timelineobject
+ * 1 by the track */
+ ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 2);
GST_DEBUG ("Remove the TimelineObject from the layer");
+
/* Now remove the timelineobject */
g_object_ref (source);
ASSERT_OBJECT_REFCOUNT (layer, "layer", 1);
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s1));
fail_unless (trackobjects != NULL);
trackobject = GES_TRACK_OBJECT (trackobjects->data);
- ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 2);
+ /* There are 3 references:
+ * 1 by the timelineobject
+ * 1 by the trackobject
+ * 1 added by the call to _get_track_objects() above */
+ ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 3);
for (tmp = trackobjects; tmp; tmp = tmp->next) {
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
g_list_free (trackobjects);
- ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 1);
+ /* There are 2 references:
+ * 1 by the timelineobject
+ * 1 by the trackobject */
+ ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 2);
trackobjects =
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s2));
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
g_list_free (trackobjects);
- ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (trackobject), "trackobject", 1);
+ /* There are 2 references:
+ * 1 by the timelineobject
+ * 1 by the trackobject */
+ ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (trackobject), "trackobject", 2);
trackobjects =
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s3));
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
g_list_free (trackobjects);
- ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 1);
+ /* There are 2 references:
+ * 1 by the timelineobject
+ * 1 by the trackobject */
+ ASSERT_OBJECT_REFCOUNT (trackobject, "trackobject", 2);
/* theoretically this is all we need to do to ensure cleanup */
g_object_unref (timeline);
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s1));
fail_unless (trackobjects != NULL);
for (tmp = trackobjects; tmp; tmp = tmp->next) {
- ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 2);
+ /* Each object has 3 references:
+ * 1 by the timelineobject
+ * 1 by the track
+ * 1 added by _get_track_object() above */
+ ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 3);
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
g_list_free (trackobjects);
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s2));
fail_unless (trackobjects != NULL);
for (tmp = trackobjects; tmp; tmp = tmp->next) {
- ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 2);
+ /* Each object has 3 references:
+ * 1 by the timelineobject
+ * 1 by the track
+ * 1 added by _get_track_object() above */
+ ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 3);
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
g_list_free (trackobjects);
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s3));
fail_unless (trackobjects != NULL);
for (tmp = trackobjects; tmp; tmp = tmp->next) {
- ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 2);
+ /* Each object has 3 references:
+ * 1 by the timelineobject
+ * 1 by the track
+ * 1 added by _get_track_object() above */
+ ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 3);
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
g_list_free (trackobjects);
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s1));
fail_unless (trackobjects != NULL);
t1 = GES_TRACK_OBJECT ((trackobjects)->data);
- g_object_ref (t1);
for (tmp = trackobjects; tmp; tmp = tmp->next) {
+ /* There are 3 references held:
+ * 1 by the timelineobject
+ * 1 by the track
+ * 1 added by the call to _get_track_objects() above */
ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 3);
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
+ g_object_ref (t1);
g_list_free (trackobjects);
- ASSERT_OBJECT_REFCOUNT (t1, "trackobject", 2);
+ /* There are 3 references held:
+ * 1 by the timelinobject
+ * 1 by the track
+ * 1 added by ourselves above (g_object_ref (t1)) */
+ ASSERT_OBJECT_REFCOUNT (t1, "trackobject", 3);
trackobjects =
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s2));
fail_unless (trackobjects != NULL);
t2 = GES_TRACK_OBJECT (trackobjects->data);
- g_object_ref (t2);
for (tmp = trackobjects; tmp; tmp = tmp->next) {
+ /* There are 3 references held:
+ * 1 by the timelineobject
+ * 1 by the track
+ * 1 added by the call to _get_track_objects() above */
ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 3);
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
+ g_object_ref (t2);
g_list_free (trackobjects);
- ASSERT_OBJECT_REFCOUNT (t2, "t2", 2);
+ /* There are 3 references held:
+ * 1 by the timelinobject
+ * 1 by the track
+ * 1 added by ourselves above (g_object_ref (t1)) */
+ ASSERT_OBJECT_REFCOUNT (t2, "t2", 3);
trackobjects =
ges_timeline_object_get_track_objects (GES_TIMELINE_OBJECT (s3));
fail_unless (trackobjects != NULL);
t3 = GES_TRACK_OBJECT (trackobjects->data);
- g_object_ref (t3);
for (tmp = trackobjects; tmp; tmp = tmp->next) {
+ /* There are 3 references held:
+ * 1 by the timelineobject
+ * 1 by the track
+ * 1 added by the call to _get_track_objects() above */
ASSERT_OBJECT_REFCOUNT (GES_TRACK_OBJECT (tmp->data), "trackobject", 3);
g_object_unref (GES_TRACK_OBJECT (tmp->data));
}
+ g_object_ref (t3);
g_list_free (trackobjects);
- ASSERT_OBJECT_REFCOUNT (t3, "t3", 2);
+ /* There are 3 references held:
+ * 1 by the timelinobject
+ * 1 by the track
+ * 1 added by ourselves above (g_object_ref (t1)) */
+ ASSERT_OBJECT_REFCOUNT (t3, "t3", 3);
/* remove the track and check that the track objects have been released */
fail_unless (ges_timeline_remove_track (timeline, track));
track);
fail_unless (trackobject != NULL);
- /* The track holds a reference to the object */
- ASSERT_OBJECT_REFCOUNT (trackobject, "Track Object", 1);
+ /* The track holds a reference to the object
+ * and the timelineobject holds a reference on the object */
+ ASSERT_OBJECT_REFCOUNT (trackobject, "Track Object", 2);
fail_unless (ges_timeline_object_release_track_object (GES_TIMELINE_OBJECT
(source), trackobject) == TRUE);
trobj = ges_timeline_object_create_track_object (tlobj, v);
fail_unless (GES_IS_TRACK_IMAGE_SOURCE (trobj));
- /* The track holds a reference to the object */
- ASSERT_OBJECT_REFCOUNT (trobj, "Video Track Object", 1);
+ /* The track holds a reference to the object
+ * and the timelinobject holds a reference to the object */
+ ASSERT_OBJECT_REFCOUNT (trobj, "Video Track Object", 2);
ges_track_remove_object (v, trobj);
ges_timeline_object_release_track_object (tlobj, trobj);
trobj = ges_timeline_object_create_track_object (tlobj, a);
fail_unless (GES_IS_TRACK_AUDIO_TEST_SOURCE (trobj));
- /* The track holds a reference to the object */
- ASSERT_OBJECT_REFCOUNT (trobj, "Audio Track Object", 1);
+ /* The track holds a reference to the object
+ * And the timelineobject holds a reference to the object */
+ ASSERT_OBJECT_REFCOUNT (trobj, "Audio Track Object", 2);
ges_track_remove_object (v, trobj);
ges_timeline_object_release_track_object (tlobj, trobj);