TechTalkz.com Logo Ask the Experts!

Go Back   TechTalkz.com Technology & Computer Troubleshooting Forums > Tech Support Archives > Microsoft > Microsoft Device Drivers

usb video device

Microsoft Device Drivers

 
 
Thread Tools Display Modes
Unread 29-11-2007, 11:22 PM   #1
montu.rathod@einfochips.com
Guest
 
Posts: n/a
usb video device

Hi,
we are developing usb video device.
we have gone through usb video specification 1.1 docs.
but few descriptor fields are not clear to us, like

in Video frame descriptor
dwMinBitRate
dwMaxtRate
dwMaxVideoFrameBufferSize
dwDefaultFrameInerval
bFrameIntervalType
dwMinFrameInterval
dwMaxFrameInterval
dwFrameIntervalStep

and in Class-specific VC Interface Descriptor
dwClockFrequency

And we have choose uncopmressed dat stream, we dont know how host will
identify the SOF and end of frem?

Please help me.

All descriptor are as bellow:

Get Descriptor (Device)
Offset Field Size Value Description
0 bLength 1 0x12 Size of the Descriptor
1 bDescriptoType 1 0x01 DEVICE Descriptor
2 bcdUSB 2 0x0200 2.00 USB Specification
4 bDeviceClass 1 0xEF Miscellaneous Class
5 bDeviceSubClass 1 0x02 Common Class
6 bDevcieProtocol 1 0x01 IAD
7 bMaxPacketSize0 1 0x40 Control EP packet size is 64 bytes
8 idVendor 2 0xXXXX Vendor ID
10 idProduct 2 0xXXXX Product ID
12 bcdDevice 2 0xXXXX Device Release code
14 iManufacturer 1 0x01 Index to string descriptor
15 Iproduct 1 0x02 Index to string descriptor
16 iSerialNumber 1 0x00 Unused
17 bNumConfigurations 1 0x01 One Configuration


Standard Configuration Descriptor
Offset Field Size Value Description
0 bLength 1 0x09 Size of Descriptor
1 bDescriptoType 1 0x02 CONFIGURATION Descriptor
2 wTotalLength 2 0x00BF Length of total Configuration block
4 bnumInterfaces 1 0x02 This Device has two Interfaces
5 bConfigurationValue 1 0x01 ID of this Configuration
6 iConfiguration 1 0x00 Unused
7 bmAttribute 1 0x80 Bus-powered device
8 bMaxPower 1 0xFA 500 mA power

Offset Field Size Value Description
0 bLength 1 0x08 Size of Descriptor
1 bDescriptorType 1 0x0B IAD Descriptor
2 bFirstInterface 1 0x00 Interface Number of VC Interface
3 bInterfaceCount 1 0x02 Number of Contiguous video interfaces
4 bFunctionClass 1 0x0E CC_VIDEO
5 bFunctionSubClass 1 0x03 Video collection
6 bFunctionProtocol 1 0x00 Not used
7 iFunction 1 0x02 Index to string descriptor


Standard VC Interface Descriptor:

Offset Field Size Value Description
0 bLength 1 0x09 Size of Descriptor
1 bDescriptorType 1 0x04 INTERFACE Descriptor
3 bInterfaceNumber 1 0x00 Index of this interface
4 bAlternateSetting 1 0x00 Index of this setting
5 bNumEndPoints 1 0x01 1 EP (Interrupt EP)
6 bInterfaceClass 1 0x0E CC_VIDEO
7 bInterfaceSubClass 1 0x03 SC_VIDEOCONTROL
8 bInterfaceProtocol 1 0x00 Not used
9 iInterface 1 0x02 Index of string Descriptor


Class-specific VC Interface Descriptor:

Offset Field Size Value Description
0 bLength 1 0x0D
Size of Descriptor
1 bDescriptorType 1 0x24 CS_INTERFACE
2 bDescriptorSubType 1 0x01 VC_HEADER
3 bcdUVC 2 0x0110 Video class specification 1.1
5 wTotalLength 2 0x004C Total size of class specific descriptor
7 dwClockFrequency 4 0xXXXXXXXX -
11 bInCollection 1 0x01 Number of streaming interfaces
12 bInterfaceNr(1) 1 0x01 VS interface 1 belongs to this VCI


Input Terminal Descriptor (CCD Camera):
Offset Field Size Value Description
0 bLength 1 0x11 Size of Descriptor
1 bDescriptorType 1 0x24 CS_INTERFACE
2 bDescriptorSubtype 1 0x02 VC_INPUT_TERMIANAL
3 BTerminalID 1 0x01 ID of this terminal
4 wTerminalType 2 0x201 ITT_CAMERA type
6 bAssocTerminal 1 0x00 No association
7 iTerminal 1 0x00 Unused
8 wObjectFocalLenghtMin 2 0x0000 No optimal zoom
10 wObjectFocalLenghtMax 2 0x0000 No optimal zoom
12 wOcularFocalLength 2 0x0000 No optimal zoom
14 bControlSize 1 0x02 2 byte
15 bmControls 2 0x0000 No control supported


Processing Unit Descriptor:

Offset Field Size Value Description
0 bLength 1 0x0B Size of descriptor
1 bDescriptorType 1 0x24 CS_INTERFACE
2 bDescriptorSubType 1 0x05 VC_PROCESSING_UNIT
3 bUnitID 1 0x02 ID of this unit
4 bSourceID 1 0x01 Input pin connected with
5 wMaxMultiplier 2 0x0000 Unused
7 bControlSize 1 0x02 2 bytes
8 bmControls 2 0x0001 Brightness control support
10 iProcessing 1 0x00 Unused


Extension Unit Descriptor:
Offset Field Size Value Description
0 bLength 1 0x1A Size of descriptor
1 bDescriptorType 1 0x24 CS_INTERFACE
2 bDescriptorSubType 1 0x05 VC_PROCESSING_UNIT
3 bUnitID 1 0x05 ID of this unit
4 guidExtensionCode 16 GUID Vendor specific code
20 bNumControls 1 0x00 Number of controls
21 bNrInPins 1 0x01 Number of input pin
22 bSourceID 1 0x02 Id of Unit or terminal to which pin is connected
23 bControlSize 1 0x02 2 bytes
24 bmControls 1 0x0000 Control supported (vendor-specific)
25 iExtension 1 0x02 Index of string descriptor


Output Terminal Descriptor:
Offset Field Size Value Description
0 bLength 1 0x09 Size of descriptor
1 bDescriptorType 1 0x24 CS_INTERFACE
2 bDescriptorSubType 1 0x03 VC_OUTPUT_TERMINAL
3 bTerminalID 1 0x03 ID of this terminal
4 wTerminalType 1 0x0101 This is USB streaming terminal
6 bAssocTermianal 2 0x00 No association
7 bSourceID 1 0x05 Pin connection
8 iTerminal 1 0x00 Unused


Standard end point Descriptor (Interrupt):

