[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