Date: Wed, 17 Jan 2007 14:21:01 -0500 From: "Steve Ames" <steve@virtual-voodoo.com> To: "Luigi Rizzo" <rizzo@icir.org>, <marcus@freebsd.org> Cc: steve@energistic.com, multimedia@freebsd.org Subject: Re: pwlib patch for proper video4l device detection Message-ID: <010b01c73a6c$a08db930$d200040a@eservoffice.com> References: <20070117103205.A22896@xorpc.icir.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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. -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?010b01c73a6c$a08db930$d200040a>