Offset Field Size Value Description
0 Blength 1 0x07 Size of descriptor
1 bDescriptorType 1 0x05 ENDPOINT descriptor
2 bEndpointAddress 1 0x81 IN endpoint 1
3 bmAttributes 1 0x03 Interrupt transfer type
4 wMaxPacketsize 2 0x0008 8 byte status packet
6 bInterval 1 0x20 Poll at every 32ms

Class-specific end point descriptor (Interrupt):
Offset Field Size Value Description
0 bLength 1 0x05 Size of descriptor
1 bDescriptorType 1 0x25 CS_ENDPOINT descriptor
2 bDescriptorSubType 1 0x03 EP_INTERRUPT
4 wMaxTransferSize 2 0x0008 8 byte status packet


Standard VS interface descriptor:
Offset Field Size Value Description
0 bLength 1 0x09 Size of Descriptor
1 bDescriptorType 1 0x04 INTERFACE Descriptor
2 bInterfaceNumber 1 0x01 Index of this interface
3 bAlternateSetting 1 0x00 Index of this setting
4 bNumEndPoints 1 0x00 0 EP (Default EP)
5 bInterfaceClass 1 0x0E CC_VIDEO
6 bInterfaceSubClass 1 0x02 SC_VIDEOSTREAMING
7 bInterfaceProtocol 1 0x00 Not used
8 iInterface 1 0x00 Index of string Descriptor

Class-specific VS Interface Descriptor:

Offset Field Size Value Description
0 bLength 1 0x0E Size of descriptor
1 bDescriptorTyupe 1 0x24 CS_INTERFACE
2 bDescriptorSubtype 1 0x01 VS_INPUT_HEADER
3 bNumformats 1 0x01 One descriptor follow
4 wTotallength 2 0x003F Total size of VS block
6 bEndpointAddress 1 0x82 Address of isochronous EP
7 bmInfo 1 0x00 No dynamic format
8 bTerminalLink 1 0x03 Terminal ID
9 bStollCaptureMethod 1 0x01 Still image capture method 1
10 btriggerSupport 1 0x01 Hardware trigger
11 bTriggerUsage 1 0x00 Still image initiate by h/w
12 bControlsize 1 0x01 1 byte
13 bmaControls 1 0x00 Not supported


Class-specific VS Header Descriptor:

Offset Field Size Value Description
0 bLength 1 0x0E Size of the descriptor
1 bDescriptorType 1 0x24 CS_INTERFACE
2 bDescriptorSubtype 1 0x01 VS_INPUT_HEADER
3 bNumFormats 1 0x01 One format descriptor
4 wTotallength 2 0x004F Total size of VS interface descriptor
6 bEndpointAddress 1 0x82 Address of Isochronous endpoint
7 bmInfo 1 0x00 No dynamic Format
8 bTerminalLink 1 0x03 Out terminal ID
9 bStillCaptureMethod 1 0x01 Still image method 1
10 bTriggerSupport 1 0x01 h/w trigger still image
11 bTriggerUsage 1 0x00 h/w initiate image capture
12 bControlSize 1 0x01 1 byte
13 bmaControls 1 0x00 No control


Class-specific VS Format Descriptor
Offset Field Size Value Description
0 bLength 1 0x1B Size of Descriptor
1 bDescriptorType 1 0x24 CS_INTERFACE
2 bDesriptorSubtype 1 0x04 VS_FORMATE_UNCOMPRESSED
3 bFormatIndex 1 0x01 Index of this descriptor
4 bNumFrameDescriptors 1 0x01 Number of frame descriptor
5 guidFormat 16 GUID GUID of stream-encoding format
21 bBitsPerPixel 1 0x08 Number of bits per pixel
22 bDefaultFrameIndex 1 0x00 Optimum Frame Index
23 bAspectRatioX 1 0x04 X dimension of picture aspect(1024)
24 bAspectRatioY 1 0x03 Y dimension of picture aspect(768)
25 bmInterfaceFlags 1 0x06 Specified non-interlace information
26 bCopyProtect 1 0x00 No restriction


Class-specific VS Frame Descriptor:
Offset Field Size Value Description
0 bLength 1 0x26 Size of Descriptor
1 bDescriptorType 1 0x24 CS_INTERFACE
2 bDescriptorSubtype 1 0x05 VS_FRAME_UNCOPMRESSED
3 bFrameIndex 1 0x01 Index of this descriptor
4 bmCapabilities 1 0x03 Capabilities
5 wWidth 2 0x0400 Width of decoded frame in pixel
7 wHeight 2 0x0300 Height of decoded frame in pixel
9 dwMinBitRate 4 Min transmit bit rate
13 dwMaxtRate 4 Max transmit bit rate
17 dwMaxVideoFrameBufferSize 4 Video frame size
21 dwDefaultFrameInerval 4 Frame interval
25 bFrameIntervalType 1 0x00 How frame interval can be programmed
(continuous)
26 dwMinFrameInterval 4 Shorted frame interval Supported
30 dwMaxFrameInterval 4 Longest frame interval supported
34 dwFrameIntervalStep 4 Granularity of frame interval

Standard VS Interface descriptor:
Offset Field Size Value Description
0 bLength 1 0x09 Size of Descriptor
1 bDescriptorType 1 0x04 INTERFACE Descriptor
2 bInterfaceNumber 1 0x01 Index of this interface
3 bAlternateSetting 1 0x01 Index of this setting
4 bNumEndPoints 1 0x01 0 endpoints
5 bInterfaceClass 1 0x0E CC_VIDEO
6 bInterfaceSubClass 1 0x02 SC_VIDEOSTREAM
7 bInterfaceProtocol 1 0x00 Not used
8 iInterface 1 0x00 Index of string Descriptor

Standard VS endpoint descriptor (Isochronous):
Offset Field Size Value Description
0 bLength 1 0x07 Size of the Descriptor
1 bDescriptorType 1 0x05 Endpoint
2 bEndpointAddress 1 0x82 IN Endpoint 2
3 bmAttributes 1 0x01 Isochronous transfer
4 wMaxPacketSize 2 0x0400 Max packet size 1024
6 bInterval 1 0x01 One frame interval

 
Unread 29-11-2007, 11:24 PM   #2
Tim Roberts
Guest
 
Posts: n/a
Re: usb video device

montu.rathod@einfochips.com wrote:

>Hi,
>we are developing usb video device.
>we have gone through usb video specification 1.1 docs.
>but few descriptor fields are not clear to us, like
>
>in Video frame descriptor
> dwMinBitRate
> dwMaxtRate
> dwMaxVideoFrameBufferSize
> dwDefaultFrameInerval
> bFrameIntervalType
> dwMinFrameInterval
> dwMaxFrameInterval
> dwFrameIntervalStep


If this is uncompressed video, the minimum and maximum bitrates will be the
same. Take the size of each frame, times the frames per second, times 8.

Further, dwMaxVideoFrameBufferSize is a constant: width x height x bytes
per pixel.

dwDefaultFrameInterval is your frames per second, in 100ns units. For 30Hz
data, that's 333333. The other values are used to specify the range of
frame rates you support. The spec does a pretty good job of describing
these.

>And we have choose uncopmressed dat stream, we dont know how host will
>identify the SOF and end of frem?


