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