Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jan 2007 10:32:05 -0800
From:      Luigi Rizzo <rizzo@icir.org>
To:        marcus@freebsd.org
Cc:        steve@energistic.com, multimedia@freebsd.org
Subject:   pwlib patch for proper video4l device detection
Message-ID:  <20070117103205.A22896@xorpc.icir.org>

next in thread | raw e-mail | index | archive | help
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?20070117103205.A22896>