summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/v4l2/gstv4l2element.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/v4l2/gstv4l2element.c b/sys/v4l2/gstv4l2element.c
index c9a8118c..53893fac 100644
--- a/sys/v4l2/gstv4l2element.c
+++ b/sys/v4l2/gstv4l2element.c
@@ -125,16 +125,17 @@ gst_v4l2_class_probe_devices (GstV4l2ElementClass *klass,
gboolean check)
{
static gboolean init = FALSE;
+ static GList *devices = NULL;
if (!init && !check) {
gchar *dev_base[] = { "/dev/video", "/dev/v4l/video", NULL };
gint base, n, fd;
- while (klass->devices) {
- GList *item = klass->devices;
+ while (devices) {
+ GList *item = devices;
gchar *device = item->data;
- klass->devices = g_list_remove (klass->devices, item);
+ devices = g_list_remove (devices, item);
g_free (device);
}
@@ -153,8 +154,8 @@ gst_v4l2_class_probe_devices (GstV4l2ElementClass *klass,
if (fd > 0)
close (fd);
- klass->devices =
- g_list_append (klass->devices,
+ devices =
+ g_list_append (devices,
device);
break;
}
@@ -166,6 +167,8 @@ gst_v4l2_class_probe_devices (GstV4l2ElementClass *klass,
init = TRUE;
}
+ klass->devices = devices;
+
return init;
}