What format is your data? You show 8 bits per pixel, but neither of the
uncompressed formats does that. The USB video class supports exactly two
formats: YUY2 (packed YUV, 16 bits per pixel) and NV12 (planar YUV, 12 bits
per pixel).

If you have RGB data, you will have to use the "vendor defined" format.

In either case, the first packet in every microframe has to have a packet
header; the FID and EOF bits tell the host where the frame boundaries are.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
 
Unread 29-11-2007, 11:24 PM   #3
Tim Roberts
Guest
 
Posts: n/a
Re: usb video device

montu.rathod@einfochips.com wrote:

>Hi,
>we are developing usb video device.
>we have gone through usb video specification 1.1 docs.
>but few descriptor fields are not clear to us, like
>
>in Video frame descriptor
> dwMinBitRate
> dwMaxtRate
> dwMaxVideoFrameBufferSize
> dwDefaultFrameInerval
> bFrameIntervalType
> dwMinFrameInterval
> dwMaxFrameInterval
> dwFrameIntervalStep


If this is uncompressed video, the minimum and maximum bitrates will be the
same. Take the size of each frame, times the frames per second, times 8.

Further, dwMaxVideoFrameBufferSize is a constant: width x height x bytes
per pixel.

dwDefaultFrameInterval is your frames per second, in 100ns units. For 30Hz
data, that's 333333. The other values are used to specify the range of
frame rates you support. The spec does a pretty good job of describing
these.

>And we have choose uncopmressed dat stream, we dont know how host will
>identify the SOF and end of frem?


What format is your data? You show 8 bits per pixel, but neither of the
uncompressed formats does that. The USB video class supports exactly two
formats: YUY2 (packed YUV, 16 bits per pixel) and NV12 (planar YUV, 12 bits
per pixel).

If you have RGB data, you will have to use the "vendor defined" format.

In either case, the first packet in every microframe has to have a packet
header; the FID and EOF bits tell the host where the frame boundaries are.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
 
Unread 29-11-2007, 11:24 PM   #4
Tim Roberts
Guest
 
Posts: n/a
Re: usb video device

montu.rathod@einfochips.com wrote:

>Hi,
>we are developing usb video device.
>we have gone through usb video specification 1.1 docs.
>but few descriptor fields are not clear to us, like
>
>in Video frame descriptor
> dwMinBitRate
> dwMaxtRate
> dwMaxVideoFrameBufferSize
> dwDefaultFrameInerval
> bFrameIntervalType
> dwMinFrameInterval
> dwMaxFrameInterval
> dwFrameIntervalStep


If this is uncompressed video, the minimum and maximum bitrates will be the
same. Take the size of each frame, times the frames per second, times 8.

Further, dwMaxVideoFrameBufferSize is a constant: width x height x bytes
per pixel.

dwDefaultFrameInterval is your frames per second, in 100ns units. For 30Hz
data, that's 333333. The other values are used to specify the range of
frame rates you support. The spec does a pretty good job of describing
these.

>And we have choose uncopmressed dat stream, we dont know how host will
>identify the SOF and end of frem?


What format is your data? You show 8 bits per pixel, but neither of the
uncompressed formats does that. The USB video class supports exactly two
formats: YUY2 (packed YUV, 16 bits per pixel) and NV12 (planar YUV, 12 bits
per pixel).

If you have RGB data, you will have to use the "vendor defined" format.

In either case, the first packet in every microframe has to have a packet
header; the FID and EOF bits tell the host where the frame boundaries are.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
 
Unread 29-11-2007, 11:52 PM   #5
montu.rathod@gmail.com
Guest
 
Posts: n/a
Re: usb video device

Hi,

Thank you. I filled most the descriptor fields.

I am supporing 15 fps (frame per second).
So as per my knowledge dwDefaultFrameInerval valuse should be
(1/fps) * 100 *10^--9 = 666666.
but i am not able to calculate dwMinFrameInterval, dwMaxFrameInterval
and dwFrameIntervalStep.

Kindly provide the answer for this.

thanks & regards,
Montu



