1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- From fefa084bde0850447ca5ed84775c094fcf0b2351 Mon Sep 17 00:00:00 2001
- From: Hans de Goede <hdegoede@redhat.com>
- Date: Fri, 8 Jun 2012 20:38:34 +0200
- Subject: [PATCH] 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>
- ---
- sys/v4l2/gstv4l2object.c | 16 ++++++++++++----
- 1 file changed, 12 insertions(+), 4 deletions(-)
- diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
- index 6564b91..ce52547 100644
- --- a/sys/v4l2/gstv4l2object.c
- +++ b/sys/v4l2/gstv4l2object.c
- @@ -1561,10 +1561,18 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object,
- gint int_width = width;
- gint int_height = height;
-
- - /* interlaced detection using VIDIOC_TRY/S_FMT */
- - if (!gst_v4l2_object_get_nearest_size (v4l2object, pixelformat,
- - &int_width, &int_height, &interlaced))
- - return NULL;
- + 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,
- + &int_width, &int_height, &interlaced))
- + return NULL;
- + }
-
- memset (&ival, 0, sizeof (struct v4l2_frmivalenum));
- ival.index = 0;
- --
- 1.7.10.2
|