Universal Serial Bus
Device Class Definition
for
Video Devices
Revision 1.5
August 9, 2012
USB Device Class Definition for Video Devices
Contributors
Hans van Antwerpen
Eric Luttmann
David Roh
Choon Chng
Pawel Osciak
Ville-Mikko Rautio
Cypress Semiconductor
Cypress Semiconductor
Dolby Labs
Google Inc.
Google Inc.
Google Inc.
Van Duros
Immedia Semiconductor Inc.
Abdul R. Ismail
Bradley Saunders
Ygal Blum
Yoav Nissim
Intel Corp.
Intel Corp.
Jungo
Jungo
Jean-Michel Chardon
Logitech Inc.
Olivier Lechenne
Geraud Mudry
Logitech Inc.
Logitech Inc.
Chandrashekhar Rao
Logitech Inc.
Remy Zimmermann
Logitech Inc.
Chris Yokum
MCCI Corporation
Stephen Cooper
Microsoft Corp.
Maribel Figuera
Microsoft Corp.
Richard Webb
Anand Ganesh
David Goll
Hiro Kobayashi
Bertrand Lee
Jeff Zhu
Andrei Jefremov
Tim Vlaar
Mark Bohm
John Sisto
Will Harris
Grant Ley
Microsoft Corp.
Microsoft Corp.
Microsoft Corp.
Microsoft Corp.
Microsoft Corp.
Microsoft Corp.
Microsoft Corp.
Point Grey Research
SMSC
SMSC
Texas Instruments
Texas Instruments
Anshuman Saxena
Texas Instruments
Paul E. Berg
USB-IF
Revision 1.5
August 9, 2012
ii
USB Device Class Definition for Video Devices
Revision 1.5
August 9, 2012
iii
USB Device Class Definition for Video Devices
Copyright © 2012, USB Implementers Forum, Inc.
All rights reserved.
A LICENSE IS HEREBY GRANTED TO REPRODUCE THIS SPECIFICATION FOR
INTERNAL USE ONLY. NO OTHER LICENSE, EXPRESS OR IMPLIED, BY
ESTOPPEL OR OTHERWISE, IS GRANTED OR INTENDED HEREBY.
USB-IF AND THE AUTHORS OF THIS SPECIFICATION EXPRESSLY DISCLAIM
ALL LIABILITY FOR INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS,
RELATING TO IMPLEMENTATION OF INFORMATION IN THIS
SPECIFICATION. USB-IF AND THE AUTHORS OF THIS SPECIFICATION ALSO
DO NOT WARRANT OR REPRESENT THAT SUCH IMPLEMENTATION(S) WILL
NOT INFRINGE THE INTELLECTUAL PROPERTY RIGHTS OF OTHERS .
THIS SPECIFICATION IS PROVIDED "AS IS” AND WITH NO WARRANTIES,
EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE. ALL WARRANTIES ARE
EXPRESSLY DISCLAIMED. NO WARRANTY OF MERCHANTABILITY, NO
WARRANTY OF NON-INFRINGEMENT, NO WARRANTY OF FITNESS FOR ANY
PARTICULAR PURPOSE, AND NO WARRANTY ARISING OUT OF ANY
PROPOSAL, SPECIFICATION, OR SAMPLE.
IN NO EVENT WILL USB-IF OR USB-IF MEMBERS BE LIABLE TO ANOTHER FOR
THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS,
LOSS OF USE, LOSS OF DATA OR ANY INCIDENTAL, CONSEQUENTIAL,
INDIRECT, OR SPECIAL DAMAGES, WHETHER UNDER CONTRACT, TORT,
WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF THE USE OF THIS
SPECIFICATION, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF
THE POSSIBILITY OF SUCH DAMAGES.
All product names are trademarks, registered trademarks, or service marks of their respective owners.
Please send comments via electronic mail to @usb.org
Revision 1.5
August 9, 2012
iv
USB Device Class Definition for Video Devices
Version
1.0
1.0a
Date
September 4,
2003
December 4,
2003
1.1
June 1st, 2005
Revision History
Initial release
Description
Table A.5: Added extension reference row
Table A.6: Added USB extension row
Table A.6: Defined VS_FORMAT_MPEG4SL as 0x0B
Added section A,9.8 for selectors extensibility
Table B.1, B.2, B3 & B4: Added extension row
Added Appendix D. Revision history
Added GET_INFO request for VideoStreaming interface
Updated Table 4-56 Stream Error Code Control
Updated Table 3-8 to correct the wMaxMultiplier description
Add support for multiple clock frequencies (RR0033)
Latency optimizations for Stream-based formats (RR0041)
Define Probe/Commit controls for Render (RR0042)
Add Analog Video Standard and Status Control (RR0044)
Define constraints on RES value (RR0047)
Detail behavior of Multiplier and Limit Multiplier (RR0048)
Cosmetic changes to Terminal and Unit Descriptors (RR0049)
Cosmetic and Functional changes(RR0050)
Clarify usage of bits in GET_INFO (RR0051)
Specify the meanings of Request Error Codes (RR0053)
Allows support for a revision of a Payload specification to be made
independently of the Core Specification.
Added three fields to the Video Probe And Commit Control
(RR0054).
Specification of Absolute and Relative Control relationship.
(RR057).
Specification of Asynchronous Controls’ behavior (RR0059).
Allow 0 for Payload Version in Probe and Commit Control
(RR0060).
Modified Table 2-6 Extended Field of the Payload Header, Table 3-
15 Payload Format Descriptor and Section 2.4.2.4 Still Image
Capture. (RR0066)
Remove “Driver” from Terms and abbreviation and added UVC.
Updated section 2.4.3.7, change VDC to UVC. Update section 3.7.2
and Table 3-3: Change bcdVDC with bcdUVC. (RR0064)
Corrected Statement regarding multiple clock support (RR0069).
Removed auto-update side-effect from Probe/Commit Frame
Interval field (RR0070).
Updated Descriptor Size inTable 3-8 Processing Unit Descriptor
(RR0072).
Updated range of reserved values in Table 4-43 Analog Video
Revision 1.5
August 9, 2012
v
USB Device Class Definition for Video Devices
Standard Control (RR0072).
Remove reference to “Vendor Unique Payload Format” in Table 4-
47 Video Probe and Commit Controls (RR0072).
Marked obsolete format and Frame descriptor type values as
reserved (VS_FORMAT_MPEG1, VS_FORMAT_MPEG2PS,
VS_FORMAT_MPEG4, VS_FORMAT_VENDOR,
VS_FRAME_VENDOR) in Table A- 6 Video Class-Specific VS
Interface Descriptor Subtypes (RR0072).
Added new format and Frame descriptor types
(VS_FORMAT_FRAME_BASED,VS_FRAME_FRAME_BASED,
VS_FORMAT_STREAM_BASED) in Table A- 6 Video Class-
Specific VS Interface Descriptor Subtypes (RR0072).
Added new Processing Unit Controls
(PU_ANALOG_VIDEO_STANDARD_CONTROL,
PU_ANALOG_LOCK_STATUS_CONTROL) in Table A- 13
Processing Unit Control Selectors (RR0072).
Updated bcdUVC to 1.5.
Updated Probe and Commit to include features of temporally
encoded video that impact bandwidth negotiation, increasing the
size of the VS_PROBE_CONTROL and
VS_COMMIT_CONTROL.
Added twenty Encoding Unit controls to facilitate control of device
based video encoders.
Added three new controls to the Camera Terminal:
CT_FOCUS_SIMPLE_CONTROL, CT _WINDOW_CONTROL,
and CT_REGION_OF_INTEREST_CONTROL.
Added one new control to the Processing Unit:
PU_CONTRAST_AUTO_CONTROL.
Added solution for backward compatibility of UVC 1.5 devices.
Added bit to GET_INFO to declare control as “Disabled for current
Commit state”
Removed reference section Device_Qualifier Descriptor and
Other_Speed_Configuration Descriptor.
Updated Data Format Classes (section 2.4.3.7) with temporally
encoded video formats.
Added Notations section.
Added references to USB Specification 3.0.
Moved discussion on Optical Zoom to appendix.
1.5
June 6, 2012
Revision 1.5
August 9, 2012
vi
USB Device Class Definition for Video Devices
Table of Contents
1
1.4.1
1.5
2
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
Introduction ............................................................................................................................. 1
Purpose ............................................................................................................................. 1
1.1
Scope ................................................................................................................................ 1
1.2
1.3 Related Documents .......................................................................................................... 1
1.4 Document Conventions .................................................................................................... 1
Notations .................................................................................................................. 2
Terms and Abbreviations ................................................................................................. 2
Functional Characteristics ....................................................................................................... 5
2.1 Video Interface Class ....................................................................................................... 5
2.2 Video Interface Subclass and Protocol ............................................................................. 5
2.3 Video Function Topology ................................................................................................ 6
Input Terminal .......................................................................................................... 8
Output Terminal ....................................................................................................... 9
Camera Terminal ...................................................................................................... 9
Selector Unit ........................................................................................................... 10
Processing Unit ....................................................................................................... 10
Encoding Unit ......................................................................................................... 11
Extension Unit ........................................................................................................ 12
2.4 Operational Model .......................................................................................................... 12
Video Interface Collection ..................................................................................... 13
VideoControl Interface ........................................................................................... 13
Control Endpoint ............................................................................................. 14
Status Interrupt Endpoint ................................................................................. 14
Hardware Trigger Interrupts ............................................................................ 17
Still Image Capture .......................................................................................... 17
Optical Zoom vs Digital Zoom ........................................................................ 18
VideoStreaming Interface ....................................................................................... 18
Stream Bandwidth Selection ........................................................................... 19
Video and Still Image Samples ....................................................................... 20
2.4.3.2.1 Sample Bulk Transfers ................................................................................. 23
2.4.3.2.2 Sample Isochronous Transfers ...................................................................... 25
Video and Still Image Payload Headers .......................................................... 29
Stream Synchronization and Rate Matching ................................................... 32
2.4.3.4.1 Latency ......................................................................................................... 32
2.4.3.4.2 Clock Reference ........................................................................................... 33
2.4.3.4.3 Presentation Time ......................................................................................... 33
Dynamic Frame Interval Support .................................................................... 34
Device Initiated Dynamic Format Change Support ........................................ 34
Data Format Classes ........................................................................................ 34
Control Transfer and Request Processing .............................................................. 35
3 Descriptors ............................................................................................................................. 43
3.1 Descriptor Layout Overview .......................................................................................... 44
3.2 Device Descriptor ........................................................................................................... 44
3.3 Device_Qualifier Descriptor (deprecated) ..................................................................... 45
3.4 Configuration Descriptor ................................................................................................ 45
2.4.2.1
2.4.2.2
2.4.2.3
2.4.2.4
2.4.2.5
2.4.3.5
2.4.3.6
2.4.3.7
2.4.3
2.4.3.1
2.4.3.2
2.4.3.3
2.4.3.4
2.4.1
2.4.2
2.4.4
Revision 1.5
August 9, 2012
vii
USB Device Class Definition for Video Devices
3.4.1
3.8.1
3.8.2
3.8.1.1
3.8.1.2
3.8.2.1
3.8.2.2
3.9.1
3.9.2
3.7.1
3.7.2
3.7.2.1
3.7.2.2
3.7.2.3
3.7.2.4
3.7.2.5
3.7.2.6
3.7.2.7
Backwards Compatibility ....................................................................................... 45
3.5 Other_Speed_Configuration Descriptor (deprecated) .................................................... 45
3.6
Interface Association Descriptor .................................................................................... 45
3.7 VideoControl Interface Descriptors ............................................................................... 46
Standard VC Interface Descriptor .......................................................................... 46
Class-Specific VC Interface Descriptor ................................................................. 47
Input Terminal Descriptor ............................................................................... 49
Output Terminal Descriptor ............................................................................. 50
Camera Terminal Descriptor ........................................................................... 51
Selector Unit Descriptor .................................................................................. 53
Processing Unit Descriptor .............................................................................. 54
Encoding Unit Descriptor ................................................................................ 56
Extension Unit Descriptor ............................................................................... 58
3.8 VideoControl Endpoint Descriptors ............................................................................... 59
VC Control Endpoint Descriptors .......................................................................... 59
Standard VC Control Endpoint Descriptor ...................................................... 59
Class-Specific VC Control Endpoint Descriptor ............................................. 59
VC Interrupt Endpoint Descriptors ........................................................................ 59
Standard VC Interrupt Endpoint Descriptor .................................................... 59
Class-specific VC Interrupt Endpoint Descriptor ............................................ 60
3.9 VideoStreaming Interface Descriptors ........................................................................... 60
Standard VS Interface Descriptor ........................................................................... 61
Class-Specific VS Interface Descriptors ................................................................ 61
Input Header Descriptor .................................................................................. 61
Output Header Descriptor ................................................................................ 64
Payload Format Descriptors ............................................................................ 65
Video Frame Descriptor .................................................................................. 66
Still Image Frame Descriptor .......................................................................... 66
Color Matching Descriptor .............................................................................. 68
3.10 VideoStreaming Endpoint Descriptors ........................................................................... 69
3.10.1 VS Video Data Endpoint Descriptors .................................................................... 69
Standard VS Isochronous Video Data Endpoint Descriptor ........................... 69
Standard VS Bulk Video Data Endpoint Descriptor ....................................... 70
3.10.2 VS Bulk Still Image Data Endpoint Descriptors .................................................... 71
Standard VS Bulk Still Image Data Endpoint Descriptor ............................... 71
3.11 String Descriptors ........................................................................................................... 72
4 Class-Specific Requests ......................................................................................................... 73
4.1 Request Layout ............................................................................................................... 73
Set Request ............................................................................................................. 73
Get Request ............................................................................................................ 74
4.2 VideoControl Requests .................................................................................................. 76
Interface Control Requests ..................................................................................... 77
Power Mode Control ....................................................................................... 77
Request Error Code Control ............................................................................ 79
Unit and Terminal Control Requests ...................................................................... 80
Camera Terminal Control Requests ................................................................ 81
3.9.2.1
3.9.2.2
3.9.2.3
3.9.2.4
3.9.2.5
3.9.2.6
4.1.1
4.1.2
4.2.1
3.10.1.1
3.10.1.2
4.2.1.1
4.2.1.2
4.2.2
4.2.2.1
3.10.2.1
Revision 1.5
August 9, 2012
viii