montu.rathod@einfochips.com wrote:
> Hi,
> we are developing usb video device.
> we have gone through usb video specification 1.1 docs.
> but few descriptor fields are not clear to us, like
>
> in Video frame descriptor
> dwMinBitRate
> dwMaxtRate
> dwMaxVideoFrameBufferSize
> dwDefaultFrameInerval
> bFrameIntervalType
> dwMinFrameInterval
> dwMaxFrameInterval
> dwFrameIntervalStep
>
> and in Class-specific VC Interface Descriptor
> dwClockFrequency
>
> And we have choose uncopmressed dat stream, we dont know how host will
> identify the SOF and end of frem?
>
> Please help me.
>
> All descriptor are as bellow:
>
> Get Descriptor (Device)
> Offset Field Size Value Description
> 0 bLength 1 0x12 Size of the Descriptor
> 1 bDescriptoType 1 0x01 DEVICE Descriptor
> 2 bcdUSB 2 0x0200 2.00 USB Specification
> 4 bDeviceClass 1 0xEF Miscellaneous Class
> 5 bDeviceSubClass 1 0x02 Common Class
> 6 bDevcieProtocol 1 0x01 IAD
> 7 bMaxPacketSize0 1 0x40 Control EP packet size is 64 bytes
> 8 idVendor 2 0xXXXX Vendor ID
> 10 idProduct 2 0xXXXX Product ID
> 12 bcdDevice 2 0xXXXX Device Release code
> 14 iManufacturer 1 0x01 Index to string descriptor
> 15 Iproduct 1 0x02 Index to string descriptor
> 16 iSerialNumber 1 0x00 Unused
> 17 bNumConfigurations 1 0x01 One Configuration
>
>
> Standard Configuration Descriptor
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptoType 1 0x02 CONFIGURATION Descriptor
> 2 wTotalLength 2 0x00BF Length of total Configuration block
> 4 bnumInterfaces 1 0x02 This Device has two Interfaces
> 5 bConfigurationValue 1 0x01 ID of this Configuration
> 6 iConfiguration 1 0x00 Unused
> 7 bmAttribute 1 0x80 Bus-powered device
> 8 bMaxPower 1 0xFA 500 mA power
>
> Offset Field Size Value Description
> 0 bLength 1 0x08 Size of Descriptor
> 1 bDescriptorType 1 0x0B IAD Descriptor
> 2 bFirstInterface 1 0x00 Interface Number of VC Interface
> 3 bInterfaceCount 1 0x02 Number of Contiguous video interfaces
> 4 bFunctionClass 1 0x0E CC_VIDEO
> 5 bFunctionSubClass 1 0x03 Video collection
> 6 bFunctionProtocol 1 0x00 Not used
> 7 iFunction 1 0x02 Index to string descriptor
>
>
> Standard VC Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 3 bInterfaceNumber 1 0x00 Index of this interface
> 4 bAlternateSetting 1 0x00 Index of this setting
> 5 bNumEndPoints 1 0x01 1 EP (Interrupt EP)
> 6 bInterfaceClass 1 0x0E CC_VIDEO
> 7 bInterfaceSubClass 1 0x03 SC_VIDEOCONTROL
> 8 bInterfaceProtocol 1 0x00 Not used
> 9 iInterface 1 0x02 Index of string Descriptor
>
>
> Class-specific VC Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0D
> Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x01 VC_HEADER
> 3 bcdUVC 2 0x0110 Video class specification 1.1
> 5 wTotalLength 2 0x004C Total size of class specific descriptor
> 7 dwClockFrequency 4 0xXXXXXXXX -
> 11 bInCollection 1 0x01 Number of streaming interfaces
> 12 bInterfaceNr(1) 1 0x01 VS interface 1 belongs to this VCI
>
>
> Input Terminal Descriptor (CCD Camera):
> Offset Field Size Value Description
> 0 bLength 1 0x11 Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x02 VC_INPUT_TERMIANAL
> 3 BTerminalID 1 0x01 ID of this terminal
> 4 wTerminalType 2 0x201 ITT_CAMERA type
> 6 bAssocTerminal 1 0x00 No association
> 7 iTerminal 1 0x00 Unused
> 8 wObjectFocalLenghtMin 2 0x0000 No optimal zoom
> 10 wObjectFocalLenghtMax 2 0x0000 No optimal zoom
> 12 wOcularFocalLength 2 0x0000 No optimal zoom
> 14 bControlSize 1 0x02 2 byte
> 15 bmControls 2 0x0000 No control supported
>
>
> Processing Unit Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0B Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x05 VC_PROCESSING_UNIT
> 3 bUnitID 1 0x02 ID of this unit
> 4 bSourceID 1 0x01 Input pin connected with
> 5 wMaxMultiplier 2 0x0000 Unused
> 7 bControlSize 1 0x02 2 bytes
> 8 bmControls 2 0x0001 Brightness control support
> 10 iProcessing 1 0x00 Unused
>
>
> Extension Unit Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x1A Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x05 VC_PROCESSING_UNIT
> 3 bUnitID 1 0x05 ID of this unit
> 4 guidExtensionCode 16 GUID Vendor specific code
> 20 bNumControls 1 0x00 Number of controls
> 21 bNrInPins 1 0x01 Number of input pin
> 22 bSourceID 1 0x02 Id of Unit or terminal to which pin is connected
> 23 bControlSize 1 0x02 2 bytes
> 24 bmControls 1 0x0000 Control supported (vendor-specific)
> 25 iExtension 1 0x02 Index of string descriptor
>
>
> Output Terminal Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x03 VC_OUTPUT_TERMINAL
> 3 bTerminalID 1 0x03 ID of this terminal
> 4 wTerminalType 1 0x0101 This is USB streaming terminal
> 6 bAssocTermianal 2 0x00 No association
> 7 bSourceID 1 0x05 Pin connection
> 8 iTerminal 1 0x00 Unused
>
>
> Standard end point Descriptor (Interrupt):
>
> Offset Field Size Value Description
> 0 Blength 1 0x07 Size of descriptor
> 1 bDescriptorType 1 0x05 ENDPOINT descriptor
> 2 bEndpointAddress 1 0x81 IN endpoint 1
> 3 bmAttributes 1 0x03 Interrupt transfer type
> 4 wMaxPacketsize 2 0x0008 8 byte status packet
> 6 bInterval 1 0x20 Poll at every 32ms
>
> Class-specific end point descriptor (Interrupt):
> Offset Field Size Value Description
> 0 bLength 1 0x05 Size of descriptor
> 1 bDescriptorType 1 0x25 CS_ENDPOINT descriptor
> 2 bDescriptorSubType 1 0x03 EP_INTERRUPT
> 4 wMaxTransferSize 2 0x0008 8 byte status packet
>
>
> Standard VS interface descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 2 bInterfaceNumber 1 0x01 Index of this interface
> 3 bAlternateSetting 1 0x00 Index of this setting
> 4 bNumEndPoints 1 0x00 0 EP (Default EP)
> 5 bInterfaceClass 1 0x0E CC_VIDEO
> 6 bInterfaceSubClass 1 0x02 SC_VIDEOSTREAMING
> 7 bInterfaceProtocol 1 0x00 Not used
> 8 iInterface 1 0x00 Index of string Descriptor
>
> Class-specific VS Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0E Size of descriptor
> 1 bDescriptorTyupe 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x01 VS_INPUT_HEADER
> 3 bNumformats 1 0x01 One descriptor follow
> 4 wTotallength 2 0x003F Total size of VS block
> 6 bEndpointAddress 1 0x82 Address of isochronous EP
> 7 bmInfo 1 0x00 No dynamic format
> 8 bTerminalLink 1 0x03 Terminal ID
> 9 bStollCaptureMethod 1 0x01 Still image capture method 1
> 10 btriggerSupport 1 0x01 Hardware trigger
> 11 bTriggerUsage 1 0x00 Still image initiate by h/w
> 12 bControlsize 1 0x01 1 byte
> 13 bmaControls 1 0x00 Not supported
>
>
> Class-specific VS Header Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0E Size of the descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x01 VS_INPUT_HEADER
> 3 bNumFormats 1 0x01 One format descriptor
> 4 wTotallength 2 0x004F Total size of VS interface descriptor
> 6 bEndpointAddress 1 0x82 Address of Isochronous endpoint
> 7 bmInfo 1 0x00 No dynamic Format
> 8 bTerminalLink 1 0x03 Out terminal ID
> 9 bStillCaptureMethod 1 0x01 Still image method 1
> 10 bTriggerSupport 1 0x01 h/w trigger still image
> 11 bTriggerUsage 1 0x00 h/w initiate image capture
> 12 bControlSize 1 0x01 1 byte
> 13 bmaControls 1 0x00 No control
>
>
> Class-specific VS Format Descriptor
> Offset Field Size Value Description
> 0 bLength 1 0x1B Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDesriptorSubtype 1 0x04 VS_FORMATE_UNCOMPRESSED
> 3 bFormatIndex 1 0x01 Index of this descriptor
> 4 bNumFrameDescriptors 1 0x01 Number of frame descriptor
> 5 guidFormat 16 GUID GUID of stream-encoding format
> 21 bBitsPerPixel 1 0x08 Number of bits per pixel
> 22 bDefaultFrameIndex 1 0x00 Optimum Frame Index
> 23 bAspectRatioX 1 0x04 X dimension of picture aspect(1024)
> 24 bAspectRatioY 1 0x03 Y dimension of picture aspect(768)
> 25 bmInterfaceFlags 1 0x06 Specified non-interlace information
> 26 bCopyProtect 1 0x00 No restriction
>
>
> Class-specific VS Frame Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x26 Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x05 VS_FRAME_UNCOPMRESSED
> 3 bFrameIndex 1 0x01 Index of this descriptor
> 4 bmCapabilities 1 0x03 Capabilities
> 5 wWidth 2 0x0400 Width of decoded frame in pixel
> 7 wHeight 2 0x0300 Height of decoded frame in pixel
> 9 dwMinBitRate 4 Min transmit bit rate
> 13 dwMaxtRate 4 Max transmit bit rate
> 17 dwMaxVideoFrameBufferSize 4 Video frame size
> 21 dwDefaultFrameInerval 4 Frame interval
> 25 bFrameIntervalType 1 0x00 How frame interval can be programmed
> (continuous)
> 26 dwMinFrameInterval 4 Shorted frame interval Supported
> 30 dwMaxFrameInterval 4 Longest frame interval supported
> 34 dwFrameIntervalStep 4 Granularity of frame interval
>
> Standard VS Interface descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 2 bInterfaceNumber 1 0x01 Index of this interface
> 3 bAlternateSetting 1 0x01 Index of this setting
> 4 bNumEndPoints 1 0x01 0 endpoints
> 5 bInterfaceClass 1 0x0E CC_VIDEO
> 6 bInterfaceSubClass 1 0x02 SC_VIDEOSTREAM
> 7 bInterfaceProtocol 1 0x00 Not used
> 8 iInterface 1 0x00 Index of string Descriptor
>
> Standard VS endpoint descriptor (Isochronous):
> Offset Field Size Value Description
> 0 bLength 1 0x07 Size of the Descriptor
> 1 bDescriptorType 1 0x05 Endpoint
> 2 bEndpointAddress 1 0x82 IN Endpoint 2
> 3 bmAttributes 1 0x01 Isochronous transfer
> 4 wMaxPacketSize 2 0x0400 Max packet size 1024
> 6 bInterval 1 0x01 One frame interval


 
Unread 29-11-2007, 11:52 PM   #6
montu.rathod@gmail.com
Guest
 
