Please give me some advice about UVC(USB Video Class)

Dear Sir,
I know little about UVC(USB Video Class), and my job needs me to learn to how to develop it . So I am rather confused.
Do anyone know about it? Can you give me some advice about rapid learning? Which document should I read? Where can I get the UVC samples?
Thanks for your reading and answering!

xxxxx@gmail.com wrote:

I know little about UVC(USB Video Class), and my job needs me to learn to how to develop it . So I am rather confused.

What do you need to develop? Camera firmware? Remember that the beauty
of the USB device classes is that, as long as your device meets the
class spec, you do not need to write a driver. The stock drivers will
handle it. If you have a USB Video Class device, the standard
usbvideo.sys driver will make it appear as a capture device in Windows
with no additional work.

Do anyone know about it? Can you give me some advice about rapid learning? Which document should I read?

If you do not already have them you should go to www.usb.org and
download both the USB 2.0 specification and the USB Video Class
specifications. The base spec is surprisingly readable. The video
class spec is rather terse, but it contains most of what you need to
implement a class-compliant device.

Where can I get the UVC samples?

Sample what? Again, you don’t need a driver. Microsoft provides one.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

张全煜 (xxxxx@gmail.com) wrote:

Thanks for your answering. According to your reply, I guess you are a
experienced driver developer, especially in the field of UVC.
Here, I want to tell you more about my project I am working at. I do
not write a driver for the web camera which meets the UVC spec. What I
want to do is to rewrite the USB Video Class Driver that Microsoft has
provided, and to replace it with my new class driver. I know it is a
very large project, so I develop my class driver only supporting some
web cameras.

No, that is NOT what you want to do. There are several man-years of
work in usbvideo.sys, and it is foolish to think that you could hope to
replace it yourself in any reasonable length of time.

Remember that the USB Video Class is a STANDARD. If your device meets
the standard, then a standard driver will support it. If your device
doesn’t meet the standard, then it isn’t USB Video Class, and you cannot
replace the standard driver to support it.

However, it is quite possible (and not uncommon) to write filter drivers
around usbaudio.sys and usbvideo.sys to provide custom functions. What
functions, exactly, do you need that usbvideo.sys does not provide?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.