Differences between UVC 1.0 and UVC 1.1
When you design UVC-compliant hardware to work with Windows 7 or earlier version of Windows, you must decide between supporting UVC 1.0 and 1.1.
A device that is compliant with UVC 1.1 should set the bcdUVC flag in the Class-Specific VC Interface to 0x110. In addition, if the optional Processing Unit descriptor exists, a 1.1-compliant device should do the following:
Add a bmVideoStandards field to the Processing Unit descriptor.
Update the bLength field in the Processing Unit.
Update wTotalLength to reflect the larger PU size of the Processing Unit.
The following table summarizes the differences between UVC 1.0 and 1.1.
Status | Descriptor/Request/Control | Field | Comments |
---|---|---|---|
change |
Class-Specific VC Interface |
bcdUVC |
0x110 for 1.1, 0x100 for 1.0 |
obsolete |
Class-Specific VC Interface |
dwClockFrequency |
Unused for 1.1 |
change |
Processing Unit |
bLength |
10+n for 1.1, 9+n for 1.0 |
new |
Processing Unit |
bmVideoStandards |
|
change |
Class-Specific VS Interface Input Header |
bmaControls(n) |
1.1 uses some of these bits differently in "Probe and Commit" |
change |
Class-Specific VS Interface Output Header |
bLength |
9+(p*n) for 1.1, 8 for 1.0 |
new |
Class-Specific VS Interface Output Header |
bControlSize |
|
new |
Class-Specific VS Interface Output Header |
bmaControls(n) |
|
obsolete |
Interface Control |
VC_REQUEST_INDICATE_HOST_CLOCK_CONTROL |
Mandatory for 1.0 devices supporting host to device payloads that use SCR/PTS |
new |
Interface Control |
GET_INFO |
|
new |
Processing Unit |
PU_DIGITAL_MULTIPLIER_CONTROL |
|
new |
Processing Unit |
PU_ANALOG_VIDEO_STANDARD_CONTROL |
|
new |
Processing Unit |
PU_ANALOG_LOCK_STATUS_CONTROL |
|
change |
Video Probe and Commit Control |
wLength |
34 for 1.1, 26 for 1.0 |
new |
Video Probe and Commit Control |
dwClockFrequency |
|
new |
Video Probe and Commit Control |
bmFramingInfo |
|
new |
Video Probe and Commit Control |
bPreferredVersion |
|
new |
Video Probe and Commit Control |
bMinVersion |
|
new |
Video Probe and Commit Control |
bMaxVersion |
|
new |
Video Probe and Commit Control |
GET_INFO for VS_PROBE_CONTROL |
|
new |
Video Probe and Commit Control |
GET_INFO for VS_COMMIT_CONTROL |
|
obsolete |
Class-Specific VS Interface |
VS_FORMAT_MPEG1 |
Not supported by any Windows operating system |
obsolete |
Class-Specific VS Interface |
VS_FORMAT_MPEG2PS |
Not supported by any Windows operating system |
obsolete |
Class-Specific VS Interface |
VS_FORMAT_MPEG4SL |
Not supported by any Windows operating system |
obsolete |
Class-Specific VS Interface |
VS_FORMAT_VENDOR |
Not supported by any Windows operating system |
obsolete |
Class-Specific VS Interface |
VS_FRAME_VENDOR |
|
new |
Class-Specific VS Interface |
VS_FORMAT_FRAME_BASED |
|
new |
Class-Specific VS Interface |
VS_FRAME_FRAME_BASED |
|
new |
Class-Specific VS Interface |
VS_FORMAT_STREAM_BASED |
For UVC 1.0 devices, the length of the MPEG2TS format descriptor is 7. Because UVC 1.1 includes a new 16 byte GUID field, the length of the MPEG2TS format descriptor is 23.
Accordingly, if you update the MPEG2TS descriptor to 23 bytes, you must also set the bcdUVC flag in the Class-Specific VC Interface to 0x110.