Hi Sebastian,

On Friday 07 October 2011 14:00:03 Sebastian Arcus wrote:
> On 07/10/11 10:42, Alexey Fisher wrote:
> > Am 07.10.2011 10:59, schrieb Sebastian Arcus:
> >> On 06/10/11 17:28, Alexey Fisher wrote:
> >>> On 06.10.2011 18:16, Sebastian Arcus wrote:
> >>>> On 06/10/11 15:59, Alexey Fisher wrote:
> >>>>> On 06.10.2011 14:32, Sebastian Arcus wrote:
> >>>>>> Hello list,
> >>>>>> 
> >>>>>> The above two cameras, which have the well known usb bandwidth bug
> >>>>>> under Linux don't seem to display the same problems under Windows.
> >>>>>> I've tried them under Windows Vista and Windows 7 32bit. I've managed
> >>>>>> to display a LifeCam Studio and LifeCam Cinema at the same time
> >>>>>> through separate instances of VLC all the way to 1920x1080 for
> >>>>>> LifeCam Studio and 1280x720 for the LifeCam Cinema - which I believe
> >>>>>> are the maximum video resolutions for both cameras. I've forced VLC
> >>>>>> on 25fps - and the Cinema seems to do that. However, looking at the
> >>>>>> footage from the Studio at maximum resolution - it looks more like
> >>>>>> 5fps.
> >>>>>> 
> >>>>>> However, what all the above means is that these cameras don't seem to
> >>>>>> suffer from the usb bandwidth bug under Windows. I've input "mjpg"
> >>>>>> under chroma settings for VLC - but I can't find a way to tell for
> >>>>>> sure if VLC is using the mjpeg stream from the camera, or raw.
> >>>>>> 
> >>>>>> Can someone here help me push this further? Is there any way of
> >>>>>> debugging what is happening under Windows - so that maybe the Linux
> >>>>>> uvc> driver can be modified to get these cameras to work properly?
> >>>>> 
> >>>>> Probably usb sniffing will be most correct option, but currently i'll
> >>>>> would not interpret usb dump.
> >>>>> Other option is visual test:
> >>>>> - Jpeg stream has lower quality, try it under linux and you will see
> >>>>> the difference.
> >>>>> - according to frame rate the webcam controller will change
> >>>>> demosaicing algorithm. Simple alorithm produce pure qualithy, and
> >>>>> image looks like up scaled image from smaller image. Logitech webcams
> >>>>> use better algorithm before 15 fps and pure after 15 fps.
> >>>>> - you can check frame rate by capturing some timer with milliseconds:
> >>>>> http://tools.arantius.com/stopwatch
> >>>> 
> >>>> Thank you Alexey. Looking at the quality of the footage - I would
> >>>> guess it is not mjpeg. However, it still means that the camera is not
> >>>> grabbing all the available usb bandwidth like it does under Linux -
> >>>> which is good news.
> >>> 
> >>> Then try bandwidth quirk:
> >>> sudo rmmod&& sudo modprobe uvcvideo quirks=0x80
> >>> But reduce frame rate, 1280x720 at 30 fps will take complete bindwidth,
> >>> try 10fps if you wont to use two webcams.
> >> 
> >> Anybody knows if I can use VLC or some other software under windows to
> >> view the mjpeg stream? I could then test how many cameras I can use at
> >> the same time under Windows with mjpeg. This should tell us if the
> >> Windows driver doesn't have any of the usb bandwidth problems which
> >> exist under Linux for these cameras.
> > 
> > It is not a driver problem,
> > 
> > the webcam tell how match it need, the driver will give it. If cam tell
> > it need every thing we have, the driver will give it. It is defined
> > behavior of UVC, if device is broken, there is nothing driver can do. I
> > will not wonder if Microsoft will have quirks for devices it produce.
> > For some time i send here some jpeg patches, you can test it on your own
> > risk and force the bandwidth. But this patches will probably never go to
> > upstream.
> 
> Thanks Alexey. What I was suggesting is that, under Windows, the camera
> doesn't seem to suffer from this bug - as it is possible to run two of
> them at the same time. I don't know how this is accomplished, I don't
> know if the Windows driver makes use of special signalling to stop the
> camera from asking for all the available usb bandwidth. I was only
> thinking that if it would be possible to find out how the camera is
> "convinced" to not asked for full bandwidth under Windows - maybe that
> can be replicated in the uvc driver under Linux.

I don't think Windows tells the camera to use less bandwidth. I obviously 
can't tell for sure what the Windows driver does, but I expected it to either

- use heuristics to compute the amount of bandwidth a webcam really requires
- have device-specific quirks (quite unlikely though, unless the webcam comes 
with its specific driver)
- allow allocation of more than 80% of the USB bandwidth to periodic USB 
transfers

If I'm not mistaken Linux recently got support for the third option, maybe 
this could help you. Details can be found on the linux-usb mailing list AFAIR.

Another option would be to snoop USB transfers in Windows to find out how much 
bandwidth the webcam requests and how much bandwidth Windows allocates.

> However, I know almost nothing about the intricacies of the uvc standard and
> the corresponding Linux (or Windows) implementation - that is why I was
> asking if there is anyway to probe the uvc driver in Windows and find out
> more that way.

-- 
Regards,

Laurent Pinchart
_______________________________________________
Linux-uvc-devel mailing list
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to