2015-07-15 17:04 GMT+02:00 Martin Pieuchot <[email protected]>:
> On 15/07/15(Wed) 16:45, Ludovic Coues wrote:
>> Following is a diff adding missing USB descriptor to uvideo.h according
>> to USB Video spec 1.5 . It also update a couple of table reference from
>> spec 1.1 to 1.5
>
> Do not hesitate to explain *why* do you need that, it might not be clear
> to everybody on this list :)
>
Oh, right.
I'm working on an alternative to lsusb for my summer of code. By
design, I'm using pretty much every USB descriptor defined by the
spec.
>> Index: sys/dev/usb/uvideo.h
>> ===================================================================
>> RCS file: /cvs/src/sys/dev/usb/uvideo.h,v
>> retrieving revision 1.57
>> diff -u -p -r1.57 uvideo.h
>> --- sys/dev/usb/uvideo.h 9 Jul 2015 14:58:32 -0000 1.57
>> +++ sys/dev/usb/uvideo.h 14 Jul 2015 17:24:42 -0000
>> +/* Table 3-18: Still Image Frame Descriptor */
>> +struct usb_video_still_image_frame_desc {
>> + uByte bLength;
>> + uByte bDescriptorType;
>> + uByte bDescriptorSubtype;
>> + uByte bEndpointAddress;
>> + uByte bNumImageSizePatterns;
>> + uByte data[1];
>> +/* struct {
>> + uWord wWidth;
>> + wWord wHeight;
>> + } __packed size[1]; */
>> +/* uByte bNumCompressionPattern; */
>> +/* uByte bCompression[1]; */
>
> Why are they commented?
>
Mainly as a way to document the spec in the code.
I could remove the data field and uncomment the size field. I would be
pretty close to the spec and this struct could be filled with a
memcpy. But size would be a field of size 32 followed by two field of
size 8. I don't know how I could access bNumCompressionPattern or
bCompression in this case.
I choose instead of describing the data as code in a comment and
putting a field to allow access to the data. Maybe I should add macro
to access the 'ghost' field.
--
Cordialement, Coues Ludovic
+336 148 743 42