@@ -540,28 +540,32 @@ typedef struct TU_ATTR_PACKED {
540540
541541TU_VERIFY_STATIC ( sizeof (video_probe_and_commit_control_t ) == 48 , "size is not correct" );
542542
543- #define TUD_VIDEO_DESC_IAD_LEN 8
544- #define TUD_VIDEO_DESC_STD_VC_LEN 9
545- #define TUD_VIDEO_DESC_CS_VC_LEN 12
546- #define TUD_VIDEO_DESC_INPUT_TERM_LEN 8
547- #define TUD_VIDEO_DESC_OUTPUT_TERM_LEN 9
548- #define TUD_VIDEO_DESC_CAMERA_TERM_LEN 18
549- #define TUD_VIDEO_DESC_STD_VS_LEN 9
550- #define TUD_VIDEO_DESC_CS_VS_IN_LEN 13
551- #define TUD_VIDEO_DESC_CS_VS_OUT_LEN 9
552- #define TUD_VIDEO_DESC_CS_VS_FMT_UNCOMPR_LEN 27
553- #define TUD_VIDEO_DESC_CS_VS_FMT_MJPEG_LEN 11
554- #define TUD_VIDEO_DESC_CS_VS_FRM_UNCOMPR_CONT_LEN 38
555- #define TUD_VIDEO_DESC_CS_VS_FRM_UNCOMPR_DISC_LEN 26
556- #define TUD_VIDEO_DESC_CS_VS_FRM_MJPEG_CONT_LEN 38
557- #define TUD_VIDEO_DESC_CS_VS_FRM_MJPEG_DISC_LEN 26
558- #define TUD_VIDEO_DESC_CS_VS_COLOR_MATCHING_LEN 6
543+ #define TUD_VIDEO_DESC_IAD_LEN 8
544+ #define TUD_VIDEO_DESC_STD_VC_LEN 9
545+ #define TUD_VIDEO_DESC_CS_VC_LEN 12
546+ #define TUD_VIDEO_DESC_INPUT_TERM_LEN 8
547+ #define TUD_VIDEO_DESC_OUTPUT_TERM_LEN 9
548+ #define TUD_VIDEO_DESC_CAMERA_TERM_LEN 18
549+ #define TUD_VIDEO_DESC_STD_VS_LEN 9
550+ #define TUD_VIDEO_DESC_CS_VS_IN_LEN 13
551+ #define TUD_VIDEO_DESC_CS_VS_OUT_LEN 9
552+ #define TUD_VIDEO_DESC_CS_VS_FMT_UNCOMPR_LEN 27
553+ #define TUD_VIDEO_DESC_CS_VS_FMT_MJPEG_LEN 11
554+ #define TUD_VIDEO_DESC_CS_VS_FMT_FRAME_BASED_LEN 28
555+ #define TUD_VIDEO_DESC_CS_VS_FRM_UNCOMPR_CONT_LEN 38
556+ #define TUD_VIDEO_DESC_CS_VS_FRM_UNCOMPR_DISC_LEN 26
557+ #define TUD_VIDEO_DESC_CS_VS_FRM_MJPEG_CONT_LEN 38
558+ #define TUD_VIDEO_DESC_CS_VS_FRM_MJPEG_DISC_LEN 26
559+ #define TUD_VIDEO_DESC_CS_VS_FRM_FRAME_BASED_CONT_LEN 38
560+ #define TUD_VIDEO_DESC_CS_VS_FRM_FRAME_BASED_DISC_LEN 26
561+ #define TUD_VIDEO_DESC_CS_VS_COLOR_MATCHING_LEN 6
559562
560563/* 2.2 compression formats */
561564#define TUD_VIDEO_GUID_YUY2 0x59,0x55,0x59,0x32,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71
562565#define TUD_VIDEO_GUID_NV12 0x4E,0x56,0x31,0x32,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71
563566#define TUD_VIDEO_GUID_M420 0x4D,0x34,0x32,0x30,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71
564567#define TUD_VIDEO_GUID_I420 0x49,0x34,0x32,0x30,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71
568+ #define TUD_VIDEO_GUID_H264 0x48,0x32,0x36,0x34,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71
565569
566570#define TUD_VIDEO_DESC_IAD (_firstitf , _nitfs , _stridx ) \
567571 TUD_VIDEO_DESC_IAD_LEN, TUSB_DESC_INTERFACE_ASSOCIATION, \
@@ -656,6 +660,25 @@ TU_VERIFY_STATIC( sizeof(video_probe_and_commit_control_t) == 48, "size is not c
656660 _frmidx, _cap, U16_TO_U8S_LE(_width), U16_TO_U8S_LE(_height), U32_TO_U8S_LE(_minbr), U32_TO_U8S_LE(_maxbr), \
657661 U32_TO_U8S_LE(_maxfrmbufsz), U32_TO_U8S_LE(_frminterval), (TU_ARGS_NUM(__VA_ARGS__)), __VA_ARGS__
658662
663+ /* Motion-Frame-Based 3.1.1 Table 3-1 */
664+ #define TUD_VIDEO_DESC_CS_VS_FMT_FRAME_BASED (_fmtidx , _numfrmdesc , _guid , _bitsperpix , _frmidx , _asrx , _asry , _interlace , _cp , _variablesize ) \
665+ TUD_VIDEO_DESC_CS_VS_FMT_FRAME_BASED_LEN, TUSB_DESC_CS_INTERFACE, VIDEO_CS_ITF_VS_FORMAT_FRAME_BASED, \
666+ _fmtidx, _numfrmdesc, TUD_VIDEO_GUID(_guid), _bitsperpix, _frmidx, _asrx, _asry, _interlace, _cp, _variablesize
667+
668+ /* Motion-Frame-Based 3.1.1 Table 3-2 and 3-3 */
669+ #define TUD_VIDEO_DESC_CS_VS_FRM_FRAME_BASED_CONT (_frmidx , _cap , _width , _height , _minbr , _maxbr , _frminterval , _bytesperline , _minfrminterval , _maxfrminterval , _frmintervalstep ) \
670+ TUD_VIDEO_DESC_CS_VS_FRM_FRAME_BASED_CONT_LEN, TUSB_DESC_CS_INTERFACE, VIDEO_CS_ITF_VS_FRAME_FRAME_BASED, \
671+ _frmidx, _cap, U16_TO_U8S_LE(_width), U16_TO_U8S_LE(_height), U32_TO_U8S_LE(_minbr), U32_TO_U8S_LE(_maxbr), \
672+ U32_TO_U8S_LE(_frminterval), 0, U32_TO_U8S_LE(_bytesperline), \
673+ U32_TO_U8S_LE(_minfrminterval), U32_TO_U8S_LE(_maxfrminterval), U32_TO_U8S_LE(_frmintervalstep)
674+
675+ /* Motion-Frame-Based 3.1.1 Table 3-2 and 3-4 */
676+ #define TUD_VIDEO_DESC_CS_VS_FRM_FRAME_BASED_DISC (_frmidx , _cap , _width , _height , _minbr , _maxbr , _frminterval , _bytesperline , ...) \
677+ TUD_VIDEO_DESC_CS_VS_FRM_FRAME_BASED_DISC_LEN + (TU_ARGS_NUM(__VA_ARGS__)) * 4, \
678+ TUSB_DESC_CS_INTERFACE, VIDEO_CS_ITF_VS_FRAME_FRAME_BASED, \
679+ _frmidx, _cap, U16_TO_U8S_LE(_width), U16_TO_U8S_LE(_height), U32_TO_U8S_LE(_minbr), U32_TO_U8S_LE(_maxbr), \
680+ U32_TO_U8S_LE(_frminterval), U32_TO_U8S_LE(_bytesperline), (TU_ARGS_NUM(__VA_ARGS__)), __VA_ARGS__
681+
659682/* 3.9.2.6 */
660683#define TUD_VIDEO_DESC_CS_VS_COLOR_MATCHING (_color , _trns , _mat ) \
661684 TUD_VIDEO_DESC_CS_VS_COLOR_MATCHING_LEN, \
0 commit comments