v4l2object: Don't open the device in get property

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
This commit is contained in:
Nicolas Dufresne 2018-05-16 20:16:44 -04:00
parent 48dd93662d
commit f72c7131ae

View file

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