v4l2deviceprovider: Ignore touch sensing devices
authorJan Alexander Steffens (heftig) <jan.steffens@gmail.com>
Thu, 19 Oct 2017 12:02:37 +0000 (14:02 +0200)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Tue, 7 Nov 2017 00:34:22 +0000 (19:34 -0500)
commit7e4bc6d418bd6680232e26103d7d3f8efaab688a
tree5374c85a81b9cbffb4ec852bdf6aae5806cc1e34
parent593615de46a98165ff34e74bb2559eeecec61fec
v4l2deviceprovider: Ignore touch sensing devices

With GST_V4L2_USE_LIBV4L2=1, 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 ! ...

v4l2-ctl -d /dev/v4l-touch0 --list-formats reports:

ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'TD16'
        Name        : 16-bit signed deltas

        Index       : 1
        Type        : Video Capture
        Pixel Format: 'TD08'
        Name        : 8-bit signed deltas

        Index       : 2
        Type        : Video Capture
        Pixel Format: 'TU16'
        Name        : 16-bit unsigned touch data

https://bugzilla.gnome.org/show_bug.cgi?id=789197
sys/v4l2/gstv4l2deviceprovider.c