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:
Michael Olbrich 2013-06-05 16:32:30 +02:00 committed by Sebastian Dröge
parent bae53878e6
commit a1c34b5407

View file

@ -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 */