On Mon, Jul 19, 2010 at 09:23:49AM +0200, Remco wrote:
> Jona Joachim wrote:
> 
> > Hi,
> > I have a Logitech C200 webcam which includes a uvideo and a uaudio
> > device for voice recording.
> > 
> > The video part works correctly and is usable, however uaudio is not so
> > happy, it complains in dmesg and no audio(4) device is attached:
> > uaudio0: audio descriptors make no sense, error=4
> > 
> 
> > 
> > Does anybody know what may be wrong here?
> > 
> 
> A USB device has descriptions of its capabilities stored in descriptor
> subsets.
> 
> What may be wrong is that one of the descriptor subsets has its size
> specified off by one (e.g., the size is one byte too small). In such case
> this specific descriptor subset will not parse. I've got a Logitech C500
> that seems to have this problem. (also for one of the audio descriptor
> subsets)
> 
> Ignoring the sizes of the descriptor subsets will make the descriptors parse
> properly. The only size check will be a boundary check based on the full
> descriptor set. (I haven't managed to implement this in the driver though
> and I'm not sure this is a good idea anyway because it removes a sanity
> check)
> 
> I found this out by fooling around with parsing descriptors from user space.
> (after disabling uaudio and having the device attach as ugen)
> 
> So likely you've got a device that doesn't adhere to the USB audio
> specifications.

it's not all that uncommon for fields at the end to be "missing".
usually, such fields should be treated as if their value is 0.

-- 
jake...@sdf.lonestar.org
SDF Public Access UNIX System - http://sdf.lonestar.org


Reply via email to