From e384295df0ff88c41acf0f98668486aea23bf044 Mon Sep 17 00:00:00 2001 From: Olivier Crete Date: Wed, 19 Dec 2007 20:32:30 +0000 Subject: [PATCH] fsvalve: Dont hold the object lock while calling base alloc function 20071219203230-3e2dc-6519175d8d81496515b2d9060ac316650560f691.gz --- plugins/elements/gstvalve.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/elements/gstvalve.c b/plugins/elements/gstvalve.c index d057b027ac..a730ca1a74 100644 --- a/plugins/elements/gstvalve.c +++ b/plugins/elements/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);