Date: Wed, 17 Jan 2007 14:26:56 -0500 From: "Steve Ames" <steve@virtual-voodoo.com> To: "Luigi Rizzo" <rizzo@icir.org> Cc: steve@energistic.com, marcus@freebsd.org, multimedia@freebsd.org Subject: Re: pwlib patch for proper video4l device detection Message-ID: <012301c73a6d$73ce3a90$d200040a@eservoffice.com> References: <20070117103205.A22896@xorpc.icir.org> <010b01c73a6c$a08db930$d200040a@eservoffice.com> <20070117112458.A23628@xorpc.icir.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Luigi Rizzo wrote: > On Wed, Jan 17, 2007 at 02:21:01PM -0500, Steve Ames wrote: >> No objections. I don't use video so I'm happy to see patches from >> people who are. Instead of using >> >> #if 1 >> >> could you use >> >> #if defined(P_FREEBSD) >> >> (or some other FreeBSD specific variable) instead so that this >> patch can be sent upstream and used on both FreeBSD and other OS? >> I'll happily forward the patch onto the powers that be at voxgratia. > > sure - it was just testing code Have at it then :) -steve > cheers > luigi > >> -Steve >> >> Luigi Rizzo wrote: >>> Hi pwlib maintainers (and multimedia people), >>> pwlib does the detection of video4linux devices using the >>> major/minor numbers, which makes no sense on FreeBSD where >>> we have devfs. >>> >>> The patch at >>> http://info.iet.unipi.it/~luigi/FreeBSD/patch-zz-vidinput_v4l fixes >>> this - it is relatively simple, see below (apart from >>> whitespace issues). >>> >>> If you don't have objections i would like to commit it to >>> the port, so that things like ekiga can access the webcams. >>> >>> Suitable v4l drivers are >>> in ports/multimedia/pwcbsd and at >>> http://info.iet.unipi.it/~luigi/FreeBSD/usb-cameras.html >>> >>> cheers >>> luigi >>> >>> --- plugins/vidinput_v4l/vidinput_v4l.cxx.orig Sat Jun 10 17:57:46 >>> 2006 +++ plugins/vidinput_v4l/vidinput_v4l.cxx Tue Jan 16 19:19:18 >>> 2007 @@ -474,7 +474,15 @@ >>> if (devdir.GetInfo(info) && info.type == >>> PFileInfo::CharDevice) { struct stat s; >>> if (lstat(devname, &s) == 0) { >>> - >>> +#if 1 >>> + int l = strlen(filename); >>> + int num = filename[l-1] - '0'; >>> + if (filename[0] == 'v' && filename[1] == 'i' && >>> filename[2] == 'd' && + num >= 0 && num < 10) { >>> + //cout << "reading device " << devname << " minor " << num >>> << "\n"; + 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]) { >>> @@ -484,6 +492,7 @@ >>> } >>> } >>> } >>> +#endif >>> } >>> } >>> }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?012301c73a6d$73ce3a90$d200040a>