v4l2object: Don't open the device in get property
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 17 May 2018 00:16:44 +0000 (20:16 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Mon, 28 May 2018 16:58:45 +0000 (12:58 -0400)
This is both racy and inefficient. This function is still missing some
locking which will be address in later patch.

https://bugzilla.gnome.org/show_bug.cgi?id=796185

sys/v4l2/gstv4l2object.c

index f0f8d0b..b4c8f78 100644 (file)
@@ -720,15 +720,12 @@ gst_v4l2_object_get_property_helper (GstV4l2Object * v4l2object,
       break;
     case PROP_DEVICE_NAME:
     {
-      const guchar *new = NULL;
+      const guchar *name = NULL;
 
-      if (GST_V4L2_IS_OPEN (v4l2object)) {
-        new = v4l2object->vcap.card;
-      } else if (gst_v4l2_open (v4l2object)) {
-        new = v4l2object->vcap.card;
-        gst_v4l2_close (v4l2object);
-      }
-      g_value_set_string (value, (gchar *) new);
+      if (GST_V4L2_IS_OPEN (v4l2object))
+        name = v4l2object->vcap.card;
+
+      g_value_set_string (value, (gchar *) name);
       break;
     }
     case PROP_DEVICE_FD: