Needed for use via the boxed type.
https://bugzilla.gnome.org/show_bug.cgi?id=731355
g_return_if_fail (combiner->ref_count > 0);
if (g_atomic_int_dec_and_test (&combiner->ref_count)) {
g_return_if_fail (combiner->ref_count > 0);
if (g_atomic_int_dec_and_test (&combiner->ref_count)) {
- g_queue_clear (&combiner->pads);
+ GstPad *pad;
+
+ while ((pad = g_queue_pop_head (&combiner->pads)))
+ gst_object_unref (pad);
+
g_slice_free (GstFlowCombiner, combiner);
}
}
g_slice_free (GstFlowCombiner, combiner);
}
}
g_return_if_fail (combiner != NULL);
g_return_if_fail (pad != NULL);
g_return_if_fail (combiner != NULL);
g_return_if_fail (pad != NULL);
- g_queue_push_head (&combiner->pads, pad);
+ g_queue_push_head (&combiner->pads, gst_object_ref (pad));
g_return_if_fail (combiner != NULL);
g_return_if_fail (pad != NULL);
g_return_if_fail (combiner != NULL);
g_return_if_fail (pad != NULL);
- g_queue_remove (&combiner->pads, pad);
+ if (g_queue_remove (&combiner->pads, pad))
+ gst_object_unref (pad);