mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
flowcombiner: keep a ref to the pads we're using
Needed for use via the boxed type. https://bugzilla.gnome.org/show_bug.cgi?id=731355
This commit is contained in:
parent
49fedb521f
commit
b05eeb9df4
1 changed files with 8 additions and 3 deletions
|
@ -129,7 +129,11 @@ gst_flow_combiner_unref (GstFlowCombiner * combiner)
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
@ -219,7 +223,7 @@ gst_flow_combiner_add_pad (GstFlowCombiner * combiner, GstPad * pad)
|
|||
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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -237,5 +241,6 @@ gst_flow_combiner_remove_pad (GstFlowCombiner * combiner, GstPad * pad)
|
|||
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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue