@@ -44,6 +44,24 @@ enum {
4444};
4545
4646#define TUD_VIDEO_CAPTURE_DESC_LEN (\
47+ TUD_VIDEO_DESC_IAD_LEN\
48+ /* control */ \
49+ + TUD_VIDEO_DESC_STD_VC_LEN \
50+ + (TUD_VIDEO_DESC_CS_VC_LEN + 1 /*bInCollection*/ )\
51+ + TUD_VIDEO_DESC_CAMERA_TERM_LEN \
52+ + TUD_VIDEO_DESC_OUTPUT_TERM_LEN \
53+ /* Interface 1, Alternate 0 */ \
54+ + TUD_VIDEO_DESC_STD_VS_LEN \
55+ + (TUD_VIDEO_DESC_CS_VS_IN_LEN + 1 /*bNumFormats x bControlSize*/ )\
56+ + TUD_VIDEO_DESC_CS_VS_FMT_UNCOMPR_LEN \
57+ + TUD_VIDEO_DESC_CS_VS_FRM_UNCOMPR_CONT_LEN \
58+ + TUD_VIDEO_DESC_CS_VS_COLOR_MATCHING_LEN \
59+ /* Interface 1, Alternate 1 */ \
60+ + TUD_VIDEO_DESC_STD_VS_LEN \
61+ + 7 /* Endpoint */ \
62+ )
63+
64+ #define TUD_VIDEO_CAPTURE_DESC_MJPG_LEN (\
4765 TUD_VIDEO_DESC_IAD_LEN \
4866 /* control */ \
4967 + TUD_VIDEO_DESC_STD_VC_LEN \
@@ -74,6 +92,43 @@ enum {
7492 TUD_VIDEO_DESC_CS_VS_FMT_UNCOMPR(_fmtidx, _numfmtdesc, TUD_VIDEO_GUID_I420, 12, _frmidx, _asrx, _asry, _interlace, _cp)
7593
7694#define TUD_VIDEO_CAPTURE_DESCRIPTOR (_stridx , _epin , _width , _height , _fps , _epsize ) \
95+ TUD_VIDEO_DESC_IAD(ITF_NUM_VIDEO_CONTROL, /* 2 Interfaces */ 0x02 , _stridx ), \
96+ /* Video control 0 */ \
97+ TUD_VIDEO_DESC_STD_VC (ITF_NUM_VIDEO_CONTROL , 0 , _stridx ), \
98+ TUD_VIDEO_DESC_CS_VC ( /* UVC 1.5*/ 0x0150 , \
99+ /* wTotalLength - bLength */ \
100+ TUD_VIDEO_DESC_CAMERA_TERM_LEN + TUD_VIDEO_DESC_OUTPUT_TERM_LEN , \
101+ UVC_CLOCK_FREQUENCY , ITF_NUM_VIDEO_STREAMING ), \
102+ TUD_VIDEO_DESC_CAMERA_TERM (UVC_ENTITY_CAP_INPUT_TERMINAL , 0 , 0 ,\
103+ /*wObjectiveFocalLengthMin*/ 0 , /*wObjectiveFocalLengthMax*/ 0 ,\
104+ /*wObjectiveFocalLength*/ 0 , /*bmControls*/ 0 ), \
105+ TUD_VIDEO_DESC_OUTPUT_TERM (UVC_ENTITY_CAP_OUTPUT_TERMINAL , VIDEO_TT_STREAMING , 0 , 1 , 0 ), \
106+ /* Video stream alt. 0 */ \
107+ TUD_VIDEO_DESC_STD_VS (ITF_NUM_VIDEO_STREAMING , 0 , 0 , _stridx ), \
108+ /* Video stream header for without still image capture */ \
109+ TUD_VIDEO_DESC_CS_VS_INPUT ( /*bNumFormats*/ 1 , \
110+ /*wTotalLength - bLength */ \
111+ TUD_VIDEO_DESC_CS_VS_FMT_UNCOMPR_LEN \
112+ + TUD_VIDEO_DESC_CS_VS_FRM_UNCOMPR_CONT_LEN \
113+ + TUD_VIDEO_DESC_CS_VS_COLOR_MATCHING_LEN ,\
114+ _epin , /*bmInfo*/ 0 , /*bTerminalLink*/ UVC_ENTITY_CAP_OUTPUT_TERMINAL , \
115+ /*bStillCaptureMethod*/ 0 , /*bTriggerSupport*/ 0 , /*bTriggerUsage*/ 0 , \
116+ /*bmaControls(1)*/ 0 ), \
117+ /* Video stream format */ \
118+ TUD_VIDEO_DESC_CS_VS_FMT_YUY2 (/*bFormatIndex*/ 1 , /*bNumFrameDescriptors*/ 1 , \
119+ /*bDefaultFrameIndex*/ 1 , 0 , 0 , 0 , /*bCopyProtect*/ 0 ), \
120+ /* Video stream frame format */ \
121+ TUD_VIDEO_DESC_CS_VS_FRM_UNCOMPR_CONT (/*bFrameIndex */ 1 , 0 , _width , _height , \
122+ _width * _height * 16 , _width * _height * 16 * _fps , \
123+ _width * _height * 16 , \
124+ (10000000 /_fps ), (10000000 /_fps ), (10000000 /_fps )* _fps , (10000000 /_fps )), \
125+ TUD_VIDEO_DESC_CS_VS_COLOR_MATCHING (VIDEO_COLOR_PRIMARIES_BT709 , VIDEO_COLOR_XFER_CH_BT709 , VIDEO_COLOR_COEF_SMPTE170M ), \
126+ /* VS alt 1 */ \
127+ TUD_VIDEO_DESC_STD_VS (ITF_NUM_VIDEO_STREAMING , 1 , 1 , _stridx ), \
128+ /* EP */ \
129+ TUD_VIDEO_DESC_EP_ISO (_epin , _epsize , 1 )
130+
131+ #define TUD_VIDEO_CAPTURE_DESCRIPTOR_MJPG (_stridx , _epin , _width , _height , _fps , _epsize ) \
77132 TUD_VIDEO_DESC_IAD (ITF_NUM_VIDEO_CONTROL , /* 2 Interfaces */ 0x02 , _stridx ), \
78133 /* Video control 0 */ \
79134 TUD_VIDEO_DESC_STD_VC (ITF_NUM_VIDEO_CONTROL , 0 , _stridx ), \
@@ -102,7 +157,7 @@ enum {
102157 /* Video stream frame format */ \
103158 TUD_VIDEO_DESC_CS_VS_FRM_MJPEG_CONT (/*bFrameIndex */ 1 , 0 , _width , _height , \
104159 _width * _height * 16 , _width * _height * 16 * _fps , \
105- _width * _height * 16 , \
160+ _width * _height * 16 / 8 , \
106161 (10000000 /_fps ), (10000000 /_fps ), (10000000 /_fps )* _fps , (10000000 /_fps )), \
107162 TUD_VIDEO_DESC_CS_VS_COLOR_MATCHING (VIDEO_COLOR_PRIMARIES_BT709 , VIDEO_COLOR_XFER_CH_BT709 , VIDEO_COLOR_COEF_SMPTE170M ), \
108163 /* VS alt 1 */ \
0 commit comments