From 689114034021b1d64e8fc54dad1f07d1b24f3f0c Mon Sep 17 00:00:00 2001 From: Olivier Crete Date: Wed, 19 Dec 2007 20:32:30 +0000 Subject: [MOVED FROM GST-P-FARSIGHT] Dont hold the object lock while calling base alloc function 20071219203230-3e2dc-6519175d8d81496515b2d9060ac316650560f691.gz --- gst/valve/gstvalve.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gst/valve/gstvalve.c') diff --git a/gst/valve/gstvalve.c b/gst/valve/gstvalve.c index d057b027..a730ca1a 100644 --- a/gst/valve/gstvalve.c +++ b/gst/valve/gstvalve.c @@ -273,15 +273,17 @@ gst_valve_buffer_alloc (GstPad * pad, guint64 offset, guint size, GST_OBJECT_LOCK (GST_OBJECT (valve)); if (valve->drop) { + GST_OBJECT_UNLOCK (GST_OBJECT (valve)); *buf = gst_buffer_new_and_alloc (size); GST_BUFFER_OFFSET (*buf) = offset; gst_buffer_set_caps (*buf, caps); } else { - ret = valve->original_allocfunc (pad, offset, size, caps, buf); + GstPadBufferAllocFunction allocfunc = valve->original_allocfunc; + GST_OBJECT_UNLOCK (GST_OBJECT (valve)); + ret = allocfunc (pad, offset, size, caps, buf); } - GST_OBJECT_UNLOCK (GST_OBJECT (valve)); gst_object_unref (valve); -- cgit v1.2.1