ports/117960: Patches to enable webcam support in kopete
Mike Durian
durian at boogie.com
Sat Nov 10 16:10:01 UTC 2007
>Number: 117960
>Category: ports
>Synopsis: Patches to enable webcam support in kopete
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sat Nov 10 16:10:00 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator: Mike Durian
>Release: FreeBSD 6.3-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD carwash.boogie.com 6.3-PRERELEASE FreeBSD 6.3-PRERELEASE #7: Wed Oct 31 09:38:00 MDT 2007 root at carwash.boogie.com:/usr/obj/usr/src/sys/BOOGIE i386
>Description:
A few basic patches that enable webcam support in the
net-im/kopete port. It adds a dependancy on multimedia/v4l_compat.
Perhaps there should be a RUN_DEPEND on multimedia/pwcbsd too.
I'm not sure. Are there other Video4Linux compatbile webcam
drivers in the port tree? If not, then I'm thinking the
RUN_DEPEND on multimedia/pwcbsd should be added.
>How-To-Repeat:
I tested with a Logitech QuickCam Pro 4000. Actually, I've
only tested in the configuration window. I haven't verified
that the feed makes it across the network.
>Fix:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# Makefile.diff
# patch-kopete__libkopete__avdevice__videodevice.cpp
# patch-kopete__libkopete__avdevice__videodevice.h
# patch-kopete__libkopete__avdevice__videodevicepool.cpp
#
echo x - Makefile.diff
sed 's/^X//' >Makefile.diff << 'END-of-Makefile.diff'
X--- Makefile.orig 2007-11-10 08:08:53.000000000 -0700
X+++ Makefile 2007-11-10 08:13:04.000000000 -0700
X@@ -17,6 +17,7 @@
X MAINTAINER= kde at FreeBSD.org
X COMMENT= KDE multi-protocol instant messenger (IM)
X
X+BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev.h:multimedia/v4l_compat
X RUN_DEPENDS= ${QT_PREFIX}/lib/plugins/crypto/libqca-tls.so:${PORTSDIR}/security/qca-tls
X
X CONFLICTS= kdenetwork-[0-2]* kdenetwork-3.[0-4]* kdenetwork-3.5.[0-2]* kvirc-[0-9]*
END-of-Makefile.diff
echo x - patch-kopete__libkopete__avdevice__videodevice.cpp
sed 's/^X//' >patch-kopete__libkopete__avdevice__videodevice.cpp << 'END-of-patch-kopete__libkopete__avdevice__videodevice.cpp'
X--- kopete/libkopete/avdevice/videodevice.cpp.orig 2007-11-09 17:22:19.000000000 -0700
X+++ kopete/libkopete/avdevice/videodevice.cpp 2007-11-10 08:07:05.000000000 -0700
X@@ -139,7 +139,7 @@
X m_videostream=false;
X
X m_driver=VIDEODEV_DRIVER_NONE;
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X
X if(!getWorkaroundBrokenDriver())
X@@ -425,7 +425,7 @@
X m_io_method = IO_METHOD_NONE;
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X if(V4L2_capabilities.capabilities & V4L2_CAP_READWRITE)
X@@ -471,7 +471,7 @@
X }
X
X // Select video input, video standard and tune here.
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
X if (-1 == xioctl (VIDIOC_CROPCAP, &cropcap))
X@@ -568,7 +568,7 @@
X // Change resolution for the video device
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X // CLEAR (fmt);
X@@ -670,7 +670,7 @@
X // Change the pixel format for the video device
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X // CLEAR (fmt);
X@@ -756,7 +756,7 @@
X {
X switch (m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X if (-1 == ioctl (descriptor, VIDIOC_S_INPUT, &newinput))
X@@ -824,7 +824,7 @@
X case IO_METHOD_READ: // Nothing to do
X break;
X case IO_METHOD_MMAP:
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X {
X unsigned int loop;
X@@ -846,7 +846,7 @@
X #endif
X break;
X case IO_METHOD_USERPTR:
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X {
X unsigned int loop;
X@@ -884,7 +884,7 @@
X /// @todo implement me
X ssize_t bytesread;
X
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X struct v4l2_buffer v4l2buffer;
X #endif
X@@ -918,7 +918,7 @@
X }
X break;
X case IO_METHOD_MMAP:
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X CLEAR (v4l2buffer);
X v4l2buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
X@@ -978,7 +978,7 @@
X #endif
X break;
X case IO_METHOD_USERPTR:
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X {
X unsigned int i;
X@@ -1304,7 +1304,7 @@
X
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X break;
X@@ -1342,7 +1342,7 @@
X
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X break;
X@@ -1380,7 +1380,7 @@
X
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X break;
X@@ -1418,7 +1418,7 @@
X
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X break;
X@@ -1456,7 +1456,7 @@
X
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X break;
X@@ -1569,7 +1569,7 @@
X {
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X switch(palette)
X@@ -1604,7 +1604,7 @@
X case VIDEO_PALETTE_RGB32 : return PIXELFORMAT_RGB32; break;
X case VIDEO_PALETTE_YUYV : return PIXELFORMAT_YUYV; break;
X case VIDEO_PALETTE_UYVY : return PIXELFORMAT_UYVY; break;
X- case VIDEO_PALETTE_YUV420 : return PIXELFORMAT_YUV420P; break;
X+ case VIDEO_PALETTE_YUV420P : return PIXELFORMAT_YUV420P; break;
X case VIDEO_PALETTE_YUV422P : return PIXELFORMAT_YUV422P; break;
X }
X break;
X@@ -1620,7 +1620,7 @@
X {
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X switch(pixelformat)
X@@ -1659,7 +1659,7 @@
X case PIXELFORMAT_BGR32 : return PIXELFORMAT_NONE; break;
X case PIXELFORMAT_YUYV : return VIDEO_PALETTE_YUYV; break;
X case PIXELFORMAT_UYVY : return VIDEO_PALETTE_UYVY; break;
X- case PIXELFORMAT_YUV420P: return VIDEO_PALETTE_YUV420; break;
X+ case PIXELFORMAT_YUV420P: return VIDEO_PALETTE_YUV420P; break;
X case PIXELFORMAT_YUV422P: return VIDEO_PALETTE_YUV422P; break;
X }
X break;
X@@ -1688,7 +1688,11 @@
X case PIXELFORMAT_BGR32 : return 32; break;
X case PIXELFORMAT_YUYV : return 16; break;
X case PIXELFORMAT_UYVY : return 16; break;
X+#if defined(__FreeBSD__)
X+ case PIXELFORMAT_YUV420P: return 24; break;
X+#else
X case PIXELFORMAT_YUV420P: return 16; break;
X+#endif
X case PIXELFORMAT_YUV422P: return 16; break;
X }
X return 0;
X@@ -1725,7 +1729,7 @@
X returnvalue = "None";
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X switch(pixelformat)
X@@ -1758,7 +1762,7 @@
X case VIDEO_PALETTE_RGB32 : returnvalue = pixelFormatName(PIXELFORMAT_RGB32); break;
X case VIDEO_PALETTE_YUYV : returnvalue = pixelFormatName(PIXELFORMAT_YUYV); break;
X case VIDEO_PALETTE_UYVY : returnvalue = pixelFormatName(PIXELFORMAT_UYVY); break;
X- case VIDEO_PALETTE_YUV420 : returnvalue = pixelFormatName(PIXELFORMAT_YUV420P); break;
X+ case VIDEO_PALETTE_YUV420P : returnvalue = pixelFormatName(PIXELFORMAT_YUV420P); break;
X case VIDEO_PALETTE_YUV422P : returnvalue = pixelFormatName(PIXELFORMAT_YUV422P); break;
X }
X break;
X@@ -1774,7 +1778,7 @@
X {
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X switch(standard)
X@@ -1916,7 +1920,7 @@
X returnvalue = "None";
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X switch(standard)
X@@ -1986,7 +1990,7 @@
X {
X switch(m_driver)
X {
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X case VIDEODEV_DRIVER_V4L2:
X break;
END-of-patch-kopete__libkopete__avdevice__videodevice.cpp
echo x - patch-kopete__libkopete__avdevice__videodevice.h
sed 's/^X//' >patch-kopete__libkopete__avdevice__videodevice.h << 'END-of-patch-kopete__libkopete__avdevice__videodevice.h'
X--- kopete/libkopete/avdevice/videodevice.h.orig 2007-11-09 17:22:29.000000000 -0700
X+++ kopete/libkopete/avdevice/videodevice.h 2007-11-09 17:34:16.000000000 -0700
X@@ -33,9 +33,11 @@
X #include <unistd.h>
X #include <signal.h>
X
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X
X+#if defined(__linux__)
X #include <asm/types.h>
X+#endif
X #undef __STRICT_ANSI__
X #ifndef __u64 //required by videodev.h
X #define __u64 unsigned long long
X@@ -50,8 +52,10 @@
X #define pgoff_t unsigned long
X #endif
X
X+#if defined(__linux__)
X #include <linux/fs.h>
X #include <linux/kernel.h>
X+#endif
X #include <linux/videodev.h>
X #define VIDEO_MODE_PAL_Nc 3
X #define VIDEO_MODE_PAL_M 4
X@@ -79,7 +83,7 @@
X typedef enum
X {
X VIDEODEV_DRIVER_NONE
X-#if defined( __linux__) && defined(ENABLE_AV)
X+#if (defined( __linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X ,
X VIDEODEV_DRIVER_V4L
X #ifdef HAVE_V4L2
X@@ -255,7 +259,7 @@
X int descriptor;
X
X //protected:
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X #ifdef HAVE_V4L2
X struct v4l2_capability V4L2_capabilities;
X struct v4l2_cropcap cropcap;
END-of-patch-kopete__libkopete__avdevice__videodevice.h
echo x - patch-kopete__libkopete__avdevice__videodevicepool.cpp
sed 's/^X//' >patch-kopete__libkopete__avdevice__videodevicepool.cpp << 'END-of-patch-kopete__libkopete__avdevice__videodevicepool.cpp'
X--- kopete/libkopete/avdevice/videodevicepool.cpp.orig 2007-11-09 21:12:49.000000000 -0700
X+++ kopete/libkopete/avdevice/videodevicepool.cpp 2007-11-09 21:13:54.000000000 -0700
X@@ -650,7 +650,7 @@
X /// @todo implement me
X
X kdDebug() << k_funcinfo << "called" << endl;
X-#if defined(__linux__) && defined(ENABLE_AV)
X+#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
X QDir videodevice_dir;
X const QString videodevice_dir_path=QString::fromLocal8Bit("/dev/v4l/");
X const QString videodevice_dir_filter=QString::fromLocal8Bit("video*");
END-of-patch-kopete__libkopete__avdevice__videodevicepool.cpp
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list