Posts: n/a
Re: usb video device

Hi,

Thank you. I filled most the descriptor fields.

I am supporing 15 fps (frame per second).
So as per my knowledge dwDefaultFrameInerval valuse should be
(1/fps) * 100 *10^--9 = 666666.
but i am not able to calculate dwMinFrameInterval, dwMaxFrameInterval
and dwFrameIntervalStep.

Kindly provide the answer for this.

thanks & regards,
Montu



montu.rathod@einfochips.com wrote:
> Hi,
> we are developing usb video device.
> we have gone through usb video specification 1.1 docs.
> but few descriptor fields are not clear to us, like
>
> in Video frame descriptor
> dwMinBitRate
> dwMaxtRate
> dwMaxVideoFrameBufferSize
> dwDefaultFrameInerval
> bFrameIntervalType
> dwMinFrameInterval
> dwMaxFrameInterval
> dwFrameIntervalStep
>
> and in Class-specific VC Interface Descriptor
> dwClockFrequency
>
> And we have choose uncopmressed dat stream, we dont know how host will
> identify the SOF and end of frem?
>
> Please help me.
>
> All descriptor are as bellow:
>
> Get Descriptor (Device)
> Offset Field Size Value Description
> 0 bLength 1 0x12 Size of the Descriptor
> 1 bDescriptoType 1 0x01 DEVICE Descriptor
> 2 bcdUSB 2 0x0200 2.00 USB Specification
> 4 bDeviceClass 1 0xEF Miscellaneous Class
> 5 bDeviceSubClass 1 0x02 Common Class
> 6 bDevcieProtocol 1 0x01 IAD
> 7 bMaxPacketSize0 1 0x40 Control EP packet size is 64 bytes
> 8 idVendor 2 0xXXXX Vendor ID
> 10 idProduct 2 0xXXXX Product ID
> 12 bcdDevice 2 0xXXXX Device Release code
> 14 iManufacturer 1 0x01 Index to string descriptor
> 15 Iproduct 1 0x02 Index to string descriptor
> 16 iSerialNumber 1 0x00 Unused
> 17 bNumConfigurations 1 0x01 One Configuration
>
>
> Standard Configuration Descriptor
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptoType 1 0x02 CONFIGURATION Descriptor
> 2 wTotalLength 2 0x00BF Length of total Configuration block
> 4 bnumInterfaces 1 0x02 This Device has two Interfaces
> 5 bConfigurationValue 1 0x01 ID of this Configuration
> 6 iConfiguration 1 0x00 Unused
> 7 bmAttribute 1 0x80 Bus-powered device
> 8 bMaxPower 1 0xFA 500 mA power
>
> Offset Field Size Value Description
> 0 bLength 1 0x08 Size of Descriptor
> 1 bDescriptorType 1 0x0B IAD Descriptor
> 2 bFirstInterface 1 0x00 Interface Number of VC Interface
> 3 bInterfaceCount 1 0x02 Number of Contiguous video interfaces
> 4 bFunctionClass 1 0x0E CC_VIDEO
> 5 bFunctionSubClass 1 0x03 Video collection
> 6 bFunctionProtocol 1 0x00 Not used
> 7 iFunction 1 0x02 Index to string descriptor
>
>
> Standard VC Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 3 bInterfaceNumber 1 0x00 Index of this interface
> 4 bAlternateSetting 1 0x00 Index of this setting
> 5 bNumEndPoints 1 0x01 1 EP (Interrupt EP)
> 6 bInterfaceClass 1 0x0E CC_VIDEO
> 7 bInterfaceSubClass 1 0x03 SC_VIDEOCONTROL
> 8 bInterfaceProtocol 1 0x00 Not used
> 9 iInterface 1 0x02 Index of string Descriptor
>
>
> Class-specific VC Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0D
> Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x01 VC_HEADER
> 3 bcdUVC 2 0x0110 Video class specification 1.1
> 5 wTotalLength 2 0x004C Total size of class specific descriptor
> 7 dwClockFrequency 4 0xXXXXXXXX -
> 11 bInCollection 1 0x01 Number of streaming interfaces
> 12 bInterfaceNr(1) 1 0x01 VS interface 1 belongs to this VCI
>
>
> Input Terminal Descriptor (CCD Camera):
> Offset Field Size Value Description
> 0 bLength 1 0x11 Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x02 VC_INPUT_TERMIANAL
> 3 BTerminalID 1 0x01 ID of this terminal
> 4 wTerminalType 2 0x201 ITT_CAMERA type
> 6 bAssocTerminal 1 0x00 No association
> 7 iTerminal 1 0x00 Unused
> 8 wObjectFocalLenghtMin 2 0x0000 No optimal zoom
> 10 wObjectFocalLenghtMax 2 0x0000 No optimal zoom
> 12 wOcularFocalLength 2 0x0000 No optimal zoom
> 14 bControlSize 1 0x02 2 byte
> 15 bmControls 2 0x0000 No control supported
>
>
> Processing Unit Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0B Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x05 VC_PROCESSING_UNIT
> 3 bUnitID 1 0x02 ID of this unit
> 4 bSourceID 1 0x01 Input pin connected with
> 5 wMaxMultiplier 2 0x0000 Unused
> 7 bControlSize 1 0x02 2 bytes
> 8 bmControls 2 0x0001 Brightness control support
> 10 iProcessing 1 0x00 Unused
>
>
> Extension Unit Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x1A Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x05 VC_PROCESSING_UNIT
> 3 bUnitID 1 0x05 ID of this unit
> 4 guidExtensionCode 16 GUID Vendor specific code
> 20 bNumControls 1 0x00 Number of controls
> 21 bNrInPins 1 0x01 Number of input pin
> 22 bSourceID 1 0x02 Id of Unit or terminal to which pin is connected
> 23 bControlSize 1 0x02 2 bytes
> 24 bmControls 1 0x0000 Control supported (vendor-specific)
> 25 iExtension 1 0x02 Index of string descriptor
>
>
> Output Terminal Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x03 VC_OUTPUT_TERMINAL
> 3 bTerminalID 1 0x03 ID of this terminal
> 4 wTerminalType 1 0x0101 This is USB streaming terminal
> 6 bAssocTermianal 2 0x00 No association
> 7 bSourceID 1 0x05 Pin connection
> 8 iTerminal 1 0x00 Unused
>
>
> Standard end point Descriptor (Interrupt):
>
> Offset Field Size Value Description
> 0 Blength 1 0x07 Size of descriptor
> 1 bDescriptorType 1 0x05 ENDPOINT descriptor
> 2 bEndpointAddress 1 0x81 IN endpoint 1
> 3 bmAttributes 1 0x03 Interrupt transfer type
> 4 wMaxPacketsize 2 0x0008 8 byte status packet
> 6 bInterval 1 0x20 Poll at every 32ms
>
> Class-specific end point descriptor (Interrupt):
> Offset Field Size Value Description
> 0 bLength 1 0x05 Size of descriptor
> 1 bDescriptorType 1 0x25 CS_ENDPOINT descriptor
> 2 bDescriptorSubType 1 0x03 EP_INTERRUPT
> 4 wMaxTransferSize 2 0x0008 8 byte status packet
>
>
> Standard VS interface descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 2 bInterfaceNumber 1 0x01 Index of this interface
> 3 bAlternateSetting 1 0x00 Index of this setting
> 4 bNumEndPoints 1 0x00 0 EP (Default EP)
> 5 bInterfaceClass 1 0x0E CC_VIDEO
> 6 bInterfaceSubClass 1 0x02 SC_VIDEOSTREAMING
> 7 bInterfaceProtocol 1 0x00 Not used
> 8 iInterface 1 0x00 Index of string Descriptor
>
> Class-specific VS Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0E Size of descriptor
> 1 bDescriptorTyupe 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x01 VS_INPUT_HEADER
> 3 bNumformats 1 0x01 One descriptor follow
> 4 wTotallength 2 0x003F Total size of VS block
> 6 bEndpointAddress 1 0x82 Address of isochronous EP
> 7 bmInfo 1 0x00 No dynamic format
> 8 bTerminalLink 1 0x03 Terminal ID
> 9 bStollCaptureMethod 1 0x01 Still image capture method 1
> 10 btriggerSupport 1 0x01 Hardware trigger
> 11 bTriggerUsage 1 0x00 Still image initiate by h/w
> 12 bControlsize 1 0x01 1 byte
> 13 bmaControls 1 0x00 Not supported
>
>
> Class-specific VS Header Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0E Size of the descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x01 VS_INPUT_HEADER
> 3 bNumFormats 1 0x01 One format descriptor
> 4 wTotallength 2 0x004F Total size of VS interface descriptor
> 6 bEndpointAddress 1 0x82 Address of Isochronous endpoint
> 7 bmInfo 1 0x00 No dynamic Format
> 8 bTerminalLink 1 0x03 Out terminal ID
> 9 bStillCaptureMethod 1 0x01 Still image method 1
> 10 bTriggerSupport 1 0x01 h/w trigger still image
> 11 bTriggerUsage 1 0x00 h/w initiate image capture
> 12 bControlSize 1 0x01 1 byte
> 13 bmaControls 1 0x00 No control
>
>
> Class-specific VS Format Descriptor
> Offset Field Size Value Description
> 0 bLength 1 0x1B Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDesriptorSubtype 1 0x04 VS_FORMATE_UNCOMPRESSED
> 3 bFormatIndex 1 0x01 Index of this descriptor
> 4 bNumFrameDescriptors 1 0x01 Number of frame descriptor
> 5 guidFormat 16 GUID GUID of stream-encoding format
> 21 bBitsPerPixel 1 0x08 Number of bits per pixel
> 22 bDefaultFrameIndex 1 0x00 Optimum Frame Index
> 23 bAspectRatioX 1 0x04 X dimension of picture aspect(1024)
> 24 bAspectRatioY 1 0x03 Y dimension of picture aspect(768)
> 25 bmInterfaceFlags 1 0x06 Specified non-interlace information
> 26 bCopyProtect 1 0x00 No restriction
>
>
> Class-specific VS Frame Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x26 Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x05 VS_FRAME_UNCOPMRESSED
> 3 bFrameIndex 1 0x01 Index of this descriptor
> 4 bmCapabilities 1 0x03 Capabilities
> 5 wWidth 2 0x0400 Width of decoded frame in pixel
> 7 wHeight 2 0x0300 Height of decoded frame in pixel
> 9 dwMinBitRate 4 Min transmit bit rate
> 13 dwMaxtRate 4 Max transmit bit rate
> 17 dwMaxVideoFrameBufferSize 4 Video frame size
> 21 dwDefaultFrameInerval 4 Frame interval
> 25 bFrameIntervalType 1 0x00 How frame interval can be programmed
> (continuous)
> 26 dwMinFrameInterval 4 Shorted frame interval Supported
> 30 dwMaxFrameInterval 4 Longest frame interval supported
> 34 dwFrameIntervalStep 4 Granularity of frame interval
>
> Standard VS Interface descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 2 bInterfaceNumber 1 0x01 Index of this interface
> 3 bAlternateSetting 1 0x01 Index of this setting
> 4 bNumEndPoints 1 0x01 0 endpoints
> 5 bInterfaceClass 1 0x0E CC_VIDEO
> 6 bInterfaceSubClass 1 0x02 SC_VIDEOSTREAM
> 7 bInterfaceProtocol 1 0x00 Not used
> 8 iInterface 1 0x00 Index of string Descriptor
>
> Standard VS endpoint descriptor (Isochronous):
> Offset Field Size Value Description
> 0 bLength 1 0x07 Size of the Descriptor
> 1 bDescriptorType 1 0x05 Endpoint
> 2 bEndpointAddress 1 0x82 IN Endpoint 2
> 3 bmAttributes 1 0x01 Isochronous transfer
> 4 wMaxPacketSize 2 0x0400 Max packet size 1024
> 6 bInterval 1 0x01 One frame interval


 
Unread 29-11-2007, 11:52 PM   #7
montu.rathod@gmail.com
Guest
 
