mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
v4l2: make sure the element is not deleted before the pool
The pool accesses data from the v4l2object so it must exist at least as long as the pool. Refcount the element which controls the object live-time. https://bugzilla.gnome.org/show_bug.cgi?id=701650
This commit is contained in:
parent
bae53878e6
commit
a1c34b5407
1 changed files with 4 additions and 0 deletions
|
@ -1017,6 +1017,8 @@ gst_v4l2_buffer_pool_finalize (GObject * object)
|
||||||
gst_object_unref (pool->allocator);
|
gst_object_unref (pool->allocator);
|
||||||
g_free (pool->buffers);
|
g_free (pool->buffers);
|
||||||
|
|
||||||
|
gst_object_unref (pool->obj->element);
|
||||||
|
|
||||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1070,6 +1072,8 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps)
|
||||||
gst_buffer_pool_config_set_params (s, caps, obj->sizeimage, 2, 0);
|
gst_buffer_pool_config_set_params (s, caps, obj->sizeimage, 2, 0);
|
||||||
gst_buffer_pool_set_config (GST_BUFFER_POOL_CAST (pool), s);
|
gst_buffer_pool_set_config (GST_BUFFER_POOL_CAST (pool), s);
|
||||||
|
|
||||||
|
gst_object_ref (obj->element);
|
||||||
|
|
||||||
return GST_BUFFER_POOL (pool);
|
return GST_BUFFER_POOL (pool);
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
|
|
Loading…
Reference in a new issue