Universal Serial Bus
Device Class Definition
for Video Devices:
Video Device Examples
Revision 1.1
June 1, 2005
USB Device Class Definition for Video: Video Camera Example
Contributors
Abdul R. Ismail Intel Corp.
Akihiro Tanabe Canon Inc.
Anand Ganesh Microsoft Corp.
Andy Hodgson STMicroelectronics
Anshuman Saxena Texas Instruments
Bertrand Lee Microsoft Corp.
Charng Lee Sunplus Technology Co., Ltd
David Goll Microsoft Corp.
Eric Luttmann Cypress Semiconductor Corp.
Fernando Urbina Apple Computer Inc.
Geert Knapen Philips Electronics
Geraud Mudry Logitech Inc.
Hiro Kobayashi Microsoft Corp.
Jean-Michel Chardon Logitech Inc.
Jeff Zhu Microsoft Corp.
Ken-ichiro Ayaki Fujifilm
Mitsuo Niida Canon Inc.
Nobuo Kuchiki Sanyo Electric Co., Ltd
Olivier Lechenne Logitech Inc.
Paul Thacker STMicroelectronics
Remy Zimmermann Logitech Inc.
Shinichi Hatae Canon Inc.
Steve Miller STMicroelectronics
Tachio Ono Canon Inc.
Takashi Sato Philips Electronics
Yoichi Hirata Matsushita Electric Industrial Co., Ltd
Revision 1.1 June 1, 2005 ii
USB Device Class Definition for Video: Video Camera Example
Copyright © 2001, 2002, 2003, 2004, 2005 USB Implementers Forum
All rights reserved.
INTELLECTUAL PROPERTY DISCLAIMER
THIS DOCUMENT IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER
INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR ANY
PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF
ANY PROPOSAL, SPECIFICATION, OR SAMPLE.
A LICENSE IS HEREBY GRANTED TO REPRODUCE AND DISTRIBUTE THIS
DOCUMENT FOR INTERNAL USE ONLY. NO OTHER LICENSE, EXPRESS OR
IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER INTELLECTUAL
PROPERTY RIGHTS IS GRANTED OR INTENDED HEREBY.
AUTHORS OF THIS DOCUMENT DISCLAIM ALL LIABILITY, INCLUDING
LIABILITY FOR INFRINGEMENT OF PROPRIETARY RIGHTS, RELATING TO
IMPLEMENTATION OF INFORMATION IN THIS DOCUMENT. AUTHORS OF THIS
DOCUMENT ALSO DO NOT WARRANT OR REPRESENT THAT SUCH
IMPLEMENTATION(S) WILL NOT INFRINGE SUCH RIGHTS.
All product names are trademarks, registered trademarks, or service marks of their respective
owners.
Revision 1.1 June 1, 2005 iii
USB Device Class Definition for Video: Video Camera Example
Revision History
Version Date Description
1.0 December 9, 2003 Initial release
1.1 June 1
st
, 2005 Update document for compliance with UVC version 1.08a
Added Description of the Controls for the Second Example
(Section 3.4).
Change VDC to UVC in Tables 2.5 and 3.5. (RR0064)
Revision 1.1 June 1, 2005 iv
USB Device Class Definition for Video: Video Camera Example
Table of Contents
1 Introduction ............................................................................................................................. 1
1.1 Purpose............................................................................................................................. 1
1.2 Related Documents .......................................................................................................... 1
2 Desktop Video Camera Example ............................................................................................ 2
2.1 Product Description.......................................................................................................... 2
2.2 Descriptor Hierarchy........................................................................................................3
2.3 Descriptors ....................................................................................................................... 5
2.3.1 Device Descriptor..................................................................................................... 5
2.3.2 Configuration Descriptor.......................................................................................... 5
2.3.3 Interface Association Descriptor .............................................................................. 6
2.3.4 VideoControl Interface Descriptor........................................................................... 6
2.3.4.1 Standard VC Interface Descriptor ..................................................................... 6
2.3.4.2 Class-specific VC Interface Descriptor ............................................................. 7
2.3.4.3 Input Terminal Descriptor (Camera) ................................................................. 7
2.3.4.4 Input Terminal Descriptor (Composite) ............................................................ 8
2.3.4.5 Output Terminal Descriptor............................................................................... 8
2.3.4.6 Selector Unit Descriptor .................................................................................... 9
2.3.4.7 Processing Unit Descriptor................................................................................ 9
2.3.4.8 Standard Interrupt Endpoint Descriptor .......................................................... 10
2.3.4.9 Class-specific Interrupt Endpoint Descriptor .................................................. 10
2.3.5 VideoStreaming Interface Descriptor..................................................................... 10
2.3.5.1 Zero-bandwidth Alternate Setting 0 ................................................................ 10
2.3.5.1.1 Standard VS Interface Descriptor ................................................................ 10
2.3.5.1.2 Class-specific VS Header Descriptor (Input)............................................... 11
2.3.5.1.3 Class-specific VS Format Descriptor........................................................... 11
2.3.5.1.4 Class-specific VS Frame Descriptor ............................................................ 12
2.3.5.2 Operational Alternate Setting 1 ....................................................................... 13
2.3.5.2.1 Standard VS Interface Descriptor ................................................................ 13
2.3.5.2.2 Standard VS Isochronous Video Data Endpoint Descriptor ........................ 13
2.3.6 String Descriptors................................................................................................... 14
2.3.6.1 String Descriptor Zero..................................................................................... 14
2.3.6.2 Manufacturer String Descriptor (Index 1)....................................................... 14
2.3.6.3 Product String Descriptor (Index 2) ................................................................ 14
2.4 Requests ......................................................................................................................... 15
2.4.1 Standard Requests .................................................................................................. 15
2.4.1.1 Set Interface..................................................................................................... 15
2.4.2 Class-specific Requests .......................................................................................... 15
2.4.2.1 VideoControl Interface Requests..................................................................... 15
2.4.2.1.1 Set Selector Control Request........................................................................ 16
2.4.2.1.2 Get Selector Control Request....................................................................... 16
2.4.2.1.3 Set Brightness Control Request.................................................................... 17
2.4.2.1.4 Get Brightness Control Request................................................................... 17
2.4.2.1.5 Set Power Mode Control Request ................................................................ 18
2.4.2.1.6 Get Power Mode Control Request ............................................................... 18
2.4.2.1.7 Request Error Code Control......................................................................... 19
Revision 1.1 June 1, 2005 v