• Philipp Zabel's avatar
    media: uvcvideo: Support multiple frame descriptors with the same dimensions · 07b7d9fc
    Philipp Zabel authored
    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: default avatarPhilipp Zabel <philipp.zabel@gmail.com>
    Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    07b7d9fc
uvc_v4l2.c 37.6 KB