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;
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: