On Wed, Mar 19, 2008 at 01:09:46PM +0100, Matthias Apitz wrote: > Yes, it is an issue of major/minor numbers which are diffrent in Linux > and FreeBSD vor the cam; with this small change: > > # pwd > /usr/ports/devel/pwlib/work/pwlib_Phobos_release2/plugins/vidinput_v4l > # diff vidinput_v4l.cxx* > 462,464c462 > < // static const int deviceNumbers[] = { 81 }; > < // for FreeBSD's pwc driver the major number is 0 and minor is 146 > < static const int deviceNumbers[] = { 0 }; > --- > > static const int deviceNumbers[] = { 81 }; > 468,469c466 > < // if (num <= 63 && num >= 0) { > < if (num <= 146 && num >= 146) { > --- > > if (num <= 63 && num >= 0) { > > the driver attaches without any problem; to whom to talk about get this > integrated into pwlib?
The following patch exists in the freebsd port, does it already address this issue? --- plugins/vidinput_v4l/vidinput_v4l.cxx.orig Wed Jan 3 23:37:37 2007 +++ plugins/vidinput_v4l/vidinput_v4l.cxx Wed Feb 7 01:30:50 2007 @@ -484,6 +484,15 @@ struct stat s; if (lstat(devname, &s) == 0) { +#if defined(P_FREEBSD) + // device numbers are irrelevant here, so we match on names instead. + if (filename.GetLength() <= 5 || filename.Left(5) != "video") + continue; + int num = atoi(filename.Mid(6)); + if (num < 0 || num > 63) + continue; + vid.SetAt(num, devname); +#else static const int deviceNumbers[] = { 81 }; for (PINDEX i = 0; i < PARRAYSIZE(deviceNumbers); i++) { if (MAJOR(s.st_rdev) == deviceNumbers[i]) { @@ -493,6 +502,7 @@ } } } +#endif } } } _______________________________________________ ekiga-list mailing list ekiga-list@gnome.org http://mail.gnome.org/mailman/listinfo/ekiga-list