mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-16 11:15:31 +00:00
v4l2object: Don't probe UVC devices for being interlaced
UVC devices are never interlaced, and doing VIDIOC_TRY_FMT on them causes expensive and slow USB IO, so don't probe them for interlaced. This shaves 2 seconds of the startup time of cheese with a Logitech Webcam Pro 9000. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677722
This commit is contained in:
parent
98e415dc9d
commit
b9676944bb
1 changed files with 12 additions and 4 deletions
|
@ -1589,10 +1589,18 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
|
||||||
gint int_width = width;
|
gint int_width = width;
|
||||||
gint int_height = height;
|
gint int_height = height;
|
||||||
|
|
||||||
/* interlaced detection using VIDIOC_TRY/S_FMT */
|
if (!strcmp((char *)v4l2object->vcap.driver, "uvcvideo")) {
|
||||||
|
/*
|
||||||
|
* UVC devices are never interlaced, and doing VIDIOC_TRY_FMT on them
|
||||||
|
* causes expensive and slow USB IO, so don't probe them for interlaced
|
||||||
|
*/
|
||||||
|
interlaced = FALSE;
|
||||||
|
} else {
|
||||||
|
/* Interlaced detection using VIDIOC_TRY/S_FMT */
|
||||||
if (!gst_v4l2_object_get_nearest_size (v4l2object, pixelformat,
|
if (!gst_v4l2_object_get_nearest_size (v4l2object, pixelformat,
|
||||||
&int_width, &int_height, &interlaced))
|
&int_width, &int_height, &interlaced))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
memset (&ival, 0, sizeof (struct v4l2_frmivalenum));
|
memset (&ival, 0, sizeof (struct v4l2_frmivalenum));
|
||||||
ival.index = 0;
|
ival.index = 0;
|
||||||
|
|
Loading…
Reference in a new issue