Различия между UVC 1.0 и UVC 1.1
При проектировании оборудования, совместимого с UVC, для работы с Windows 7 или более ранней версией Windows необходимо выбрать между поддержкой UVC 1.0 и 1.1.
Устройство, соответствующее UVC 1.1, должно задать для флага bcdUVC в интерфейсе Class-Specific VC значение 0x110. Кроме того, если существует необязательный дескриптор единицы обработки, устройство, совместимое с 1.1, должно выполнять следующие действия:
Добавьте поле bmVideoStandards в дескриптор единицы обработки.
Обновите поле bLength в единице обработки.
Обновите wTotalLength , чтобы отразить больший размер единицы обработки.
В следующей таблице перечислены различия между UVC 1.0 и 1.1.
Состояние | Дескриптор, запрос или элемент управления | Поле | Комментарии |
---|---|---|---|
Изменить |
интерфейс Class-Specific VC |
bcdUVC |
0x110 для версии 1.1, 0x100 для 1.0 |
устарело |
интерфейс Class-Specific VC |
dwClockFrequency |
Неиспользуется для версии 1.1 |
Изменить |
Единица обработки |
bLength |
10+n для 1.1, 9+n для 1.0 |
new |
Единица обработки |
bmVideoStandards |
|
Изменить |
Class-Specific входной заголовок интерфейса VS |
bmaControls(n) |
1.1 использует некоторые из этих битов по-разному в разделе "Проба и фиксация" |
Изменить |
Class-Specific выходной заголовок интерфейса VS |
bLength |
9+(p*n) для версии 1.1, 8 для 1.0 |
new |
Class-Specific выходной заголовок интерфейса VS |
bControlSize |
|
new |
Class-Specific выходной заголовок интерфейса VS |
bmaControls(n) |
|
устарело |
Элемент управления интерфейсом |
VC_REQUEST_INDICATE_HOST_CLOCK_CONTROL |
Обязательно для устройств версии 1.0, поддерживающих полезные данные узла на устройство, которые используют SCR/PTS |
new |
Элемент управления интерфейсом |
GET_INFO |
|
new |
Единица обработки |
PU_DIGITAL_MULTIPLIER_CONTROL |
|
new |
Единица обработки |
PU_ANALOG_VIDEO_STANDARD_CONTROL |
|
new |
Единица обработки |
PU_ANALOG_LOCK_STATUS_CONTROL |
|
Изменить |
Управление видео пробой и фиксацией |
wLength |
34 для 1.1, 26 для 1.0 |
new |
Управление видео пробой и фиксацией |
dwClockFrequency |
|
new |
Управление видео пробой и фиксацией |
bmFramingInfo |
|
new |
Управление видео пробой и фиксацией |
bPreferredVersion |
|
new |
Управление видео пробой и фиксацией |
bMinVersion |
|
new |
Управление видео пробой и фиксацией |
bMaxVersion |
|
new |
Управление видео пробой и фиксацией |
GET_INFO для VS_PROBE_CONTROL |
|
new |
Управление видео пробой и фиксацией |
GET_INFO для VS_COMMIT_CONTROL |
|
устарело |
интерфейс VS Class-Specific |
VS_FORMAT_MPEG1 |
Не поддерживается операционной системой Windows |
устарело |
интерфейс VS Class-Specific |
VS_FORMAT_MPEG2PS |
Не поддерживается операционной системой Windows |
устарело |
интерфейс VS Class-Specific |
VS_FORMAT_MPEG4SL |
Не поддерживается операционной системой Windows |
устарело |
интерфейс VS Class-Specific |
VS_FORMAT_VENDOR |
Не поддерживается операционной системой Windows |
устарело |
интерфейс VS Class-Specific |
VS_FRAME_VENDOR |
|
new |
интерфейс VS Class-Specific |
VS_FORMAT_FRAME_BASED |
|
new |
интерфейс VS Class-Specific |
VS_FRAME_FRAME_BASED |
|
new |
интерфейс VS Class-Specific |
VS_FORMAT_STREAM_BASED |
Для устройств UVC 1.0 длина дескриптора формата MPEG2TS равна 7. Так как UVC 1.1 содержит новое поле GUID длиной 16 байт, длина дескриптора формата MPEG2TS составляет 23.
Соответственно, при обновлении дескриптора MPEG2TS до 23 байт необходимо также задать для флага bcdUVC в интерфейсе Class-Specific VC значение 0x110.