GstPad *sinkpad, *srcpad1, *srcpad2;
GstIterator *it;
GstIteratorResult res;
- gpointer val1, val2;
+ GValue val1 = { 0, }
+ , val2 = {
+ 0,};
tee = gst_check_setup_element ("tee");
fail_unless (it != NULL);
/* iterator should not return anything */
- val1 = NULL;
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_DONE);
- fail_unless (val1 == NULL);
+ fail_unless (g_value_get_object (&val1) == NULL);
srcpad1 = gst_element_get_request_pad (tee, "src%d");
fail_unless (srcpad1 != NULL);
/* iterator should resync */
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_RESYNC);
- fail_unless (val1 == NULL);
+ fail_unless (g_value_get_object (&val1) == NULL);
gst_iterator_resync (it);
/* we should get something now */
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_OK);
- fail_unless (GST_PAD_CAST (val1) == srcpad1);
+ fail_unless (GST_PAD_CAST (g_value_get_object (&val1)) == srcpad1);
- gst_object_unref (val1);
+ g_value_reset (&val1);
- val1 = NULL;
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_DONE);
- fail_unless (val1 == NULL);
+ fail_unless (g_value_get_object (&val1) == NULL);
srcpad2 = gst_element_get_request_pad (tee, "src%d");
fail_unless (srcpad2 != NULL);
/* iterator should resync */
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_RESYNC);
- fail_unless (val1 == NULL);
+ fail_unless (g_value_get_object (&val1) == NULL);
gst_iterator_resync (it);
/* we should get one of the 2 pads now */
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_OK);
- fail_unless (GST_PAD_CAST (val1) == srcpad1
- || GST_PAD_CAST (val1) == srcpad2);
+ fail_unless (GST_PAD_CAST (g_value_get_object (&val1)) == srcpad1
+ || GST_PAD_CAST (g_value_get_object (&val1)) == srcpad2);
/* and the other */
res = gst_iterator_next (it, &val2);
fail_unless (res == GST_ITERATOR_OK);
- fail_unless (GST_PAD_CAST (val2) == srcpad1
- || GST_PAD_CAST (val2) == srcpad2);
- fail_unless (val1 != val2);
- gst_object_unref (val1);
- gst_object_unref (val2);
+ fail_unless (GST_PAD_CAST (g_value_get_object (&val2)) == srcpad1
+ || GST_PAD_CAST (g_value_get_object (&val2)) == srcpad2);
+ fail_unless (g_value_get_object (&val1) != g_value_get_object (&val2));
+ g_value_reset (&val1);
+ g_value_reset (&val2);
- val1 = NULL;
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_DONE);
- fail_unless (val1 == NULL);
+ fail_unless (g_value_get_object (&val1) == NULL);
gst_iterator_free (it);
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_OK);
- fail_unless (GST_PAD_CAST (val1) == sinkpad);
- gst_object_unref (val1);
+ fail_unless (GST_PAD_CAST (g_value_get_object (&val1)) == sinkpad);
+ g_value_reset (&val1);
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_DONE);
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_OK);
- fail_unless (GST_PAD_CAST (val1) == sinkpad);
- gst_object_unref (val1);
+ fail_unless (GST_PAD_CAST (g_value_get_object (&val1)) == sinkpad);
+ g_value_reset (&val1);
res = gst_iterator_next (it, &val1);
fail_unless (res == GST_ITERATOR_DONE);
+ g_value_unset (&val1);
+ g_value_unset (&val2);
gst_iterator_free (it);
gst_object_unref (srcpad1);
gst_object_unref (srcpad2);
GstBin *bin, *bin2;
GstElement *filesrc;
GstIterator *it;
- gpointer item;
+ GValue item = { 0, };
bin = GST_BIN (gst_bin_new (NULL));
fail_unless (bin != NULL, "Could not create bin");
it = gst_bin_iterate_all_by_interface (bin, GST_TYPE_URI_HANDLER);
fail_unless (it != NULL);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
- fail_unless (item == (gpointer) filesrc);
- gst_object_unref (GST_OBJECT (item));
+ fail_unless (g_value_get_object (&item) == (gpointer) filesrc);
+ g_value_reset (&item);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_DONE);
gst_iterator_free (it);
it = gst_bin_iterate_all_by_interface (bin, GST_TYPE_URI_HANDLER);
fail_unless (it != NULL);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
- fail_unless (item == (gpointer) filesrc);
- gst_object_unref (GST_OBJECT (item));
+ fail_unless (g_value_get_object (&item) == (gpointer) filesrc);
+ g_value_reset (&item);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_DONE);
gst_iterator_free (it);
GST_ELEMENT (bin2), gst_element_factory_make ("identity", NULL), NULL);
it = gst_bin_iterate_all_by_interface (bin, GST_TYPE_URI_HANDLER);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
- fail_unless (item == (gpointer) filesrc);
- gst_object_unref (GST_OBJECT (item));
+ fail_unless (g_value_get_object (&item) == (gpointer) filesrc);
+ g_value_reset (&item);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_DONE);
gst_iterator_free (it);
gst_bin_add (bin2, gst_element_factory_make ("filesrc", NULL));
it = gst_bin_iterate_all_by_interface (bin, GST_TYPE_URI_HANDLER);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
- gst_object_unref (GST_OBJECT (item));
+ g_value_reset (&item);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
- gst_object_unref (GST_OBJECT (item));
+ g_value_reset (&item);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_OK);
- gst_object_unref (GST_OBJECT (item));
+ g_value_reset (&item);
fail_unless (gst_iterator_next (it, &item) == GST_ITERATOR_DONE);
+ g_value_unset (&item);
gst_iterator_free (it);
gst_object_unref (bin);
{
GstElement *src, *tee, *identity, *sink1, *sink2, *pipeline, *bin;
GstIterator *it;
- gpointer elem;
+ GValue elem = { 0, };
pipeline = gst_pipeline_new (NULL);
fail_unless (pipeline != NULL, "Could not create pipeline");
it = gst_bin_iterate_sorted (GST_BIN (pipeline));
fail_unless (gst_iterator_next (it, &elem) == GST_ITERATOR_OK);
- fail_unless (elem == sink2);
- gst_object_unref (elem);
+ fail_unless (g_value_get_object (&elem) == (gpointer) sink2);
+ g_value_reset (&elem);
fail_unless (gst_iterator_next (it, &elem) == GST_ITERATOR_OK);
- fail_unless (elem == identity);
- gst_object_unref (elem);
+ fail_unless (g_value_get_object (&elem) == (gpointer) identity);
+ g_value_reset (&elem);
fail_unless (gst_iterator_next (it, &elem) == GST_ITERATOR_OK);
- fail_unless (elem == bin);
- gst_object_unref (elem);
+ fail_unless (g_value_get_object (&elem) == (gpointer) bin);
+ g_value_reset (&elem);
+ g_value_unset (&elem);
gst_iterator_free (it);
+ ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 1);
gst_object_unref (pipeline);
}
GMutex *m;
GstIterator *iter;
GstIteratorResult res;
- gpointer item;
+ GValue item = { 0, };
gint i = 0;
l = make_list_of_ints (NUM_ELEMENTS);
m = g_mutex_new ();
- iter = gst_iterator_new_list (G_TYPE_INT, m, &cookie, &l, NULL, NULL, NULL);
+ iter = gst_iterator_new_list (G_TYPE_POINTER, m, &cookie, &l, NULL, NULL);
fail_unless (iter != NULL);
res = gst_iterator_next (iter, &item);
if (i < NUM_ELEMENTS) {
fail_unless (res == GST_ITERATOR_OK);
- fail_unless (GPOINTER_TO_INT (item) == i);
+ fail_unless (GPOINTER_TO_INT (g_value_get_pointer (&item)) == i);
+ g_value_reset (&item);
i++;
continue;
} else {
break;
}
}
-
/* clean up */
+ g_value_unset (&item);
gst_iterator_free (iter);
g_mutex_free (m);
g_list_free (l);
GMutex *m;
GstIterator *iter;
GstIteratorResult res;
- gpointer item;
+ GValue item = { 0, };
gint i = 0;
gboolean hacked_list = FALSE;
l = make_list_of_ints (NUM_ELEMENTS);
m = g_mutex_new ();
- iter = gst_iterator_new_list (G_TYPE_INT, m, &cookie, &l, NULL, NULL, NULL);
+ iter = gst_iterator_new_list (G_TYPE_POINTER, m, &cookie, &l, NULL, NULL);
fail_unless (iter != NULL);
res = gst_iterator_next (iter, &item);
if (i < NUM_ELEMENTS / 2) {
fail_unless (res == GST_ITERATOR_OK);
- fail_unless (GPOINTER_TO_INT (item) == i);
+ fail_unless (GPOINTER_TO_INT (g_value_get_pointer (&item)) == i);
+ g_value_reset (&item);
i++;
continue;
} else if (!hacked_list) {
/* here's where we test resync */
fail_unless (res == GST_ITERATOR_OK);
+ g_value_reset (&item);
l = g_list_prepend (l, GINT_TO_POINTER (-1));
cookie++;
hacked_list = TRUE;
gst_iterator_resync (iter);
res = gst_iterator_next (iter, &item);
fail_unless (res == GST_ITERATOR_OK);
- fail_unless (GPOINTER_TO_INT (item) == -1);
+ fail_unless (GPOINTER_TO_INT (g_value_get_pointer (&item)) == -1);
+ g_value_reset (&item);
break;
}
}
/* clean up */
+ g_value_unset (&item);
gst_iterator_free (iter);
g_mutex_free (m);
g_list_free (l);
GST_END_TEST;
static gboolean
-add_fold_func (gpointer item, GValue * ret, gpointer user_data)
+add_fold_func (const GValue * item, GValue * ret, gpointer user_data)
{
- g_value_set_int (ret, g_value_get_int (ret) + GPOINTER_TO_INT (item));
+ g_value_set_int (ret,
+ g_value_get_int (ret) + GPOINTER_TO_INT (g_value_get_pointer (item)));
return TRUE;
}
l = make_list_of_ints (NUM_ELEMENTS);
m = g_mutex_new ();
- iter = gst_iterator_new_list (G_TYPE_INT, m, &cookie, &l, NULL, NULL, NULL);
+ iter = gst_iterator_new_list (G_TYPE_POINTER, m, &cookie, &l, NULL, NULL);
fail_unless (iter != NULL);
expected = 0;
{
GstIterator *it;
GstStructure *s = gst_structure_new ("test", NULL);
+ GValue v = { 0, };
GstStructure *i;
- it = gst_iterator_new_single (GST_TYPE_STRUCTURE, s,
- (GstCopyFunction) gst_structure_copy, (GFreeFunc) gst_structure_free);
+ g_value_init (&v, GST_TYPE_STRUCTURE);
+ g_value_set_boxed (&v, s);
+ it = gst_iterator_new_single (GST_TYPE_STRUCTURE, &v);
+ g_value_reset (&v);
- fail_unless (gst_iterator_next (it, (gpointer) & i) == GST_ITERATOR_OK);
+ fail_unless (gst_iterator_next (it, &v) == GST_ITERATOR_OK);
+ i = g_value_get_boxed (&v);
fail_unless (strcmp (gst_structure_get_name (s),
gst_structure_get_name (i)) == 0);
- gst_structure_free (i);
i = NULL;
- fail_unless (gst_iterator_next (it, (gpointer) & i) == GST_ITERATOR_DONE);
- fail_unless (i == NULL);
+ g_value_reset (&v);
+
+ fail_unless (gst_iterator_next (it, &v) == GST_ITERATOR_DONE);
+ fail_unless (g_value_get_boxed (&v) == NULL);
gst_iterator_free (it);
gst_structure_free (s);
- it = gst_iterator_new_single (GST_TYPE_STRUCTURE, NULL,
- (GstCopyFunction) gst_structure_copy, (GFreeFunc) gst_structure_free);
+ it = gst_iterator_new_single (GST_TYPE_STRUCTURE, NULL);
+
+ fail_unless (gst_iterator_next (it, &v) == GST_ITERATOR_DONE);
+ fail_unless (g_value_get_boxed (&v) == NULL);
- fail_unless (gst_iterator_next (it, (gpointer) & i) == GST_ITERATOR_DONE);
- fail_unless (i == NULL);
+ g_value_reset (&v);
gst_iterator_free (it);
}