00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _USBVID_H_
00033 #define _USBVID_H_
00034
00035
00036
00037
00038
00039
00040
00041
00042 #include <stdint.h>
00043 #include <USBRequests.h>
00044
00045
00046
00047
00048
00049 #define CC_VIDEO 0x0E
00050
00051 #define SC_UNDEFINED 0x00
00052 #define SC_VIDEOCONTROL 0x01
00053 #define SC_VIDEOSTREAMING 0x02
00054 #define SC_VIDEO_INTERFACE_COLLECTION 0x03
00055
00056 #define PC_PROTOCOL_UNDEFINED 0x00
00057
00058 #define CS_UNDEFINED 0x20
00059 #define CS_DEVICE 0x21
00060 #define CS_CONFIGURATION 0x22
00061 #define CS_STRING 0x23
00062 #define CS_INTERFACE 0x24
00063 #define CS_ENDPOINT 0x25
00064
00065 #define VC_DESCRIPTOR_UNDEFINED 0x00
00066 #define VC_HEADER 0x01
00067 #define VC_INPUT_TERMINAL 0x02
00068 #define VC_OUTPUT_TERMINAL 0x03
00069 #define VC_SELECTOR_UNIT 0x04
00070 #define VC_PROCESSING_UNIT 0x05
00071 #define VC_EXTENSION_UNIT 0x06
00072
00073 #define VS_UNDEFINED 0x00
00074 #define VS_INPUT_HEADER 0x01
00075 #define VS_OUTPUT_HEADER 0x02
00076 #define VS_STILL_IMAGE_FRAME 0x03
00077 #define VS_FORMAT_UNCOMPRESSED 0x04
00078 #define VS_FRAME_UNCOMPRESSED 0x05
00079 #define VS_FORMAT_MJPEG 0x06
00080 #define VS_FRAME_MJPEG 0x07
00081 #define VS_FORMAT_MPEG1 0x08
00082 #define VS_FORMAT_MPEG2PS 0x09
00083 #define VS_FORMAT_MPEG2TS 0x0A
00084 #define VS_FORMAT_MPEG4SL
00085 #define VS_FORMAT_DV 0x0C
00086 #define VS_COLORFORMAT 0x0D
00087 #define VS_FORMAT_VENDOR 0x0E
00088 #define VS_FRAME_VENDOR 0x0F
00089
00090 #define EP_UNDEFINED 0x00
00091 #define EP_GENERAL 0x01
00092 #define EP_ENDPOINT 0x02
00093 #define EP_INTERRUPT 0x03
00094
00095 #define TT_VENDOR_SPECIFIC 0x0100
00096 #define TT_STREAMING 0x0101
00097
00098 #define ITT_VENDOR_SPECIFIC 0x0200
00099 #define ITT_CAMERA 0x0201
00100 #define ITT_MEDIA_TRANSPORT_INPUT 0x0202
00101
00102 #define OTT_VENDOR_SPECIFIC 0x0300
00103 #define OTT_DISPLAY 0x0301
00104 #define OTT_MEDIA_TRANSPORT_OUTPUT 0x0302
00105
00106 #define EXTERNAL_VENDOR_SPECIFIC 0x0400
00107 #define COMPOSITE_CONNECTOR 0x0401
00108 #define SVIDEO_CONNECTOR 0x0402
00109 #define COMPONENT_CONNECTOR 0x0403
00110
00111 #define guidYUY2 {0x32595559, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}}
00112 #define guidNV12 {0x3231564E, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}}
00113
00114
00115 #define RC_UNDEFINED 0x00
00116 #define SET_CUR 0x01
00117 #define GET_CUR 0x81
00118 #define GET_MIN 0x82
00119 #define GET_MAX 0x83
00120 #define GET_RES 0x84
00121 #define GET_LEN 0x85
00122 #define GET_INFO 0x86
00123 #define GET_DEF 0x87
00124
00125 #define VC_CONTROL_UNDEFINED 0x00
00126 #define VC_VIDEO_POWER_MODE_CONTROL 0x01
00127 #define VC_REQUEST_ERROR_CODE_CONTROL 0x02
00128 #define VC_REQUEST_INDICATE_HOST_CLOCK_CONTROL 0x03
00129
00130 #define TE_CONTROL_UNDEFINED 0x00
00131
00132 #define SU_CONTROL_UNDEFINED 0x00
00133 #define SU_INPUT_SELECT_CONTROL 0x01
00134
00135 #define CT_CONTROL_UNDEFINED 0x00
00136 #define CT_SCANNING_MODE_CONTROL 0x01
00137 #define CT_AE_MODE_CONTROL 0x02
00138 #define CT_AE_PRIORITY_CONTROL 0x03
00139 #define CT_EXPOSURE_TIME_ABSOLUTE_CONTROL 0x04
00140 #define CT_EXPOSURE_TIME_RELATIVE_CONTROL 0x05
00141 #define CT_FOCUS_ABSOLUTE_CONTROL 0x06
00142 #define CT_FOCUS_RELATIVE_CONTROL 0x07
00143 #define CT_FOCUS_AUTO_CONTROL 0x08
00144 #define CT_IRIS_ABSOLUTE_CONTROL 0x09
00145 #define CT_IRIS_RELATIVE_CONTROL 0x0A
00146 #define CT_ZOOM_ABSOLUTE_CONTROL 0x0B
00147 #define CT_ZOOM_RELATIVE_CONTROL 0x0C
00148 #define CT_PANTILT_ABSOLUTE_CONTROL 0x0D
00149 #define CT_PANTILT_RELATIVE_CONTROL 0x0E
00150 #define CT_ROLL_ABSOLUTE_CONTROL 0x0F
00151 #define CT_ROLL_RELATIVE_CONTROL 0x10
00152 #define CT_PRIVACY_CONTROL 0x11
00153
00154 #define PU_CONTROL_UNDEFINED 0x00
00155 #define PU_BACKLIGHT_COMPENSATION_CONTROL 0x01
00156 #define PU_BRIGHTNESS_CONTROL 0x02
00157 #define PU_CONTRAST_CONTROL 0x03
00158 #define PU_GAIN_CONTROL 0x04
00159 #define PU_POWER_LINE_FREQUENCY_CONTROL 0x05
00160 #define PU_HUE_CONTROL 0x06
00161 #define PU_STATURATION_CONTROL 0x07
00162 #define PU_SHARPNESS_CONTROL 0x08
00163 #define PU_GAMMA_CONTROL 0x09
00164 #define PU_WHITE_BALANCE_TEMPERATURE_CONTROL 0x0A
00165 #define PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL 0x0B
00166 #define PU_WHITE_BALANCE_COMPONENT_CONTROL 0x0C
00167 #define PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL 0x0D
00168 #define PU_DIGITAL_MULTIPLIER_CONTROL 0x0E
00169 #define PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL 0x0F
00170 #define PU_HUE_AUTO_CONTROL 0x10
00171
00172 #define XU_CONTROL_UNDEFINED 0x00
00173
00174 #define VS_CONTROL_UNDEFINED 0x00
00175 #define VS_PROBE_CONTROL 0x01
00176 #define VS_COMMIT_CONTROL 0x02
00177 #define VS_STILL_PROBE_CONTROL 0x03
00178 #define VS_STILL_COMMIT_CONTROL 0x04
00179 #define VS_STILL_IMAGE_TRIGGER_CONTROL 0x05
00180 #define VS_STREAM_ERROR_CODE_CONTROL 0x06
00181 #define VS_GENERATE_KEY_FRAME_CONTROL 0x07
00182 #define VS_UPDATE_FRAME_SEGMENT_CONTROL 0x08
00183 #define VS_SYNCH_DELAY_CONTROL 0x09
00184
00185
00186
00187
00188
00189
00190
00191 #define VIDGenericDescriptor_DEVICE 0x21
00192
00193 #define VIDGenericDescriptor_CONFIGURATION 0x22
00194
00195 #define VIDGenericDescriptor_STRING 0x23
00196
00197 #define VIDGenericDescriptor_INTERFACE 0x24
00198
00199 #define VIDGenericDescriptor_ENDPOINT 0x25
00200
00201
00202
00203
00204
00205
00206
00207 #define VIDGenericDescriptor_HEADER 0x01
00208
00209 #define VIDGenericDescriptor_INPUTTERMINAL 0x02
00210
00211 #define VIDGenericDescriptor_OUTPUTTERMINAL 0x03
00212
00213 #define VIDGenericDescriptor_SELECTORUNIT 0x04
00214
00215 #define VIDGenericDescriptor_PROCESSINGUNIT 0x05
00216
00217 #define VIDGenericDescriptor_EXTENSIONUNIT 0x06
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229 #define VIDDeviceDescriptor_CLASS 0xEF
00230
00231 #define VIDDeviceDescriptor_SUBCLASS 0x02
00232
00233 #define VIDDeviceDescriptor_PROTOCOL 0x01
00234
00235
00236
00237
00238
00239
00240 #define VIDIADDescriptor_CLASS 0x0E
00241
00242 #define VIDIADDescriptor_SUBCLASS 0x03
00243
00244 #define VIDIADDescriptor_PROTOCOL 0x00
00245
00246
00247
00248
00249
00250
00251
00252
00253 #define VIDControlInterfaceDescriptor_CLASS 0x0E
00254
00255 #define VIDControlInterfaceDescriptor_SUBCLASS 0x01
00256
00257 #define VIDControlInterfaceDescriptor_PROTOCOL 0x00
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267 #define VIDStreamingInterfaceDescriptor_CLASS 0x0E
00268
00269 #define VIDStreamingInterfaceDescriptor_SUBCLASS 0x02
00270
00271 #define VIDStreamingInterfaceDescriptor_PROTOCOL 0x00
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281 #define VIDStreamingInterfaceDescriptor_UNDEFINED 0x00
00282
00283 #define VIDStreamingInterfaceDescriptor_INPUTHEADER 0x01
00284
00285 #define VIDStreamingInterfaceDescriptor_OUTPUTHEADER 0x02
00286
00287 #define VIDStreamingInterfaceDescriptor_STI_FRAME 0x03
00288 #define VIDStreamingInterfaceDescriptor_FMT_UNCOMPRESSED 0x04
00289 #define VIDStreamingInterfaceDescriptor_FRM_UNCOMPRESSED 0x05
00290 #define VIDStreamingInterfaceDescriptor_FMT_MJPEG 0x06
00291 #define VIDStreamingInterfaceDescriptor_FRM_MJPEG 0x07
00292 #define VIDStreamingInterfaceDescriptor_FMT_MPEG1 0x08
00293 #define VIDStreamingInterfaceDescriptor_FMT_MPEG2PS 0x09
00294 #define VIDStreamingInterfaceDescriptor_FMT_MPEG2TS 0x0A
00295 #define VIDStreamingInterfaceDescriptor_FMT_DV 0x0C
00296 #define VIDStreamingInterfaceDescriptor_COLORFORMAT 0x0D
00297 #define VIDStreamingInterfaceDescriptor_FMT_VENDOR 0x0E
00298 #define VIDStreamingInterfaceDescriptor_FRM_VENDOR 0x0F
00299
00300
00301
00302
00303
00304
00305 #define VIDEndpointDescriptor_UNDEFINED 0x00
00306
00307 #define VIDEndpointDescriptor_GENERAL 0x01
00308
00309 #define VIDEndpointDescriptor_ENDPOINT 0x02
00310
00311 #define VIDEndpointDescriptor_INTERRUPT 0x03
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321 #define VIDHeaderDescriptor_VID1_00 0x0110
00322
00323
00324
00325 #define VIDTerminalDescriptor_STREAMING 0x0101
00326
00327
00328
00329
00330
00331
00332 #define VIDInputTerminalDescriptor_VENDOR 0x0200
00333
00334 #define VIDInputTerminalDescriptor_CAMERA 0x0201
00335
00336 #define VIDInputTerminalDescriptor_MED_TRAN_INPUT 0x0202
00337
00338
00339
00340
00341
00342
00343
00344 #define VIDOutputTerminalDescriptor_VENDOR 0x0300
00345
00346 #define VIDOutputTerminalDescriptor_DISPLAY 0x0301
00347
00348 #define VIDOutputTerminalDescriptor_MED_TRAN_OUTPUT 0x0302
00349
00350
00351
00352
00353
00354
00355
00356 #define VIDExtTerminalDescriptor_VENDOR 0x0400
00357
00358 #define VIDExtTerminalDescriptor_COMPOSITE_CONN 0x0401
00359
00360 #define VIDExtTerminalDescriptor_SVID_CONN 0x0402
00361
00362 #define VIDExtTerminalDescriptor_COMPONENT_CONN 0x0403
00363
00364
00365
00366
00367
00368
00369
00370 #define VIDGenericRequest_SETCUR 0x01
00371
00372 #define VIDGenericRequest_GETCUR 0x81
00373
00374 #define VIDGenericRequest_GETMIN 0x82
00375
00376 #define VIDGenericRequest_GETMAX 0x83
00377
00378 #define VIDGenericRequest_GETRES 0x84
00379 #define VIDGenericRequest_GETLEN 0x85
00380 #define VIDGenericRequest_GETINFO 0x86
00381 #define VIDGenericRequest_GETDEF 0x87
00382
00383
00384
00385
00386
00387
00388
00389
00390 COMPILER_PACK_SET(1)
00391
00392
00393 typedef struct _sGDID {
00394 uint32_t data1;
00395 uint16_t data2;
00396 uint16_t data3;
00397 uint8_t data4[8];
00398 } sGUID;
00399
00400
00401
00402
00403
00404 typedef struct _USBVideoStatusHdr {
00405 uint8_t bStatusType;
00406 uint8_t bOriginator;
00407 } USBVideoStatusHdr;
00408
00409
00410
00411 typedef struct _USBVideoStatusVC {
00412 uint8_t bStatusType;
00413 uint8_t bOriginator;
00414 uint8_t bEvent;
00415 uint8_t bSelector;
00416 uint8_t bAttribute;
00417 uint8_t bValue;
00418 } USBVideoStatusVC;
00419
00420
00421
00422 typedef struct _USBVideoStatusVS {
00423 uint8_t bStatusType;
00424 uint8_t bOriginator;
00425 uint8_t bEvent;
00426 uint8_t bValue;
00427 } USBVideoStatusVS;
00428
00429
00430
00431
00432
00433 typedef struct _USBVideoPayloadHeader {
00434 uint8_t bHeaderLength;
00435 union _USBVideoHeaderInfo {
00436 uint8_t B;
00437 struct _USBVideoHeaderInfoBits {
00438 uint8_t FID:1,
00439 EoF:1,
00440 PTS:1,
00441 SCR:1,
00442 reserved:1,
00443 STI:1,
00444 ERR:1,
00445 EOH:1;
00446 } bm;
00447 } bmHeaderInfo;
00448 } USBVideoPayloadHeader;
00449
00450
00451
00452 typedef struct _USBVideoPayloadHdrExt {
00453 uint8_t bHeaderLength;
00454 uint8_t bmHeaderInfo;
00455 uint32_t dwPresentationTime;
00456 struct _SourceClockReference {
00457 uint32_t dwSrcTimeClk;
00458 uint16_t sofCounter:11,
00459 reserved;
00460 } scrSourceClock;
00461 } USBVideoPayloadHdrExt;
00462
00463
00464
00465
00466
00467
00468 typedef struct _USBVideoControlInterfaceDescriptor {
00469 uint8_t bLength;
00470 uint8_t bDescriptorType;
00471 uint8_t bDescriptorSubType;
00472 uint16_t bcdVDC;
00473 uint16_t wTotalLength;
00474 uint32_t dwClockFrequency;
00475 uint8_t bInCollection;
00476 uint8_t baInterfaceNr[1];
00477 }USBVideoControlInterfaceDescriptor;
00478
00479
00480
00481
00482 typedef struct _USBVideoInputTerminalDescriptor {
00483 uint8_t bLength;
00484 uint8_t bDescriptorType;
00485 uint8_t bDescriptorSubType;
00486 uint8_t bTerminalID;
00487 uint16_t wTerminalType;
00488 uint8_t bAssocTerminal;
00489 uint8_t iTerminal;
00490 } USBVideoInputTerminalDescriptor;
00491
00492
00493
00494
00495 typedef struct _USBVideoOutputTerminalDescriptor {
00496 uint8_t bLength;
00497 uint8_t bDescriptorType;
00498 uint8_t bDescriptorSubType;
00499 uint8_t bTerminalID;
00500 uint16_t wTerminalType;
00501 uint8_t bAssocTerminal;
00502 uint8_t bSourceID;
00503 uint8_t iTerminal;
00504 } USBVideoOutputTerminalDescriptor;
00505
00506
00507
00508 typedef struct _USBVideoCameraTerminalDescriptor {
00509 uint8_t bLength;
00510 uint8_t bDescriptorType;
00511 uint8_t bDescriptorSubType;
00512 uint8_t bTerminalID;
00513 uint16_t wTerminalType;
00514 uint8_t bAssocTerminal;
00515 uint8_t iTerminal;
00516 uint16_t wObjectiveFocalLengthMin;
00517 uint16_t wObjectiveFocalLengthMax;
00518 uint16_t wOcularFocalLength;
00519 uint8_t bControlSize;
00520 uint8_t bmControls[3];
00521 } USBVideoCameraTerminalDescriptor;
00522
00523
00524
00525
00526 typedef struct _USBVideoSelectorUnitDescriptor {
00527 uint8_t bLength;
00528 uint8_t bDescriptorType;
00529 uint8_t bDescriptorSubType;
00530 uint8_t bUnitID;
00531 uint8_t bNrInPins;
00532 uint8_t baSourceID[1];
00533 uint8_t iSelector;
00534 } USBVideoSelectorUnitDescriptor;
00535
00536
00537
00538 typedef struct _USBVideoProcessingUnitDescriptor {
00539 uint8_t bLength;
00540 uint8_t bDescriptorType;
00541 uint8_t bDescriptorSubType;
00542 uint8_t bUnitID;
00543 uint8_t bSourceID;
00544 uint16_t wMaxMultiplier;
00545 uint8_t bControlSize;
00546 uint8_t bmControls[2];
00547 uint8_t iProcessing;
00548 } USBVideoProcessingUnitDescriptor;
00549
00550
00551
00552
00553 typedef struct _USBVideoExtensionUnitDescriptor {
00554 uint8_t bLength;
00555 uint8_t bDescriptorType;
00556 uint8_t bDescriptorSubType;
00557 uint8_t bUnitID;
00558 sGUID guidExtensionCode;
00559 uint8_t bNumControls;
00560 uint8_t bNrInPins;
00561 uint8_t baSourceID[1];
00562 uint8_t bControlSize;
00563 uint8_t bmControls[1];
00564 uint8_t iExtension;
00565 } USBVideoExtensionUnitDescriptor;
00566
00567
00568
00569
00570
00571 typedef struct _USBVideoControlInterruptEndpointDescriptor {
00572 uint8_t bLength;
00573 uint8_t bDescriptorType;
00574 uint8_t bDescriptorSubType;
00575 uint16_t wMaxTransferSize;
00576 } USBVideoControlInterruptEndpointDescriptor;
00577
00578
00579
00580
00581
00582
00583 typedef struct _USBVideoStreamingInputHeaderDescriptor {
00584 uint8_t bLength;
00585 uint8_t bDescriptorType;
00586 uint8_t bDescriptorSubType;
00587 uint8_t bNumFormats;
00588 uint16_t wTotalLength;
00589 uint8_t bEndpointAddress;
00590 uint8_t bmInfo;
00591 uint8_t bTerminalLink;
00592 uint8_t bStillCaptureMethod;
00593 uint8_t bTriggerSupport;
00594 uint8_t bTriggerUsage;
00595 uint8_t bControlSize;
00596 uint8_t bmaControls[1][1];
00597 } USBVideoStreamingInputHeaderDescriptor;
00598
00599
00600
00601 typedef struct _USBVideoStreamingOutputHeaderDescriptor {
00602 uint8_t bLength;
00603 uint8_t bDescriptorType;
00604 uint8_t bDescriptorSubType;
00605 uint8_t bNumFormats;
00606 uint16_t wTotalLength;
00607 uint8_t bEndpointAddress;
00608 uint8_t bTerminalLink;
00609 } USBVideoStreamingOutputHeaderDescriptor;
00610
00611
00612
00613
00614
00615 typedef USBVideoPayloadHeader USBVideoUncompressedStreamHeader;
00616
00617
00618
00619 typedef USBVideoPayloadHdrExt USBVideoUncompressedStreamHeaderExt;
00620
00621
00622
00623
00624
00625 typedef struct _USBVideoUncompressedFormatDescriptor {
00626 uint8_t bLength;
00627 uint8_t bDescriptorType;
00628 uint8_t bDescriptorSubType;
00629 uint8_t bFormatIndex;
00630 uint8_t bNumFrameDescriptors;
00631 sGUID guidFormat;
00632 uint8_t bBitsPerPixel;
00633 uint8_t bDefaultFrameIndex;
00634 uint8_t bAspectRatioX;
00635 uint8_t bAspectRatioY;
00636 uint8_t bmInterlaceFlags;
00637 uint8_t bCopyProtect;
00638 } USBVideoUncompressedFormatDescriptor;
00639
00640
00641
00642
00643 typedef struct _USBVideoUncompressedFrameDescriptor {
00644 uint8_t bLength;
00645 uint8_t bDescriptorType;
00646 uint8_t bDescriptorSubType;
00647 uint8_t bFrameIndex;
00648 uint8_t bmCapabilities;
00649 uint16_t wWidth;
00650 uint16_t wHeight;
00651 uint32_t dwMinBitRate;
00652 uint32_t dwMaxBitRate;
00653 uint32_t dwMaxVideoFrameBufferSize;
00654 uint32_t dwDefaultFrameInterval;
00655 uint8_t bFrameIntervalType;
00656
00657 uint32_t dwMinFrameInterval;
00658 uint32_t dwMaxFrameInterval;
00659 uint32_t dwFrameIntervalStep;
00660 }USBVideoUncompressedFrameDescriptor;
00661
00662
00663
00664
00665 typedef struct _USBVideoUncompressedFrameDescriptor1 {
00666 uint8_t bLength;
00667 uint8_t bDescriptorType;
00668 uint8_t bDescriptorSubType;
00669 uint8_t bFrameIndex;
00670 uint8_t bmCapabilities;
00671 uint16_t wWidth;
00672 uint16_t wHeight;
00673 uint32_t dwMinBitRate;
00674 uint32_t dwMaxBitRate;
00675 uint32_t dwMaxVideoFrameBufferSize;
00676 uint32_t dwDefaultFrameInterval;
00677 uint8_t bFrameIntervalType;
00678
00679 uint32_t dwFrameInterva[1];
00680 } USBVideoUncompressedFrameDescriptor1;
00681
00682
00683
00684
00685
00686
00687 typedef struct _USBVideoStillImageFrameDescriptor {
00688 uint8_t bLength;
00689 uint8_t bDescriptorType;
00690 uint8_t bDescriptorSubType;
00691 uint8_t bEndpointAddress;
00692 uint8_t bNumImageSizePatterns;
00693 uint16_t wWidth;
00694 uint16_t wHeight;
00695 uint8_t bNumCompressionPattern;
00696 uint8_t bCompression[1];
00697 } USBVideoStillImageFrameDescriptor;
00698
00699
00700
00701
00702
00703 typedef struct _USBVideoColorMatchingDescriptor {
00704 uint8_t bLength;
00705 uint8_t bDescriptorType;
00706 uint8_t bDescriptorSubType;
00707 uint8_t bColorPrimaries;
00708 uint8_t bTransferCharacteristics;
00709 uint8_t bMarixCoefficients;
00710 } USBVideoColorMatchingDescriptor;
00711
00712
00713
00714
00715
00716 typedef struct _USBVideoProbeCommitData {
00717 uint16_t bmHint;
00718 uint8_t bFormatIndex;
00719 uint8_t bFrameIndex;
00720 uint32_t dwFrameInterval;
00721 uint16_t wKeyFrameRate;
00722 uint16_t wPFrameRate;
00723 uint16_t wCompQuality;
00724 uint16_t wCompWindowSize;
00725 uint16_t wDelay;
00726 uint32_t dwMaxVideoFrameSize;
00727 uint32_t dwMaxPayloadTransferSize;
00728 } USBVideoProbeData, USBVideoCommitData;
00729
00730 COMPILER_PACK_RESET()
00731
00732
00733
00734
00735
00736
00737
00738
00739 static inline uint8_t USBVideoRequest_GetControlSelector(const USBGenericRequest *req)
00740 {
00741 return ((req->wValue >> 8) & 0xFF);
00742 }
00743
00744
00745
00746 #endif
00747