Pre-release of webcamd [v0.2.4]

Hans Petter Selasky hselasky at c2i.net
Wed Jun 1 11:10:36 UTC 2011


On Wednesday 01 June 2011 12:25:05 Boris Samorodov wrote:
> Hi,
> 
> On Wed, 1 Jun 2011 11:50:13 +0200 Hans Petter Selasky wrote:
> > On Wednesday 01 June 2011 11:41:13 Boris Samorodov wrote:
> > > Running:
> > > -----
> > > % pwcview
> > > Webcam set to: 320x240 (sif) at 5 fps    # OK (shaky, but it's 5 fps)
> > > % pwcview -f 30
> > > Webcam set to: 320x240 (sif) at 30 fps   # shaky video, (5 fps?)
> > > % pwcview -s vga
> > > Webcam set to: 640x480 (vga) at 5 fps    # seems to use 30 fps
> > > % pwcview -s vga -f 5
> > > Webcam set to: 640x480 (vga) at 5 fps    # seems to use 30 fps
> > > -----
> > > 
> > > Thanks!
> > 
> > Hi,
> > 
> > The shakyness
> 
> I'm not sure if my english is good here. When I say "shaky" it means
> that video is stable (fixed) for some moments, than changes and stable
> again. But it's OK for the first command since 5 fps is the default
> according to PWCVIEW(1) and video changes about 5 times per second.
> 
> The problem is with the second video which should change 30 times
> per second. It does not. And I'm not sure that a buffer change may
> help here since I get good vga (-s vga) video with 30 fpc (i.e.
> existing buffers allows it).
> 
> The next problem is that just with the option "-s vga" the resulting
> fps should be 5 (the default). But I get a good 30 fps video.
> 
> And the last problem is that adding "-f 5" to "-s vga" option
> does not result in 5 fps video -- I get good 30 fps video!
> 
> > I think can be fixed by increasing the buffer size used by UVC
> > video driver, it is currently very small, only 2*7ms:
> > 
> > Index: patches/uvcvideo.h.diff
> > ===================================================================
> > --- patches/uvcvideo.h.diff     (revision 1788)
> > +++ patches/uvcvideo.h.diff     (working copy)
> > @@ -8,7 +8,7 @@
> > 
> >  +#define UVC_URBS              2
> >  
> >   /* Maximum number of packets per URB. */
> >  
> >  -#define UVC_MAX_PACKETS               32
> > 
> > -+#define UVC_MAX_PACKETS               56
> > ++#define UVC_MAX_PACKETS               (8*16) /* ms/8 for HighSpeed */
> > 
> >   /* Maximum number of video buffers. */
> >   #define UVC_MAX_VIDEO_BUFFERS 32
> >   /* Maximum status buffer size in bytes of interrupt URB. */
> 
> However I tested the patch with webcamd 0.1.26 (just editted by hand
> the existing patch, rebuild/reinstall webcamd, replug my cam).
> Nothing has changed.
> 
> > This value should be dynamic depending on various factors like device
> > speed and endpoint configuration. I have found any time yet to make the
> > change.

Hi,

 /* Maximum number of video buffers. */
 #define UVC_MAX_VIDEO_BUFFERS  32

Then it might be the video buffer which is too small? Try tuning other 
variables and/or build webcamd with debugging support. And turn on the 
debugging with -s and -m options for webcamd.

--HPS


More information about the freebsd-multimedia mailing list