Date: Sat, 30 May 2009 12:32:54 +0200 From: Matthias Apitz <guru@unixarea.de> To: Luigi Rizzo <rizzo@iet.unipi.it> Cc: freebsd-multimedia@freebsd.org, freebsd-emulation@freebsd.org, Hans Petter Selasky <hselasky@freebsd.org> Subject: Re: Skype-2.0 is here! Message-ID: <20090530103254.GA3368@current.Sisis.de> In-Reply-To: <20090530090540.GC46541@onelab2.iet.unipi.it> References: <200804142217.17035.beech@FreeBSD.org> <20090530070025.GA2465@current.Sisis.de> <200905300955.34102.hselasky@freebsd.org> <20090530090540.GC46541@onelab2.iet.unipi.it>
next in thread | previous in thread | raw e-mail | index | archive | help
El día Saturday, May 30, 2009 a las 11:05:40AM +0200, Luigi Rizzo escribió: > On Sat, May 30, 2009 at 09:55:32AM +0200, Hans Petter Selasky wrote: > > > > Hi all, > > > > We need some common effort to get Video4Linux USB devices working on FreeBSD. > > First of all we need to push a video4linux library. > > > > -lvideodevx > > > > Methods: > > > > int videodevx_open(int unit); /* returns a handle, not neccesarily a > > file-handle */ > > int videodevx_read(int hdl, ptr, len); > > int videodevx_write(int hdl, ptr, len); > > int videodevx_ioctl(int hdl, cmd, arg); > > int videodevx_mmap(int hdl, void *addr, size_t len, int prot, int flags, int > > fd, off_t offset); > > int videodevx_getfd(int hdl); /* used for polling */ > > int videodevx_close(int hdl); > > > > Some work in progress is available from: > > > > svn --username anonsvn --password anonsvn \ > > checkout svn://svn.turbocat.net/i4b/trunk/usbcam > > > > Download "linux-2.6.29" to "ulinux/linux" > > > > cd ulinux > > > > make clean all > > > > NOTE: It's not linking yet. > > > > Second, we need a userland port for Video4Linux, which I am working on. So > > that the application directly receives the USB data and talks to the webcam > > through -lvideodevx and the new BSD licensed -lusb . > > > > Third we need to convince everyone to use videodevx when opening video > > devices. On linux videodevx will simply be a wrapper for > > open/close/ioctl/... . On FreeBSD videodevx will be a complete USB webcam > > driver library. > > > > Anyone that wants to join heads? > > Excellent summary which covers the situation for native apps. > > I wonder if the case is a bit different for skype and linux binaries > in general, as they run under linux emulation so perhaps the > it is the linuxulator that has to emulate the v4l(2?) calls, > and i have no idea if this needs to be done in the kernel or we > can deal with this in some libc wrapper ? Some time ago (using RELENG_7) I did some effort to port Ekiga, PWLib and Opal out of SVN to FreeBSD because the port versions have been outdated at this time. I wanted to use the Ekiga client to connect to our Polycon VC system but there was a bug in the Polycon which could not decifer the video encoding and so this ended up for me in a dead project :-( old details are here: http://wiki.ekiga.org/index.php/Compile_your_own_SVN_version_of_Ekiga_on_FreeBSD In any case, there was support for video in ptlib/plugins/vidinput_v4l/vidinput_v4l.cxx and the only change I had to made to make it work in FreeBSD was the manner of picking up the /dev/video0 and not using the Linux major and minor number: #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]) { PINDEX num = MINOR(s.st_rdev); if (num <= 63 && num >= 0) { vid.SetAt(num, devname); } } } #endif the rest of the code was just working above the /dev/video0 device provided by the pwc.ko. I'm wondering if we could make use of the PTlib plug-in for this as well? To bring it under the linuxemulator is another story, though. CU matthias -- Matthias Apitz t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211 e <guru@unixarea.de> - w http://www.unixarea.de/ People who hate Microsoft Windows use Linux but people who love UNIX use FreeBSD.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090530103254.GA3368>