Hi Laurent, Had you a chance to review USB descriptors from the device provided below? Is any additional information needed? On Wed, Jul 15, 2020 at 06:00:10PM +1000, Dmitry Buzdyk wrote: > On Tue, Jun 09, 2020 at 02:57:36PM +1000, Dmitry Buzdyk wrote: > Hi Laurent, > > Please see updated information below > > > On Sun, Jun 07, 2020 at 04:07:19AM +0300, Laurent Pinchart wrote: > > > Hi Dmitry, > > > > > > Thank you for the patch. > > > > > > On Fri, May 29, 2020 at 11:05:47AM +1000, Dmitry Buzdyk wrote: > > > > Add HEVC GUID and assotiate with HEVC pixel format so that frame > > > > based format descriptors recognized by the UVC video driver. > > > > > > The patch itself looks OK to me, but could you share a bit more > > > information about which device(s) implement this ? Are they UVC 1.1 > > > devices ? Could you share their full USB descriptors (retrieved with > > > 'lsusb -v', running as root if possible) ? > > This is a UVC1.1 camera device based on Ambarella H22 SOC. > > Please note that device is still in development and yet to get actual > > VID and PID. > Device got its VID:PID from USB-IF: > > Bus 001 Device 009: ID 3301:1000 > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.00 > bDeviceClass 239 Miscellaneous Device > bDeviceSubClass 2 > bDeviceProtocol 1 Interface Association > bMaxPacketSize0 64 > idVendor 0x3301 > idProduct 0x1000 > bcdDevice 0.10 > iManufacturer 1 Rhonda > iProduct 2 Rhonda Cam > iSerial 3 FMABCLE15000007 > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 0x022f > bNumInterfaces 3 > bConfigurationValue 1 > iConfiguration 0 > bmAttributes 0x80 > (Bus Powered) > MaxPower 500mA > Interface Association: > bLength 8 > bDescriptorType 11 > bFirstInterface 0 > bInterfaceCount 3 > bFunctionClass 14 Video > bFunctionSubClass 3 Video Interface Collection > bFunctionProtocol 0 > iFunction 2 Rhonda Cam > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 14 Video > bInterfaceSubClass 1 Video Control > bInterfaceProtocol 0 > iInterface 2 Rhonda Cam > VideoControl Interface Descriptor: > bLength 14 > bDescriptorType 36 > bDescriptorSubtype 1 (HEADER) > bcdUVC 1.10 > wTotalLength 0x006b > dwClockFrequency 50.000000MHz > bInCollection 2 > baInterfaceNr( 0) 1 > baInterfaceNr( 1) 2 > VideoControl Interface Descriptor: > bLength 44 > bDescriptorType 36 > bDescriptorSubtype 6 (EXTENSION_UNIT) > bUnitID 10 > guidExtensionCode {e307e649-4618-a3ff-82fc-2d8b5f216773} > bNumControl 146 > bNrPins 1 > baSourceID( 0) 5 > bControlSize 19 > bmControls( 0) 0x05 > bmControls( 1) 0x00 > bmControls( 2) 0x00 > bmControls( 3) 0x00 > bmControls( 4) 0x00 > bmControls( 5) 0x00 > bmControls( 6) 0x00 > bmControls( 7) 0x00 > bmControls( 8) 0x00 > bmControls( 9) 0x00 > bmControls(10) 0x00 > bmControls(11) 0x00 > bmControls(12) 0x00 > bmControls(13) 0x00 > bmControls(14) 0x00 > bmControls(15) 0x00 > bmControls(16) 0x00 > bmControls(17) 0xf0 > bmControls(18) 0x02 > iExtension 0 > VideoControl Interface Descriptor: > bLength 18 > bDescriptorType 36 > bDescriptorSubtype 2 (INPUT_TERMINAL) > bTerminalID 1 > wTerminalType 0x0201 Camera Sensor > bAssocTerminal 0 > iTerminal 0 > wObjectiveFocalLengthMin 0 > wObjectiveFocalLengthMax 0 > wOcularFocalLength 0 > bControlSize 3 > bmControls 0x00100000 > VideoControl Interface Descriptor: > bLength 13 > bDescriptorType 36 > bDescriptorSubtype 5 (PROCESSING_UNIT) > bUnitID 5 > bSourceID 1 > wMaxMultiplier 0 > bControlSize 3 > bmControls 0x00000400 > Power Line Frequency > iProcessing 0 > bmVideoStandards 0x00 > VideoControl Interface Descriptor: > bLength 9 > bDescriptorType 36 > bDescriptorSubtype 3 (OUTPUT_TERMINAL) > bTerminalID 16 > wTerminalType 0x0101 USB Streaming > bAssocTerminal 0 > bSourceID 10 > iTerminal 0 > VideoControl Interface Descriptor: > bLength 9 > bDescriptorType 36 > bDescriptorSubtype 3 (OUTPUT_TERMINAL) > bTerminalID 17 > wTerminalType 0x0101 USB Streaming > bAssocTerminal 0 > bSourceID 10 > iTerminal 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x81 EP 1 IN > bmAttributes 3 > Transfer Type Interrupt > Synch Type None > Usage Type Data > wMaxPacketSize 0x0010 1x 16 bytes > bInterval 15 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 1 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 14 Video > bInterfaceSubClass 2 Video Streaming > bInterfaceProtocol 0 > iInterface 0 > VideoStreaming Interface Descriptor: > bLength 16 > bDescriptorType 36 > bDescriptorSubtype 1 (INPUT_HEADER) > bNumFormats 3 > wTotalLength 0x00bf > bEndPointAddress 130 > bmInfo 0 > bTerminalLink 16 > bStillCaptureMethod 0 > bTriggerSupport 0 > bTriggerUsage 0 > bControlSize 1 > bmaControls( 0) 0 > bmaControls( 1) 0 > bmaControls( 2) 4 > VideoStreaming Interface Descriptor: > bLength 28 > bDescriptorType 36 > bDescriptorSubtype 16 (FORMAT_FRAME_BASED) > bFormatIndex 1 > bNumFrameDescriptors 1 > guidFormat {34363248-0000-0010-8000-00aa00389b71} > bBitsPerPixel 16 > bDefaultFrameIndex 1 > bAspectRatioX 0 > bAspectRatioY 0 > bmInterlaceFlags 0x00 > Interlaced stream or variable: No > Fields per frame: 2 fields > Field 1 first: No > Field pattern: Field 1 only > bCopyProtect 0 > bVariableSize 1 > VideoStreaming Interface Descriptor: > bLength 30 > bDescriptorType 36 > bDescriptorSubtype 17 (FRAME_FRAME_BASED) > bFrameIndex 1 > bmCapabilities 0x00 > Still image unsupported > wWidth 1440 > wHeight 1920 > dwMinBitRate 10000000 > dwMaxBitRate 10000000 > dwDefaultFrameInterval 333333 > bFrameIntervalType 1 > dwBytesPerLine 0 > dwFrameInterval( 0) 333333 > VideoStreaming Interface Descriptor: > bLength 6 > bDescriptorType 36 > bDescriptorSubtype 13 (COLORFORMAT) > bColorPrimaries 1 (BT.709,sRGB) > bTransferCharacteristics 1 (BT.709) > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > VideoStreaming Interface Descriptor: > bLength 28 > bDescriptorType 36 > bDescriptorSubtype 16 (FORMAT_FRAME_BASED) > bFormatIndex 2 > bNumFrameDescriptors 1 > guidFormat {43564548-0000-0010-8000-00aa00389b71} > bBitsPerPixel 16 > bDefaultFrameIndex 1 > bAspectRatioX 0 > bAspectRatioY 0 > bmInterlaceFlags 0x00 > Interlaced stream or variable: No > Fields per frame: 2 fields > Field 1 first: No > Field pattern: Field 1 only > bCopyProtect 0 > bVariableSize 1 > VideoStreaming Interface Descriptor: > bLength 30 > bDescriptorType 36 > bDescriptorSubtype 17 (FRAME_FRAME_BASED) > bFrameIndex 1 > bmCapabilities 0x00 > Still image unsupported > wWidth 1440 > wHeight 1920 > dwMinBitRate 10000000 > dwMaxBitRate 10000000 > dwDefaultFrameInterval 333333 > bFrameIntervalType 1 > dwBytesPerLine 0 > dwFrameInterval( 0) 333333 > VideoStreaming Interface Descriptor: > bLength 6 > bDescriptorType 36 > bDescriptorSubtype 13 (COLORFORMAT) > bColorPrimaries 1 (BT.709,sRGB) > bTransferCharacteristics 1 (BT.709) > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > VideoStreaming Interface Descriptor: > bLength 11 > bDescriptorType 36 > bDescriptorSubtype 6 (FORMAT_MJPEG) > bFormatIndex 3 > bNumFrameDescriptors 1 > bFlags 0 > Fixed-size samples: No > bDefaultFrameIndex 1 > bAspectRatioX 0 > bAspectRatioY 0 > bmInterlaceFlags 0x00 > Interlaced stream or variable: No > Fields per frame: 1 fields > Field 1 first: No > Field pattern: Field 1 only > bCopyProtect 0 > VideoStreaming Interface Descriptor: > bLength 30 > bDescriptorType 36 > bDescriptorSubtype 7 (FRAME_MJPEG) > bFrameIndex 1 > bmCapabilities 0x00 > Still image unsupported > wWidth 3000 > wHeight 4000 > dwMinBitRate 10000000 > dwMaxBitRate 10000000 > dwMaxVideoFrameBufferSize 36000000 > dwDefaultFrameInterval 1000000 > bFrameIntervalType 1 > dwFrameInterval( 0) 1000000 > VideoStreaming Interface Descriptor: > bLength 6 > bDescriptorType 36 > bDescriptorSubtype 13 (COLORFORMAT) > bColorPrimaries 1 (BT.709,sRGB) > bTransferCharacteristics 1 (BT.709) > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x82 EP 2 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 2 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 14 Video > bInterfaceSubClass 2 Video Streaming > bInterfaceProtocol 0 > iInterface 0 > VideoStreaming Interface Descriptor: > bLength 16 > bDescriptorType 36 > bDescriptorSubtype 1 (INPUT_HEADER) > bNumFormats 3 > wTotalLength 0x00bf > bEndPointAddress 131 > bmInfo 0 > bTerminalLink 17 > bStillCaptureMethod 0 > bTriggerSupport 0 > bTriggerUsage 0 > bControlSize 1 > bmaControls( 0) 0 > bmaControls( 1) 0 > bmaControls( 2) 4 > VideoStreaming Interface Descriptor: > bLength 28 > bDescriptorType 36 > bDescriptorSubtype 16 (FORMAT_FRAME_BASED) > bFormatIndex 1 > bNumFrameDescriptors 1 > guidFormat {34363248-0000-0010-8000-00aa00389b71} > bBitsPerPixel 16 > bDefaultFrameIndex 1 > bAspectRatioX 0 > bAspectRatioY 0 > bmInterlaceFlags 0x00 > Interlaced stream or variable: No > Fields per frame: 2 fields > Field 1 first: No > Field pattern: Field 1 only > bCopyProtect 0 > bVariableSize 1 > VideoStreaming Interface Descriptor: > bLength 30 > bDescriptorType 36 > bDescriptorSubtype 17 (FRAME_FRAME_BASED) > bFrameIndex 1 > bmCapabilities 0x00 > Still image unsupported > wWidth 1440 > wHeight 1920 > dwMinBitRate 10000000 > dwMaxBitRate 10000000 > dwDefaultFrameInterval 333333 > bFrameIntervalType 1 > dwBytesPerLine 0 > dwFrameInterval( 0) 333333 > VideoStreaming Interface Descriptor: > bLength 6 > bDescriptorType 36 > bDescriptorSubtype 13 (COLORFORMAT) > bColorPrimaries 1 (BT.709,sRGB) > bTransferCharacteristics 1 (BT.709) > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > VideoStreaming Interface Descriptor: > bLength 28 > bDescriptorType 36 > bDescriptorSubtype 16 (FORMAT_FRAME_BASED) > bFormatIndex 2 > bNumFrameDescriptors 1 > guidFormat {43564548-0000-0010-8000-00aa00389b71} > bBitsPerPixel 16 > bDefaultFrameIndex 1 > bAspectRatioX 0 > bAspectRatioY 0 > bmInterlaceFlags 0x00 > Interlaced stream or variable: No > Fields per frame: 2 fields > Field 1 first: No > Field pattern: Field 1 only > bCopyProtect 0 > bVariableSize 1 > VideoStreaming Interface Descriptor: > bLength 30 > bDescriptorType 36 > bDescriptorSubtype 17 (FRAME_FRAME_BASED) > bFrameIndex 1 > bmCapabilities 0x00 > Still image unsupported > wWidth 1440 > wHeight 1920 > dwMinBitRate 10000000 > dwMaxBitRate 10000000 > dwDefaultFrameInterval 333333 > bFrameIntervalType 1 > dwBytesPerLine 0 > dwFrameInterval( 0) 333333 > VideoStreaming Interface Descriptor: > bLength 6 > bDescriptorType 36 > bDescriptorSubtype 13 (COLORFORMAT) > bColorPrimaries 1 (BT.709,sRGB) > bTransferCharacteristics 1 (BT.709) > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > VideoStreaming Interface Descriptor: > bLength 11 > bDescriptorType 36 > bDescriptorSubtype 6 (FORMAT_MJPEG) > bFormatIndex 3 > bNumFrameDescriptors 1 > bFlags 0 > Fixed-size samples: No > bDefaultFrameIndex 1 > bAspectRatioX 0 > bAspectRatioY 0 > bmInterlaceFlags 0x00 > Interlaced stream or variable: No > Fields per frame: 1 fields > Field 1 first: No > Field pattern: Field 1 only > bCopyProtect 0 > VideoStreaming Interface Descriptor: > bLength 30 > bDescriptorType 36 > bDescriptorSubtype 7 (FRAME_MJPEG) > bFrameIndex 1 > bmCapabilities 0x00 > Still image unsupported > wWidth 3000 > wHeight 4000 > dwMinBitRate 10000000 > dwMaxBitRate 10000000 > dwMaxVideoFrameBufferSize 36000000 > dwDefaultFrameInterval 1000000 > bFrameIntervalType 1 > dwFrameInterval( 0) 1000000 > VideoStreaming Interface Descriptor: > bLength 6 > bDescriptorType 36 > bDescriptorSubtype 13 (COLORFORMAT) > bColorPrimaries 1 (BT.709,sRGB) > bTransferCharacteristics 1 (BT.709) > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x83 EP 3 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Device Qualifier (for other device speed): > bLength 10 > bDescriptorType 6 > bcdUSB 2.00 > bDeviceClass 239 Miscellaneous Device > bDeviceSubClass 2 > bDeviceProtocol 1 Interface Association > bMaxPacketSize0 64 > bNumConfigurations 1 > Device Status: 0x0000 > (Bus Powered) > > > > Output of lsusb is: > > > > Bus 001 Device 010: ID 1209:0001 Generic pid.codes Test PID > > Device Descriptor: > > bLength 18 > > bDescriptorType 1 > > bcdUSB 2.00 > > bDeviceClass 239 Miscellaneous Device > > bDeviceSubClass 2 > > bDeviceProtocol 1 Interface Association > > bMaxPacketSize0 64 > > idVendor 0x1209 Generic > > idProduct 0x0001 pid.codes Test PID > > bcdDevice 0.10 > > iManufacturer 1 Rhonda > > iProduct 2 Rhonda Cam > > iSerial 3 FMABCLE15000007 > > bNumConfigurations 1 > > Configuration Descriptor: > > bLength 9 > > bDescriptorType 2 > > wTotalLength 0x01ff > > bNumInterfaces 3 > > bConfigurationValue 1 > > iConfiguration 0 > > bmAttributes 0x80 > > (Bus Powered) > > MaxPower 500mA > > Interface Association: > > bLength 8 > > bDescriptorType 11 > > bFirstInterface 0 > > bInterfaceCount 3 > > bFunctionClass 14 Video > > bFunctionSubClass 3 Video Interface Collection > > bFunctionProtocol 0 > > iFunction 2 Rhonda Cam > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 0 > > bAlternateSetting 0 > > bNumEndpoints 1 > > bInterfaceClass 14 Video > > bInterfaceSubClass 1 Video Control > > bInterfaceProtocol 0 > > iInterface 2 Rhonda Cam > > VideoControl Interface Descriptor: > > bLength 14 > > bDescriptorType 36 > > bDescriptorSubtype 1 (HEADER) > > bcdUVC 1.10 > > wTotalLength 0x006b > > dwClockFrequency 50.000000MHz > > bInCollection 2 > > baInterfaceNr( 0) 1 > > baInterfaceNr( 1) 2 > > VideoControl Interface Descriptor: > > bLength 44 > > bDescriptorType 36 > > bDescriptorSubtype 6 (EXTENSION_UNIT) > > bUnitID 10 > > guidExtensionCode {e307e649-4618-a3ff-82fc-2d8b5f216773} > > bNumControl 146 > > bNrPins 1 > > baSourceID( 0) 5 > > bControlSize 19 > > bmControls( 0) 0x05 > > bmControls( 1) 0x00 > > bmControls( 2) 0x00 > > bmControls( 3) 0x00 > > bmControls( 4) 0x00 > > bmControls( 5) 0x00 > > bmControls( 6) 0x00 > > bmControls( 7) 0x00 > > bmControls( 8) 0x00 > > bmControls( 9) 0x00 > > bmControls(10) 0x00 > > bmControls(11) 0x00 > > bmControls(12) 0x00 > > bmControls(13) 0x00 > > bmControls(14) 0x00 > > bmControls(15) 0x00 > > bmControls(16) 0x00 > > bmControls(17) 0xf0 > > bmControls(18) 0x02 > > iExtension 0 > > VideoControl Interface Descriptor: > > bLength 18 > > bDescriptorType 36 > > bDescriptorSubtype 2 (INPUT_TERMINAL) > > bTerminalID 1 > > wTerminalType 0x0201 Camera Sensor > > bAssocTerminal 0 > > iTerminal 0 > > wObjectiveFocalLengthMin 0 > > wObjectiveFocalLengthMax 0 > > wOcularFocalLength 0 > > bControlSize 3 > > bmControls 0x00100000 > > VideoControl Interface Descriptor: > > bLength 13 > > bDescriptorType 36 > > bDescriptorSubtype 5 (PROCESSING_UNIT) > > bUnitID 5 > > bSourceID 1 > > wMaxMultiplier 0 > > bControlSize 3 > > bmControls 0x00000400 > > Power Line Frequency > > iProcessing 0 > > bmVideoStandards 0x00 > > VideoControl Interface Descriptor: > > bLength 9 > > bDescriptorType 36 > > bDescriptorSubtype 3 (OUTPUT_TERMINAL) > > bTerminalID 16 > > wTerminalType 0x0101 USB Streaming > > bAssocTerminal 0 > > bSourceID 10 > > iTerminal 0 > > VideoControl Interface Descriptor: > > bLength 9 > > bDescriptorType 36 > > bDescriptorSubtype 3 (OUTPUT_TERMINAL) > > bTerminalID 17 > > wTerminalType 0x0101 USB Streaming > > bAssocTerminal 0 > > bSourceID 10 > > iTerminal 0 > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x81 EP 1 IN > > bmAttributes 3 > > Transfer Type Interrupt > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0010 1x 16 bytes > > bInterval 15 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 1 > > bAlternateSetting 0 > > bNumEndpoints 1 > > bInterfaceClass 14 Video > > bInterfaceSubClass 2 Video Streaming > > bInterfaceProtocol 0 > > iInterface 0 > > VideoStreaming Interface Descriptor: > > bLength 16 > > bDescriptorType 36 > > bDescriptorSubtype 1 (INPUT_HEADER) > > bNumFormats 3 > > wTotalLength 0x00bf > > bEndPointAddress 130 > > bmInfo 0 > > bTerminalLink 16 > > bStillCaptureMethod 0 > > bTriggerSupport 0 > > bTriggerUsage 0 > > bControlSize 1 > > bmaControls( 0) 0 > > bmaControls( 1) 0 > > bmaControls( 2) 4 > > VideoStreaming Interface Descriptor: > > bLength 28 > > bDescriptorType 36 > > bDescriptorSubtype 16 (FORMAT_FRAME_BASED) > > bFormatIndex 1 > > bNumFrameDescriptors 1 > > guidFormat {34363248-0000-0010-8000-00aa00389b71} > > bBitsPerPixel 16 > > bDefaultFrameIndex 1 > > bAspectRatioX 0 > > bAspectRatioY 0 > > bmInterlaceFlags 0x00 > > Interlaced stream or variable: No > > Fields per frame: 2 fields > > Field 1 first: No > > Field pattern: Field 1 only > > bCopyProtect 0 > > bVariableSize 1 > > VideoStreaming Interface Descriptor: > > bLength 30 > > bDescriptorType 36 > > bDescriptorSubtype 17 (FRAME_FRAME_BASED) > > bFrameIndex 1 > > bmCapabilities 0x00 > > Still image unsupported > > wWidth 1440 > > wHeight 1920 > > dwMinBitRate 10000000 > > dwMaxBitRate 10000000 > > dwDefaultFrameInterval 333333 > > bFrameIntervalType 1 > > dwBytesPerLine 0 > > dwFrameInterval( 0) 333333 > > VideoStreaming Interface Descriptor: > > bLength 6 > > bDescriptorType 36 > > bDescriptorSubtype 13 (COLORFORMAT) > > bColorPrimaries 1 (BT.709,sRGB) > > bTransferCharacteristics 1 (BT.709) > > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > > VideoStreaming Interface Descriptor: > > bLength 28 > > bDescriptorType 36 > > bDescriptorSubtype 16 (FORMAT_FRAME_BASED) > > bFormatIndex 2 > > bNumFrameDescriptors 1 > > guidFormat {43564548-0000-0010-8000-00aa00389b71} > > bBitsPerPixel 16 > > bDefaultFrameIndex 1 > > bAspectRatioX 0 > > bAspectRatioY 0 > > bmInterlaceFlags 0x00 > > Interlaced stream or variable: No > > Fields per frame: 2 fields > > Field 1 first: No > > Field pattern: Field 1 only > > bCopyProtect 0 > > bVariableSize 1 > > VideoStreaming Interface Descriptor: > > bLength 30 > > bDescriptorType 36 > > bDescriptorSubtype 17 (FRAME_FRAME_BASED) > > bFrameIndex 1 > > bmCapabilities 0x00 > > Still image unsupported > > wWidth 1440 > > wHeight 1920 > > dwMinBitRate 10000000 > > dwMaxBitRate 10000000 > > dwDefaultFrameInterval 333333 > > bFrameIntervalType 1 > > dwBytesPerLine 0 > > dwFrameInterval( 0) 333333 > > VideoStreaming Interface Descriptor: > > bLength 6 > > bDescriptorType 36 > > bDescriptorSubtype 13 (COLORFORMAT) > > bColorPrimaries 1 (BT.709,sRGB) > > bTransferCharacteristics 1 (BT.709) > > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > > VideoStreaming Interface Descriptor: > > bLength 11 > > bDescriptorType 36 > > bDescriptorSubtype 6 (FORMAT_MJPEG) > > bFormatIndex 3 > > bNumFrameDescriptors 1 > > bFlags 0 > > Fixed-size samples: No > > bDefaultFrameIndex 1 > > bAspectRatioX 0 > > bAspectRatioY 0 > > bmInterlaceFlags 0x00 > > Interlaced stream or variable: No > > Fields per frame: 1 fields > > Field 1 first: No > > Field pattern: Field 1 only > > bCopyProtect 0 > > VideoStreaming Interface Descriptor: > > bLength 30 > > bDescriptorType 36 > > bDescriptorSubtype 7 (FRAME_MJPEG) > > bFrameIndex 1 > > bmCapabilities 0x00 > > Still image unsupported > > wWidth 3000 > > wHeight 4000 > > dwMinBitRate 10000000 > > dwMaxBitRate 10000000 > > dwMaxVideoFrameBufferSize 36000000 > > dwDefaultFrameInterval 1000000 > > bFrameIntervalType 1 > > dwFrameInterval( 0) 1000000 > > VideoStreaming Interface Descriptor: > > bLength 6 > > bDescriptorType 36 > > bDescriptorSubtype 13 (COLORFORMAT) > > bColorPrimaries 1 (BT.709,sRGB) > > bTransferCharacteristics 1 (BT.709) > > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x82 EP 2 IN > > bmAttributes 2 > > Transfer Type Bulk > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0200 1x 512 bytes > > bInterval 0 > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 2 > > bAlternateSetting 0 > > bNumEndpoints 1 > > bInterfaceClass 14 Video > > bInterfaceSubClass 2 Video Streaming > > bInterfaceProtocol 0 > > iInterface 0 > > VideoStreaming Interface Descriptor: > > bLength 15 > > bDescriptorType 36 > > bDescriptorSubtype 1 (INPUT_HEADER) > > bNumFormats 2 > > wTotalLength 0x008f > > bEndPointAddress 131 > > bmInfo 0 > > bTerminalLink 17 > > bStillCaptureMethod 0 > > bTriggerSupport 0 > > bTriggerUsage 0 > > bControlSize 1 > > bmaControls( 0) 0 > > bmaControls( 1) 0 > > VideoStreaming Interface Descriptor: > > bLength 28 > > bDescriptorType 36 > > bDescriptorSubtype 16 (FORMAT_FRAME_BASED) > > bFormatIndex 1 > > bNumFrameDescriptors 1 > > guidFormat {34363248-0000-0010-8000-00aa00389b71} > > bBitsPerPixel 16 > > bDefaultFrameIndex 1 > > bAspectRatioX 0 > > bAspectRatioY 0 > > bmInterlaceFlags 0x00 > > Interlaced stream or variable: No > > Fields per frame: 2 fields > > Field 1 first: No > > Field pattern: Field 1 only > > bCopyProtect 0 > > bVariableSize 1 > > VideoStreaming Interface Descriptor: > > bLength 30 > > bDescriptorType 36 > > bDescriptorSubtype 17 (FRAME_FRAME_BASED) > > bFrameIndex 1 > > bmCapabilities 0x00 > > Still image unsupported > > wWidth 1440 > > wHeight 1920 > > dwMinBitRate 10000000 > > dwMaxBitRate 10000000 > > dwDefaultFrameInterval 333333 > > bFrameIntervalType 1 > > dwBytesPerLine 0 > > dwFrameInterval( 0) 333333 > > VideoStreaming Interface Descriptor: > > bLength 6 > > bDescriptorType 36 > > bDescriptorSubtype 13 (COLORFORMAT) > > bColorPrimaries 1 (BT.709,sRGB) > > bTransferCharacteristics 1 (BT.709) > > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > > VideoStreaming Interface Descriptor: > > bLength 28 > > bDescriptorType 36 > > bDescriptorSubtype 16 (FORMAT_FRAME_BASED) > > bFormatIndex 2 > > bNumFrameDescriptors 1 > > guidFormat {43564548-0000-0010-8000-00aa00389b71} > > bBitsPerPixel 16 > > bDefaultFrameIndex 1 > > bAspectRatioX 0 > > bAspectRatioY 0 > > bmInterlaceFlags 0x00 > > Interlaced stream or variable: No > > Fields per frame: 2 fields > > Field 1 first: No > > Field pattern: Field 1 only > > bCopyProtect 0 > > bVariableSize 1 > > VideoStreaming Interface Descriptor: > > bLength 30 > > bDescriptorType 36 > > bDescriptorSubtype 17 (FRAME_FRAME_BASED) > > bFrameIndex 1 > > bmCapabilities 0x00 > > Still image unsupported > > wWidth 1440 > > wHeight 1920 > > dwMinBitRate 10000000 > > dwMaxBitRate 10000000 > > dwDefaultFrameInterval 333333 > > bFrameIntervalType 1 > > dwBytesPerLine 0 > > dwFrameInterval( 0) 333333 > > VideoStreaming Interface Descriptor: > > bLength 6 > > bDescriptorType 36 > > bDescriptorSubtype 13 (COLORFORMAT) > > bColorPrimaries 1 (BT.709,sRGB) > > bTransferCharacteristics 1 (BT.709) > > bMatrixCoefficients 4 (SMPTE 170M (BT.601)) > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x83 EP 3 IN > > bmAttributes 2 > > Transfer Type Bulk > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0200 1x 512 bytes > > bInterval 0 > > Device Qualifier (for other device speed): > > bLength 10 > > bDescriptorType 6 > > bcdUSB 2.00 > > bDeviceClass 239 Miscellaneous Device > > bDeviceSubClass 2 > > bDeviceProtocol 1 Interface Association > > bMaxPacketSize0 64 > > bNumConfigurations 1 > > Device Status: 0x0000 > > (Bus Powered) > > > > > > > > Is there anything else needed to get HEVC capture working, such as > > > extension unit controls, or is this patch enough ? What userspace > > > software do you use to capture and decode HEVC (or capture it to disk) ? > > No other changes to Linux nor extra actions needed to start HEVC capture. > > We use patched version of FFmpeg to capture, decode and display HEVC > > stream from camera device. That simple patch also going to be sent to > > FFmpeg upstream. > Patch for FFmpeg sent to https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=1760 > > > > > > > > > Signed-off-by: Dmitry Buzdyk <dima.buzdyk@xxxxxxxxx> > > > > --- > > > > drivers/media/usb/uvc/uvc_driver.c | 5 +++++ > > > > drivers/media/usb/uvc/uvcvideo.h | 4 ++++ > > > > 2 files changed, 9 insertions(+) > > > > > > > > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c > > > > index 431d86e1c94b..825ee3601661 100644 > > > > --- a/drivers/media/usb/uvc/uvc_driver.c > > > > +++ b/drivers/media/usb/uvc/uvc_driver.c > > > > @@ -214,6 +214,11 @@ static struct uvc_format_desc uvc_fmts[] = { > > > > .guid = UVC_GUID_FORMAT_CNF4, > > > > .fcc = V4L2_PIX_FMT_CNF4, > > > > }, > > > > + { > > > > + .name = "HEVC", > > > > + .guid = UVC_GUID_FORMAT_HEVC, > > > > + .fcc = V4L2_PIX_FMT_HEVC, > > > > + }, > > > > }; > > > > > > > > /* ------------------------------------------------------------------------ > > > > diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h > > > > index 6ab972c643e3..c7f043121b41 100644 > > > > --- a/drivers/media/usb/uvc/uvcvideo.h > > > > +++ b/drivers/media/usb/uvc/uvcvideo.h > > > > @@ -165,6 +165,10 @@ > > > > {0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \ > > > > 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} > > > > > > > > +#define UVC_GUID_FORMAT_HEVC \ > > > > + { 'H', 'E', 'V', 'C', 0x00, 0x00, 0x10, 0x00, \ > > > > + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} > > > > + > > > > > > > > /* ------------------------------------------------------------------------ > > > > * Driver specific constants. > > > > > > -- > > > Regards, > > > > > > Laurent Pinchart > > -- > > Dmitry Buzdyk > > Rhonda Software > Best Regards, > Dmitry Buzdyk -- Dmitry Buzdyk Rhonda Software