Posts: n/a
Re: usb video device

Hi,

Thank you. I filled most the descriptor fields.

I am supporing 15 fps (frame per second).
So as per my knowledge dwDefaultFrameInerval valuse should be
(1/fps) * 100 *10^--9 = 666666.
but i am not able to calculate dwMinFrameInterval, dwMaxFrameInterval
and dwFrameIntervalStep.

Kindly provide the answer for this.

thanks & regards,
Montu



montu.rathod@einfochips.com wrote:
> Hi,
> we are developing usb video device.
> we have gone through usb video specification 1.1 docs.
> but few descriptor fields are not clear to us, like
>
> in Video frame descriptor
> dwMinBitRate
> dwMaxtRate
> dwMaxVideoFrameBufferSize
> dwDefaultFrameInerval
> bFrameIntervalType
> dwMinFrameInterval
> dwMaxFrameInterval
> dwFrameIntervalStep
>
> and in Class-specific VC Interface Descriptor
> dwClockFrequency
>
> And we have choose uncopmressed dat stream, we dont know how host will
> identify the SOF and end of frem?
>
> Please help me.
>
> All descriptor are as bellow:
>
> Get Descriptor (Device)
> Offset Field Size Value Description
> 0 bLength 1 0x12 Size of the Descriptor
> 1 bDescriptoType 1 0x01 DEVICE Descriptor
> 2 bcdUSB 2 0x0200 2.00 USB Specification
> 4 bDeviceClass 1 0xEF Miscellaneous Class
> 5 bDeviceSubClass 1 0x02 Common Class
> 6 bDevcieProtocol 1 0x01 IAD
> 7 bMaxPacketSize0 1 0x40 Control EP packet size is 64 bytes
> 8 idVendor 2 0xXXXX Vendor ID
> 10 idProduct 2 0xXXXX Product ID
> 12 bcdDevice 2 0xXXXX Device Release code
> 14 iManufacturer 1 0x01 Index to string descriptor
> 15 Iproduct 1 0x02 Index to string descriptor
> 16 iSerialNumber 1 0x00 Unused
> 17 bNumConfigurations 1 0x01 One Configuration
>
>
> Standard Configuration Descriptor
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptoType 1 0x02 CONFIGURATION Descriptor
> 2 wTotalLength 2 0x00BF Length of total Configuration block
> 4 bnumInterfaces 1 0x02 This Device has two Interfaces
> 5 bConfigurationValue 1 0x01 ID of this Configuration
> 6 iConfiguration 1 0x00 Unused
> 7 bmAttribute 1 0x80 Bus-powered device
> 8 bMaxPower 1 0xFA 500 mA power
>
> Offset Field Size Value Description
> 0 bLength 1 0x08 Size of Descriptor
> 1 bDescriptorType 1 0x0B IAD Descriptor
> 2 bFirstInterface 1 0x00 Interface Number of VC Interface
> 3 bInterfaceCount 1 0x02 Number of Contiguous video interfaces
> 4 bFunctionClass 1 0x0E CC_VIDEO
> 5 bFunctionSubClass 1 0x03 Video collection
> 6 bFunctionProtocol 1 0x00 Not used
> 7 iFunction 1 0x02 Index to string descriptor
>
>
> Standard VC Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 3 bInterfaceNumber 1 0x00 Index of this interface
> 4 bAlternateSetting 1 0x00 Index of this setting
> 5 bNumEndPoints 1 0x01 1 EP (Interrupt EP)
> 6 bInterfaceClass 1 0x0E CC_VIDEO
> 7 bInterfaceSubClass 1 0x03 SC_VIDEOCONTROL
> 8 bInterfaceProtocol 1 0x00 Not used
> 9 iInterface 1 0x02 Index of string Descriptor
>
>
> Class-specific VC Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0D
> Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x01 VC_HEADER
> 3 bcdUVC 2 0x0110 Video class specification 1.1
> 5 wTotalLength 2 0x004C Total size of class specific descriptor
> 7 dwClockFrequency 4 0xXXXXXXXX -
> 11 bInCollection 1 0x01 Number of streaming interfaces
> 12 bInterfaceNr(1) 1 0x01 VS interface 1 belongs to this VCI
>
>
> Input Terminal Descriptor (CCD Camera):
> Offset Field Size Value Description
> 0 bLength 1 0x11 Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x02 VC_INPUT_TERMIANAL
> 3 BTerminalID 1 0x01 ID of this terminal
> 4 wTerminalType 2 0x201 ITT_CAMERA type
> 6 bAssocTerminal 1 0x00 No association
> 7 iTerminal 1 0x00 Unused
> 8 wObjectFocalLenghtMin 2 0x0000 No optimal zoom
> 10 wObjectFocalLenghtMax 2 0x0000 No optimal zoom
> 12 wOcularFocalLength 2 0x0000 No optimal zoom
> 14 bControlSize 1 0x02 2 byte
> 15 bmControls 2 0x0000 No control supported
>
>
> Processing Unit Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0B Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x05 VC_PROCESSING_UNIT
> 3 bUnitID 1 0x02 ID of this unit
> 4 bSourceID 1 0x01 Input pin connected with
> 5 wMaxMultiplier 2 0x0000 Unused
> 7 bControlSize 1 0x02 2 bytes
> 8 bmControls 2 0x0001 Brightness control support
> 10 iProcessing 1 0x00 Unused
>
>
> Extension Unit Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x1A Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x05 VC_PROCESSING_UNIT
> 3 bUnitID 1 0x05 ID of this unit
> 4 guidExtensionCode 16 GUID Vendor specific code
> 20 bNumControls 1 0x00 Number of controls
> 21 bNrInPins 1 0x01 Number of input pin
> 22 bSourceID 1 0x02 Id of Unit or terminal to which pin is connected
> 23 bControlSize 1 0x02 2 bytes
> 24 bmControls 1 0x0000 Control supported (vendor-specific)
> 25 iExtension 1 0x02 Index of string descriptor
>
>
> Output Terminal Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubType 1 0x03 VC_OUTPUT_TERMINAL
> 3 bTerminalID 1 0x03 ID of this terminal
> 4 wTerminalType 1 0x0101 This is USB streaming terminal
> 6 bAssocTermianal 2 0x00 No association
> 7 bSourceID 1 0x05 Pin connection
> 8 iTerminal 1 0x00 Unused
>
>
> Standard end point Descriptor (Interrupt):
>
> Offset Field Size Value Description
> 0 Blength 1 0x07 Size of descriptor
> 1 bDescriptorType 1 0x05 ENDPOINT descriptor
> 2 bEndpointAddress 1 0x81 IN endpoint 1
> 3 bmAttributes 1 0x03 Interrupt transfer type
> 4 wMaxPacketsize 2 0x0008 8 byte status packet
> 6 bInterval 1 0x20 Poll at every 32ms
>
> Class-specific end point descriptor (Interrupt):
> Offset Field Size Value Description
> 0 bLength 1 0x05 Size of descriptor
> 1 bDescriptorType 1 0x25 CS_ENDPOINT descriptor
> 2 bDescriptorSubType 1 0x03 EP_INTERRUPT
> 4 wMaxTransferSize 2 0x0008 8 byte status packet
>
>
> Standard VS interface descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 2 bInterfaceNumber 1 0x01 Index of this interface
> 3 bAlternateSetting 1 0x00 Index of this setting
> 4 bNumEndPoints 1 0x00 0 EP (Default EP)
> 5 bInterfaceClass 1 0x0E CC_VIDEO
> 6 bInterfaceSubClass 1 0x02 SC_VIDEOSTREAMING
> 7 bInterfaceProtocol 1 0x00 Not used
> 8 iInterface 1 0x00 Index of string Descriptor
>
> Class-specific VS Interface Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0E Size of descriptor
> 1 bDescriptorTyupe 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x01 VS_INPUT_HEADER
> 3 bNumformats 1 0x01 One descriptor follow
> 4 wTotallength 2 0x003F Total size of VS block
> 6 bEndpointAddress 1 0x82 Address of isochronous EP
> 7 bmInfo 1 0x00 No dynamic format
> 8 bTerminalLink 1 0x03 Terminal ID
> 9 bStollCaptureMethod 1 0x01 Still image capture method 1
> 10 btriggerSupport 1 0x01 Hardware trigger
> 11 bTriggerUsage 1 0x00 Still image initiate by h/w
> 12 bControlsize 1 0x01 1 byte
> 13 bmaControls 1 0x00 Not supported
>
>
> Class-specific VS Header Descriptor:
>
> Offset Field Size Value Description
> 0 bLength 1 0x0E Size of the descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x01 VS_INPUT_HEADER
> 3 bNumFormats 1 0x01 One format descriptor
> 4 wTotallength 2 0x004F Total size of VS interface descriptor
> 6 bEndpointAddress 1 0x82 Address of Isochronous endpoint
> 7 bmInfo 1 0x00 No dynamic Format
> 8 bTerminalLink 1 0x03 Out terminal ID
> 9 bStillCaptureMethod 1 0x01 Still image method 1
> 10 bTriggerSupport 1 0x01 h/w trigger still image
> 11 bTriggerUsage 1 0x00 h/w initiate image capture
> 12 bControlSize 1 0x01 1 byte
> 13 bmaControls 1 0x00 No control
>
>
> Class-specific VS Format Descriptor
> Offset Field Size Value Description
> 0 bLength 1 0x1B Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDesriptorSubtype 1 0x04 VS_FORMATE_UNCOMPRESSED
> 3 bFormatIndex 1 0x01 Index of this descriptor
> 4 bNumFrameDescriptors 1 0x01 Number of frame descriptor
> 5 guidFormat 16 GUID GUID of stream-encoding format
> 21 bBitsPerPixel 1 0x08 Number of bits per pixel
> 22 bDefaultFrameIndex 1 0x00 Optimum Frame Index
> 23 bAspectRatioX 1 0x04 X dimension of picture aspect(1024)
> 24 bAspectRatioY 1 0x03 Y dimension of picture aspect(768)
> 25 bmInterfaceFlags 1 0x06 Specified non-interlace information
> 26 bCopyProtect 1 0x00 No restriction
>
>
> Class-specific VS Frame Descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x26 Size of Descriptor
> 1 bDescriptorType 1 0x24 CS_INTERFACE
> 2 bDescriptorSubtype 1 0x05 VS_FRAME_UNCOPMRESSED
> 3 bFrameIndex 1 0x01 Index of this descriptor
> 4 bmCapabilities 1 0x03 Capabilities
> 5 wWidth 2 0x0400 Width of decoded frame in pixel
> 7 wHeight 2 0x0300 Height of decoded frame in pixel
> 9 dwMinBitRate 4 Min transmit bit rate
> 13 dwMaxtRate 4 Max transmit bit rate
> 17 dwMaxVideoFrameBufferSize 4 Video frame size
> 21 dwDefaultFrameInerval 4 Frame interval
> 25 bFrameIntervalType 1 0x00 How frame interval can be programmed
> (continuous)
> 26 dwMinFrameInterval 4 Shorted frame interval Supported
> 30 dwMaxFrameInterval 4 Longest frame interval supported
> 34 dwFrameIntervalStep 4 Granularity of frame interval
>
> Standard VS Interface descriptor:
> Offset Field Size Value Description
> 0 bLength 1 0x09 Size of Descriptor
> 1 bDescriptorType 1 0x04 INTERFACE Descriptor
> 2 bInterfaceNumber 1 0x01 Index of this interface
> 3 bAlternateSetting 1 0x01 Index of this setting
> 4 bNumEndPoints 1 0x01 0 endpoints
> 5 bInterfaceClass 1 0x0E CC_VIDEO
> 6 bInterfaceSubClass 1 0x02 SC_VIDEOSTREAM
> 7 bInterfaceProtocol 1 0x00 Not used
> 8 iInterface 1 0x00 Index of string Descriptor
>
> Standard VS endpoint descriptor (Isochronous):
> Offset Field Size Value Description
> 0 bLength 1 0x07 Size of the Descriptor
> 1 bDescriptorType 1 0x05 Endpoint
> 2 bEndpointAddress 1 0x82 IN Endpoint 2
> 3 bmAttributes 1 0x01 Isochronous transfer
> 4 wMaxPacketSize 2 0x0400 Max packet size 1024
> 6 bInterval 1 0x01 One frame interval


 
Unread 29-11-2007, 11:54 PM   #8
Tim Roberts
Guest
 
