linux/drivers/media
Philipp Zabel 07b7d9fc2a media: uvcvideo: Support multiple frame descriptors with the same dimensions
The Microsoft HoloLens Sensors device has two separate frame descriptors
with the same dimensions, each with a single different frame interval:

      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         1
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1280
        wHeight                           481
        dwMinBitRate                147763200
        dwMaxBitRate                147763200
        dwMaxVideoFrameBufferSize      615680
        dwDefaultFrameInterval         333333
        bFrameIntervalType                  1
        dwFrameInterval( 0)            333333
      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  5 (FRAME_UNCOMPRESSED)
        bFrameIndex                         2
        bmCapabilities                   0x00
          Still image unsupported
        wWidth                           1280
        wHeight                           481
        dwMinBitRate                443289600
        dwMaxBitRate                443289600
        dwMaxVideoFrameBufferSize      615680
        dwDefaultFrameInterval         111111
        bFrameIntervalType                  1
        dwFrameInterval( 0)            111111

Skip duplicate dimensions in enum_framesizes, let enum_frameintervals list
the intervals from both frame descriptors. Change set_streamparm to switch
to the correct frame index when changing the interval. This enables 90 fps
capture on a Lenovo Explorer Windows Mixed Reality headset.

[laurent.pinchart@ideasonboard.com: Renamed tmp_ival to ival]

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2018-02-23 02:10:41 -05:00
..
cec media: cec: add SPDX license info 2018-02-14 13:16:03 -05:00
common media: add SPDX license info 2018-02-14 13:17:03 -05:00
dvb-core vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
dvb-frontends media: ts2020: avoid integer overflows on 32 bit machines 2018-01-29 07:46:46 -05:00
firewire vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
i2c tda1997x: get rid of an unused var 2018-02-22 12:54:28 -05:00
mmc media: move dvb kAPI headers to include/media 2017-12-28 13:16:01 -05:00
pci media: cobalt: add SPDX license info 2018-02-14 13:15:33 -05:00
platform media: convert g/s_parm to g/s_frame_interval in subdevs 2018-02-22 12:27:35 -05:00
radio media: add SPDX license info 2018-02-14 13:17:03 -05:00
rc media: rc: get start time just before calling driver tx 2018-02-14 14:17:21 -05:00
spi
tuners media: replace all <spaces><tab> occurrences 2018-01-04 13:15:05 -05:00
usb media: uvcvideo: Support multiple frame descriptors with the same dimensions 2018-02-23 02:10:41 -05:00
v4l2-core media: v4l-ioctl: fix clearing pad for VIDIOC_DV_TIMINGS_CAP 2018-02-22 12:41:39 -05:00
Kconfig media: fix usage of whitespaces and on indentation 2018-01-04 13:12:01 -05:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
media-device.c media: drop use of MEDIA_API_VERSION 2017-08-08 06:03:15 -04:00
media-devnode.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
media-entity.c [media] media: Check for active and has_no_links overrun 2017-10-04 17:16:14 -03:00