mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
| --- linux-4.9.37/include/uapi/linux/usb/video.h	2017-07-12 16:42:41.000000000 +0300
 | |
| +++ linux-4.9.y/include/uapi/linux/usb/video.h	2021-06-07 13:01:34.000000000 +0300
 | |
| @@ -303,7 +303,7 @@
 | |
|  	__u8  iProcessing;
 | |
|  } __attribute__((__packed__));
 | |
|  
 | |
| -#define UVC_DT_PROCESSING_UNIT_SIZE(n)			(9+(n))
 | |
| +#define UVC_DT_PROCESSING_UNIT_SIZE(n)			(10+(n))
 | |
|  
 | |
|  /* 3.7.2.6. Extension Unit Descriptor */
 | |
|  struct uvc_extension_unit_descriptor {
 | |
| @@ -340,6 +340,8 @@
 | |
|  	__u8  iExtension;				\
 | |
|  } __attribute__ ((packed))
 | |
|  
 | |
| +DECLARE_UVC_EXTENSION_UNIT_DESCRIPTOR(1,2);
 | |
| +
 | |
|  /* 3.8.2.2. Video Control Interrupt Endpoint Descriptor */
 | |
|  struct uvc_control_endpoint_descriptor {
 | |
|  	__u8  bLength;
 | |
| @@ -565,5 +567,64 @@
 | |
|  	__u32 dwFrameInterval[n];			\
 | |
|  } __attribute__ ((packed))
 | |
|  
 | |
| +
 | |
| +/* 3.1.1  Frame Based Payload Video Format Descriptor */
 | |
| +struct uvc_frame_based_format_desc {
 | |
| +	__u8  bLength;
 | |
| +	__u8  bDescriptorType;
 | |
| +	__u8  bDescriptorSubType;
 | |
| +	__u8  bFormatIndex;
 | |
| +	__u8  bNumFrameDescriptors;
 | |
| +	__u8  guidFormat[16];
 | |
| +	__u8  bBitsPerPixel;
 | |
| +	__u8  bDefaultFrameIndex;
 | |
| +	__u8  bAspectRatioX;
 | |
| +	__u8  bAspectRatioY;
 | |
| +	__u8  bmInterfaceFlags;
 | |
| +	__u8  bCopyProtect;
 | |
| +	__u8  bVariableSize;
 | |
| +} __attribute__((__packed__));
 | |
| +
 | |
| +#define UVC_DT_FRAME_BASED_FORMAT_SIZE		28
 | |
| +
 | |
| +/* 3.1.2  Frame Based Payload Frame Descriptor */
 | |
| +struct uvc_frame_based_frame_desc {
 | |
| +	__u8  bLength;
 | |
| +	__u8  bDescriptorType;
 | |
| +	__u8  bDescriptorSubType;
 | |
| +	__u8  bFrameIndex;
 | |
| +	__u8  bmCapabilities;
 | |
| +	__u16 wWidth;
 | |
| +	__u16 wHeight;
 | |
| +	__u32 dwMinBitRate;
 | |
| +	__u32 dwMaxBitRate;
 | |
| +	__u32 dwDefaultFrameInterval;
 | |
| +	__u8  bFrameIntervalType;
 | |
| +	__u32 dwBytesPerLine;
 | |
| +	__u32 dwFrameInterval[];
 | |
| +} __attribute__((__packed__));
 | |
| +
 | |
| +#define UVC_DT_FRAME_BASED_FRAME_SIZE(n)			(26+4*(n))
 | |
| +
 | |
| +#define UVC_FRAME_BASED(n) \
 | |
| +	uvc_frame_based_desc##n
 | |
| +
 | |
| +#define DECLARE_UVC_FRAME_BASED(n)			\
 | |
| +struct UVC_FRAME_BASED(n) {				\
 | |
| +	__u8  bLength;					\
 | |
| +	__u8  bDescriptorType;				\
 | |
| +	__u8  bDescriptorSubType;			\
 | |
| +	__u8  bFrameIndex;				\
 | |
| +	__u8  bmCapabilities;				\
 | |
| +	__u16 wWidth;					\
 | |
| +	__u16 wHeight;					\
 | |
| +	__u32 dwMinBitRate;				\
 | |
| +	__u32 dwMaxBitRate;				\
 | |
| +	__u32 dwDefaultFrameInterval;			\
 | |
| +	__u8  bFrameIntervalType;			\
 | |
| +	__u32 dwBytesPerLine;			\
 | |
| +	__u32 dwFrameInterval[n];			\
 | |
| +} __attribute__ ((packed))
 | |
| +
 | |
|  #endif /* __LINUX_USB_VIDEO_H */
 | |
|  
 |