[arch-commits] Commit in gst-plugins-good/trunk (1 file)

Jan Steffens heftig at archlinux.org
Mon Nov 27 11:38:21 UTC 2017


    Date: Monday, November 27, 2017 @ 11:38:19
  Author: heftig
Revision: 311002

Add missing patch

Added:
  gst-plugins-good/trunk/0001-v4l2deviceprovider-Ignore-touch-sensing-devices.patch

------------------------------------------------------------+
 0001-v4l2deviceprovider-Ignore-touch-sensing-devices.patch |   70 +++++++++++
 1 file changed, 70 insertions(+)

Added: 0001-v4l2deviceprovider-Ignore-touch-sensing-devices.patch
===================================================================
--- 0001-v4l2deviceprovider-Ignore-touch-sensing-devices.patch	                        (rev 0)
+++ 0001-v4l2deviceprovider-Ignore-touch-sensing-devices.patch	2017-11-27 11:38:19 UTC (rev 311002)
@@ -0,0 +1,70 @@
+From b7e908d32e7cd051d77b8b95174d48f07d2a737d Mon Sep 17 00:00:00 2001
+Message-Id: <b7e908d32e7cd051d77b8b95174d48f07d2a737d.1508414658.git.jan.steffens at gmail.com>
+From: "Jan Alexander Steffens (heftig)" <jan.steffens at gmail.com>
+Date: Thu, 19 Oct 2017 14:02:37 +0200
+Subject: [PATCH] v4l2deviceprovider: Ignore touch sensing devices
+
+My laptop's touchpad shows up as a video source device in
+gst-device-monitor, but attempting to stream from it fails because the
+device doesn't actually support any video formats.
+
+name  : Synaptics RMI4 Touch Sensor
+class : Video/Source
+caps  : video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
+        video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
+        video/x-raw, format=(string)BGR, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
+        video/x-raw, format=(string)RGB, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)0, height=(int)0, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1;
+properties:
+        udev-probed = true
+        device.bus_path = /sys/devices/rmi4-00/rmi4-00.fn54/video4linux/v4l-touch0
+        sysfs.path = /sys/devices/rmi4-00/rmi4-00.fn54/video4linux/v4l-touch0
+        device.subsystem = video4linux
+        device.product.name = "Synaptics\ RMI4\ Touch\ Sensor"
+        device.capabilities = :capture:
+        device.api = v4l2
+        device.path = /dev/v4l-touch0
+        v4l2.device.driver = rmi4_f54
+        v4l2.device.card = "Synaptics\ RMI4\ Touch\ Sensor"
+        v4l2.device.bus_info = rmi4:rmi4-00.fn54
+        v4l2.device.version = 265480 (0x00040d08)
+        v4l2.device.capabilities = 2501902337 (0x95200001)
+        v4l2.device.device_caps = 354418689 (0x15200001)
+gst-launch-1.0 v4l2src device=/dev/v4l-touch0 ! ...
+---
+ sys/v4l2/gstv4l2deviceprovider.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/sys/v4l2/gstv4l2deviceprovider.c b/sys/v4l2/gstv4l2deviceprovider.c
+index 4b003e721692875f..549979e22845de0b 100644
+--- a/sys/v4l2/gstv4l2deviceprovider.c
++++ b/sys/v4l2/gstv4l2deviceprovider.c
+@@ -37,6 +37,11 @@
+ #include <gudev/gudev.h>
+ #endif
+ 
++/* Only available since Linux 4.8 */
++#ifndef V4L2_CAP_TOUCH
++#define V4L2_CAP_TOUCH 0x10000000
++#endif
++
+ static GstV4l2Device *gst_v4l2_device_new (const gchar * device_path,
+     const gchar * device_name, GstCaps * caps, GstV4l2DeviceType type,
+     GstStructure * props);
+@@ -136,8 +141,13 @@ gst_v4l2_device_provider_probe_device (GstV4l2DeviceProvider * provider,
+       v4l2obj->vcap.device_caps, NULL);
+ 
+   if (v4l2obj->device_caps &
+-      (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_CAPTURE_MPLANE))
++      (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_CAPTURE_MPLANE)) {
++    /* We ignore touch sensing devices; those are't really video */
++    if (v4l2obj->device_caps & V4L2_CAP_TOUCH)
++      goto close;
++
+     type = GST_V4L2_DEVICE_TYPE_SOURCE;
++  }
+ 
+   if (v4l2obj->device_caps &
+       (V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OUTPUT_MPLANE)) {
+-- 
+2.14.2
+



More information about the arch-commits mailing list