mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-30 04:00:37 +00:00
fsvalve: Dont hold the object lock while calling base alloc function
20071219203230-3e2dc-6519175d8d81496515b2d9060ac316650560f691.gz
This commit is contained in:
parent
8362bb9275
commit
e384295df0
1 changed files with 4 additions and 2 deletions
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue