Commit c0815648 authored by Edgard Gusmão Lima's avatar Edgard Gusmão Lima
Browse files

Fixed some memory leaks.

Original commit message from CVS:
Fixed some memory leaks.
parent cafd9931
...@@ -102,6 +102,7 @@ static guint32 gst_v4l2_formats[] = { ...@@ -102,6 +102,7 @@ static guint32 gst_v4l2_formats[] = {
GST_BOILERPLATE (GstV4l2Src, gst_v4l2src, GstV4l2Element, GST_TYPE_V4L2ELEMENT); GST_BOILERPLATE (GstV4l2Src, gst_v4l2src, GstV4l2Element, GST_TYPE_V4L2ELEMENT);
static void gst_v4l2src_dispose (GObject * object);
/* basesrc methods */ /* basesrc methods */
static gboolean gst_v4l2src_start (GstBaseSrc * src); static gboolean gst_v4l2src_start (GstBaseSrc * src);
...@@ -162,6 +163,9 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass) ...@@ -162,6 +163,9 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass)
basesrc_class->stop = gst_v4l2src_stop; basesrc_class->stop = gst_v4l2src_stop;
pushsrc_class->create = gst_v4l2src_create; pushsrc_class->create = gst_v4l2src_create;
gobject_class->dispose = gst_v4l2src_dispose;
} }
static void static void
...@@ -183,6 +187,21 @@ gst_v4l2src_init (GstV4l2Src * v4l2src, GstV4l2SrcClass * klass) ...@@ -183,6 +187,21 @@ gst_v4l2src_init (GstV4l2Src * v4l2src, GstV4l2SrcClass * klass)
gst_base_src_set_live (GST_BASE_SRC (v4l2src), TRUE); gst_base_src_set_live (GST_BASE_SRC (v4l2src), TRUE);
} }
static void
gst_v4l2src_dispose (GObject * object)
{
GstV4l2Src *v4l2src = GST_V4L2SRC (object);
if (v4l2src->formats) {
gst_v4l2src_clear_format_list (v4l2src);
}
if (((GObjectClass *) parent_class)->dispose)
((GObjectClass *) parent_class)->dispose (object);
}
static void static void
gst_v4l2src_set_property (GObject * object, gst_v4l2src_set_property (GObject * object,
guint prop_id, const GValue * value, GParamSpec * pspec) guint prop_id, const GValue * value, GParamSpec * pspec)
......
...@@ -789,15 +789,15 @@ gst_v4l2src_buffer_new (GstV4l2Src * v4l2src, guint size, guint8 * data, ...@@ -789,15 +789,15 @@ gst_v4l2src_buffer_new (GstV4l2Src * v4l2src, guint size, guint8 * data,
fps_d = 1; fps_d = 1;
} }
buf = (GstBuffer *) gst_mini_object_new (GST_TYPE_V4L2SRC_BUFFER);
GST_V4L2SRC_BUFFER (buf)->buf = srcbuf;
if (data == NULL) { if (data == NULL) {
GST_BUFFER_DATA (buf) = g_malloc (size); buf = gst_buffer_new_and_alloc (size);
} else { } else {
buf = (GstBuffer *) gst_mini_object_new (GST_TYPE_V4L2SRC_BUFFER);
GST_BUFFER_DATA (buf) = data; GST_BUFFER_DATA (buf) = data;
GST_V4L2SRC_BUFFER (buf)->buf = srcbuf;
} }
GST_BUFFER_SIZE (buf) = size; GST_BUFFER_SIZE (buf) = size;
GST_BUFFER_TIMESTAMP (buf) = GST_BUFFER_TIMESTAMP (buf) =
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment