Ekiga3 and webcamd working (was: [FreeBSD 8/9] USB webcamd and
video4bsd: Call for testing)
Curtis Villamizar
curtis at occnc.com
Tue Feb 2 07:21:57 UTC 2010
Still playing with my netbook. I now have Ekiga3 running with
webcamd, video4bsd, libv4l.
The patches are *not* quite ready for prime time but if you also do a
"setenv LDFLAGS '-L /usr/local/lib'" or equiv for your shell it will
all work. The configure and Makefiles may need to be patched in
plugins/vidinput_v4l2 may need to be changed to have /usr/local/lib
added to the library search path correctly.
The patches are applied to devel/ptlib26 and are all tiny changes. A
few less PTRACE lines in vidinput_names.cxx might have been plenty.
The sound_oss.cxx patch creates four entries with dsp0, dsp1, dsp2,
dsp3, rather than four entries each with dsp0 in it.
The patches aren't quite right but it gets ekiga3 running with V4L2
for now. That said, I haven't tried a call yet, just the "View ->
Show Call Panel" and "View -> Local Video".
Curtis
-------------- next part --------------
--- Makefile.orig 2009-11-14 13:13:04.000000000 -0800
+++ Makefile 2010-02-01 22:39:54.000000000 -0800
@@ -31,6 +31,7 @@
OPTIONS= ODBC "Use ODBC" On \
V4L "Use Video4Linux" Off \
+ V4L2 "Use Video4BSD (incl V4L)" Off \
BSDVIDEO "Enable BSD video support" On \
SDL "Use SDL" On \
LDAP "Enable LDAP support" Off
@@ -64,6 +65,11 @@
PLIST_SUB+= BSDVIDEO="@comment "
.endif
+# if V4L2 is defined add V4L
+.if defined(WITH_V4L2)
+WITH_V4L=1
+.endif
+
.if defined(WITH_V4L)
CONFIGURE_ARGS+=--enable-v4l
PLIST_SUB+= V4L=""
@@ -74,6 +80,15 @@
PLIST_SUB+= V4L="@comment "
.endif
+.if defined(WITH_V4L2)
+CONFIGURE_ARGS+=--enable-v4l2
+PLIST_SUB+= V4L2=""
+BUILD_DEPENDS+= ${LOCALBASE}/include/libv4l2.h:${PORTSDIR}/multimedia/libv4l
+.else
+CONFIGURE_ARGS+=--disable-v4l2
+PLIST_SUB+= V4L2="@comment "
+.endif
+
.if defined(WITH_VIDEO)
CONFIGURE_ARGS+= --enable-video
PLIST_SUB+= VIDEODIR=""
-------------- next part --------------
--- pkg-plist.orig 2009-10-31 12:44:19.000000000 -0700
+++ pkg-plist 2010-02-01 22:37:06.000000000 -0800
@@ -163,6 +163,7 @@
lib/ptlib-%%PORTVERSION%%/devices/sound/oss_pwplugin.so
%%BSDVIDEO%%lib/ptlib-%%PORTVERSION%%/devices/videoinput/bsdvideo_pwplugin.so
%%V4L%%lib/ptlib-%%PORTVERSION%%/devices/videoinput/v4l_pwplugin.so
+%%V4L2%%lib/ptlib-%%PORTVERSION%%/devices/videoinput/v4l2_pwplugin.so
libdata/pkgconfig/ptlib.pc
%%DATADIR%%/make/common.mak
%%DATADIR%%/make/lib.mak
-------------- next part --------------
--- plugins/sound_oss/sound_oss.cxx.orig 2009-09-20 17:25:31.000000000 -0700
+++ plugins/sound_oss/sound_oss.cxx 2010-01-31 22:42:36.000000000 -0800
@@ -179,7 +179,7 @@
// like /dev/dsp0.0 /dev/dsp0.1 ...
// everything else would conflict with other KDE apps using the
// audio
- devname = devdir + "dsp0";
+ devname = devdir + "dsp" + PString(cardnum);
PTRACE(1, "OSS\tCollectSoundDevices FreeBSD devname set to devfs(5) name:" << devname );
#endif /* defined (P_FREEBSD) */
dsp.SetAt(cardnum+1, devname);
-------------- next part --------------
--- plugins/vidinput_v4l2/vidinput_names.cxx.orig 2009-09-20 17:25:31.000000000 -0700
+++ plugins/vidinput_v4l2/vidinput_names.cxx 2010-02-01 22:04:32.000000000 -0800
@@ -33,21 +33,25 @@
void V4LXNames::ReadDeviceDirectory(PDirectory devdir, POrdinalToString & vid)
{
+ PTRACE(2, "V4L2: V4LXNames::ReadDeviceDirectory : enter");
if (!devdir.Open())
return;
-#if defined (P_SOLARIS) || defined (P_NETBSD)
+#if defined (P_SOLARIS) || defined (P_NETBSD) || defined (P_FREEBSD)
int devnum = 0;
do {
PString filename = devdir.GetEntryName();
if (!filename.NumCompare("video", 5 , 0)) {
PString devname = devdir + filename;
struct stat s;
+ PTRACE(2, "V4L2: check: " << devname);
if (lstat(devname, &s) == 0) {
+ PTRACE(1, "V4L2: vid[" << devnum << "] set to " << devname);
vid.SetAt(devnum++, devname);
}
}
} while (devdir.Next());
+ PTRACE(2, "V4L2: V4LXNames::ReadDeviceDirectory : done");
#else
do {
PString filename = devdir.GetEntryName();
More information about the freebsd-multimedia
mailing list