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