Posts: n/a
Re: usb video device

montu.rathod*********** wrote:
>
>Thank you. I filled most the descriptor fields.
>
>I am supporing 15 fps (frame per second).
>So as per my knowledge dwDefaultFrameInerval valuse should be
>(1/fps) * 100 *10^--9 = 666666.
>but i am not able to calculate dwMinFrameInterval, dwMaxFrameInterval
>and dwFrameIntervalStep.


If you are supporting ONLY 15 fps, then your max frame interval and your
min frame interval are the same as your default frame interval.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
 
Unread 29-11-2007, 11:54 PM   #9
Tim Roberts
Guest
 
Posts: n/a
Re: usb video device

montu.rathod*********** wrote:
>
>Thank you. I filled most the descriptor fields.
>
>I am supporing 15 fps (frame per second).
>So as per my knowledge dwDefaultFrameInerval valuse should be
>(1/fps) * 100 *10^--9 = 666666.
>but i am not able to calculate dwMinFrameInterval, dwMaxFrameInterval
>and dwFrameIntervalStep.


If you are supporting ONLY 15 fps, then your max frame interval and your
min frame interval are the same as your default frame interval.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
 
Unread 29-11-2007, 11:54 PM   #10
Tim Roberts
Guest
 
Posts: n/a
Re: usb video device

montu.rathod*********** wrote:
>
>Thank you. I filled most the descriptor fields.
>
>I am supporing 15 fps (frame per second).
>So as per my knowledge dwDefaultFrameInerval valuse should be
>(1/fps) * 100 *10^--9 = 666666.
>but i am not able to calculate dwMinFrameInterval, dwMaxFrameInterval
>and dwFrameIntervalStep.


If you are supporting ONLY 15 fps, then your max frame interval and your
min frame interval are the same as your default frame interval.
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
 
 

Thread Tools
Display Modes



< Home - Windows Help - MS Office Help - Hardware Support >


New To Site? Need Help?

All times are GMT. The time now is 09:01 AM.


vBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO
Copyright © 2005-2013, TechTalkz.com. All Rights Reserved - Privacy Policy
Valid XHTML 1.0 Transitional