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:

  1. Add a bmVideoStandards field to the Processing Unit descriptor.

  2. Update the bLength field in the Processing Unit.

  3. 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.