Skip site navigation (1)Skip section navigation (2)
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>