webcamd/cuse4bsd && Skype

Hans Petter Selasky hselasky at c2i.net
Tue Jan 3 21:30:48 UTC 2012


On Tuesday 03 January 2012 19:15:38 Matthias Apitz wrote:
> El día Tuesday, January 03, 2012 a las 09:24:08AM +0100, Hans Petter Selasky 
escribió:
> > Hi,
> > 
> > > (u32)(long)arg, when passing to IOCTL functions.
> > 
> > I meant printing the "cmd" value. "arg" value can be negative if a
> > pointer is passed along.
> > 
> > Try to figure out which ioctl is failing. Maybe run webcamd from gdb and
> > add some code you can break-point on, then single step.
> 
> Hi,
> 

Hi,

> The failing ioctls are (only 2 are sent down from Skype):
> 
> Creating /dev/video0
> mydebug: v4b_open fflags: 00000003
> mydebug: linux_open: handle=28c08600
> mydebug: v4b_ioctl: handle=28c08600 cmd=0x40047601
> mydebug: linux_ioctl returns: error=ffffffea
> mydebug: v4b_convert_error: CUSE_ERR_INVALID

#define VIDIOC_G_FMT            _IOWR('V',  4, struct v4l2_format)

#define VIDIOC_S_CROP            _IOW('V', 60, struct v4l2_crop)

Try to print the two above IOCTL's and see if they match.

It might be a compile issues that some structures have different sizes than 
expected.

> mydebug: v4b_ioctl: handle=28c08600 cmd=0x403c7601
> mydebug: linux_ioctl returns: error=ffffffea
> mydebug: v4b_convert_error: CUSE_ERR_INVALID
> mydebug: v4b_close: handle=28c08600
> 

> (cmd is printed as 'cmd=0x%08x')

The cmds are defined in the header files in /usr/local/include/linux/*/*

Also there might be a module parameter that will get you more debugging info 
from the UVC/PWC driver. Check output from "webcamd -s".

--HPS


More information about the freebsd-multimedia mailing list