[gstreamer-plugins-good] v4l2: Don't probe UVC devices for being interlaced, this saves seconds when
Hans de Goede
jwrdegoede at fedoraproject.org
Fri Jun 8 19:05:29 UTC 2012
commit 63930d1cfdd66113339ca7c75352965c502782a3
Author: Hans de Goede <hdegoede at redhat.com>
Date: Fri Jun 8 21:05:29 2012 +0200
v4l2: Don't probe UVC devices for being interlaced, this saves seconds when
starting a pipeline with a v4l2 element (rhbz#797188, gnome#677722)
...Don-t-probe-UVC-devices-for-being-interla.patch | 46 ++++++++++++++++++++
gstreamer-plugins-good.spec | 9 +++-
2 files changed, 54 insertions(+), 1 deletions(-)
---
diff --git a/0004-v4l2object-Don-t-probe-UVC-devices-for-being-interla.patch b/0004-v4l2object-Don-t-probe-UVC-devices-for-being-interla.patch
new file mode 100644
index 0000000..4162cf1
--- /dev/null
+++ b/0004-v4l2object-Don-t-probe-UVC-devices-for-being-interla.patch
@@ -0,0 +1,46 @@
+From fefa084bde0850447ca5ed84775c094fcf0b2351 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at 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
+
diff --git a/gstreamer-plugins-good.spec b/gstreamer-plugins-good.spec
index b69d9e5..d18af44 100644
--- a/gstreamer-plugins-good.spec
+++ b/gstreamer-plugins-good.spec
@@ -6,7 +6,7 @@
Name: %{gstreamer}-plugins-good
Version: 0.10.31
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: GStreamer plug-ins with good code and licensing
Group: Applications/Multimedia
@@ -19,6 +19,8 @@ Patch1: 0001-fix-v4l2_munmap.patch
Patch2: 0002-clear_DISCONT_flag.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=677516
Patch3: 0003-v4l2src-fix.patch
+# https://bugzilla.gnome.org/show_bug.cgi?id=677722
+Patch4: 0004-v4l2object-Don-t-probe-UVC-devices-for-being-interla.patch
Requires: %{gstreamer} >= %{_gst}
Requires(pre): GConf2
@@ -110,6 +112,7 @@ This package contains documentation for the provided plugins.
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
%build
@@ -249,6 +252,10 @@ export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/gstreamer-%{majorminor}.schemas > /dev/null || :
%changelog
+* Fri Jun 10 2012 Hans de Goede <hdegoede at redhat.com> - 0.10.31-3
+- v4l2: Don't probe UVC devices for being interlaced, this saves seconds when
+ starting a pipeline with a v4l2 element (rhbz#797188, gnome#677722)
+
* Wed Jun 6 2012 Hans de Goede <hdegoede at redhat.com> 0.10.31-2
- v4l2src: Cherry pick some patches from upstream hopefully fixing #815581
- v4l2src: Deal with uvc cams which report duplicate framerates, such as
More information about the scm-commits
mailing list