diff options
author | Alessandro Decina <alessandro.decina@collabora.co.uk> | 2009-01-07 12:12:36 +0000 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2009-01-07 12:12:36 +0000 |
commit | 2a07eb70c3f4bdc1fc8de77556c44ab088d80435 (patch) | |
tree | bcd300b1c6503b6f0032819de21ce85c5ba05dcd | |
parent | a9abce199c7bb10493955dc48657b3cfc04bb2a0 (diff) |
gnl/gnlcomposition.c: Release objects lock temporarily when emitting no-more-pads.GIT_CONVERSION
Original commit message from CVS:
Patch by: Alessandro Decina <alessandro.decina@collabora.co.uk>
* gnl/gnlcomposition.c: (gnl_composition_ghost_pad_set_target):
Release objects lock temporarily when emitting no-more-pads.
This should not affect anything considering that the composition is
in the process of being built at that point and no actions should
be attempting to modify it while that lock is released.
Fixes #566796
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | gnl/gnlcomposition.c | 5 |
2 files changed, 14 insertions, 1 deletions
@@ -1,3 +1,13 @@ +2009-01-07 Edward Hervey <edward.hervey@collabora.co.uk> + + Patch by: Alessandro Decina <alessandro.decina@collabora.co.uk> + * gnl/gnlcomposition.c: (gnl_composition_ghost_pad_set_target): + Release objects lock temporarily when emitting no-more-pads. + This should not affect anything considering that the composition is + in the process of being built at that point and no actions should + be attempting to modify it while that lock is released. + Fixes #566796 + 2008-12-28 Edward Hervey <edward.hervey@collabora.co.uk> * gnl/gnlcomposition.c: (refine_start_stop_in_region_above_priority): diff --git a/gnl/gnlcomposition.c b/gnl/gnlcomposition.c index a002a55..51b3fcb 100644 --- a/gnl/gnlcomposition.c +++ b/gnl/gnlcomposition.c @@ -1000,8 +1000,11 @@ gnl_composition_ghost_pad_set_target (GnlComposition * comp, GstPad * target) gst_pad_set_active (comp->private->ghostpad, TRUE); if (!(gst_element_add_pad (GST_ELEMENT (comp), comp->private->ghostpad))) GST_WARNING ("Couldn't add the ghostpad"); - else + else { + COMP_OBJECTS_UNLOCK (comp); gst_element_no_more_pads (GST_ELEMENT (comp)); + COMP_OBJECTS_LOCK (comp); + } } GST_DEBUG_OBJECT (comp, "END"); } |