GST_BOILERPLATE (GstV4l2Src, gst_v4l2src, GstV4l2Element, GST_TYPE_V4L2ELEMENT);
+static void gst_v4l2src_dispose (GObject * object);
/* basesrc methods */
static gboolean gst_v4l2src_start (GstBaseSrc * src);
basesrc_class->stop = gst_v4l2src_stop;
pushsrc_class->create = gst_v4l2src_create;
+
+ gobject_class->dispose = gst_v4l2src_dispose;
+
}
static void
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
gst_v4l2src_set_property (GObject * object,
guint prop_id, const GValue * value, GParamSpec * pspec)
fps_d = 1;
}
- buf = (GstBuffer *) gst_mini_object_new (GST_TYPE_V4L2SRC_BUFFER);
-
- GST_V4L2SRC_BUFFER (buf)->buf = srcbuf;
-
if (data == NULL) {
- GST_BUFFER_DATA (buf) = g_malloc (size);
+ buf = gst_buffer_new_and_alloc (size);
} else {
+ buf = (GstBuffer *) gst_mini_object_new (GST_TYPE_V4L2SRC_BUFFER);
GST_BUFFER_DATA (buf) = data;
+ GST_V4L2SRC_BUFFER (buf)->buf = srcbuf;
}
+
+
GST_BUFFER_SIZE (buf) = size;
GST_BUFFER_TIMESTAMP (buf) =