aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormakc <makc@FreeBSD.org>2009-01-10 21:52:21 +0800
committermakc <makc@FreeBSD.org>2009-01-10 21:52:21 +0800
commit7525be0ef7c08f8e2b9dd0187f3ba1f26c1a5c45 (patch)
treef95c64bb774b13761bd78196c7c31995aed7d45d
parent84f532619dda29bc756a2b77763436435f9abbc3 (diff)
downloadfreebsd-ports-gnome-7525be0ef7c08f8e2b9dd0187f3ba1f26c1a5c45.tar.gz
freebsd-ports-gnome-7525be0ef7c08f8e2b9dd0187f3ba1f26c1a5c45.tar.zst
freebsd-ports-gnome-7525be0ef7c08f8e2b9dd0187f3ba1f26c1a5c45.zip
Enable optional webcamera support
PR: ports/117960 Submitted by: Mike Durian <durian at boogie.com>, Tino Engel <goaengel at gmx.net> Approved by: miwi (mentor)
-rw-r--r--net-im/kopete/Makefile12
-rw-r--r--net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevice.cpp246
-rw-r--r--net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevice.h48
-rw-r--r--net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevicepool.cpp12
4 files changed, 317 insertions, 1 deletions
diff --git a/net-im/kopete/Makefile b/net-im/kopete/Makefile
index 9d97e1731c2d..600dae63a771 100644
--- a/net-im/kopete/Makefile
+++ b/net-im/kopete/Makefile
@@ -7,6 +7,7 @@
PORTNAME= kopete
PORTVERSION= 0.12.8
+PORTREVISION= 1
CATEGORIES?= net-im kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/3.5.10/src
@@ -22,7 +23,7 @@ LIB_DEPENDS= speex:${PORTSDIR}/audio/speex \
ilbc:${PORTSDIR}/net/ilbc \
ortp:${PORTSDIR}/net/ortp
-CONFLICTS= kdenetwork-[0-2]* kdenetwork-3.[0-4]* kdenetwork-3.5.[0-2]* kvirc-[0-9]*
+CONFLICTS= kvirc-[0-9]*
USE_KDELIBS_VER=3
PREFIX= ${KDE_PREFIX}
@@ -56,9 +57,18 @@ INSTALL_WRKSRC= ${WRKSRC}/kopete
PKG_CONFIG?= ${LOCALBASE}/bin/pkg-config
+OPTIONS= WEBCAM "Enable webcamera support" off
+
.include "${.CURDIR}/../../x11/kde3/Makefile.kde"
.include <bsd.port.pre.mk>
+.if defined(WITH_WEBCAM)
+BUILD_DEPENDS+= ${LOCALBASE}/include/linux/videodev.h:${PORTSDIR}/multimedia/v4l_compat
+EXTRA_PATCHES= ${FILESDIR}/extrapatch-kopete_libkopete_avdevice-videodevice.cpp \
+ ${FILESDIR}/extrapatch-kopete_libkopete_avdevice-videodevice.h \
+ ${FILESDIR}/extrapatch-kopete_libkopete_avdevice-videodevicepool.cpp
+.endif
+
post-patch:
# force usage of gthread for libjingle's benefit
@${REINPLACE_CMD} -E \
diff --git a/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevice.cpp b/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevice.cpp
new file mode 100644
index 000000000000..562e31278be5
--- /dev/null
+++ b/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevice.cpp
@@ -0,0 +1,246 @@
+--- kopete/libkopete/avdevice/videodevice.cpp 2009-01-06 19:45:41.000000000 +0100
++++ kopete/libkopete/avdevice/videodevice.cpp 2009-01-06 19:47:03.000000000 +0100
+@@ -181,7 +181,7 @@
+ m_videostream=false;
+
+ m_driver=VIDEODEV_DRIVER_NONE;
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+
+ //if(!getWorkaroundBrokenDriver())
+@@ -512,7 +512,7 @@
+ m_io_method = IO_METHOD_NONE;
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ if(V4L2_capabilities.capabilities & V4L2_CAP_READWRITE)
+@@ -558,7 +558,7 @@
+ }
+
+ // Select video input, video standard and tune here.
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ if (-1 == xioctl (VIDIOC_CROPCAP, &cropcap))
+@@ -676,7 +676,7 @@
+ // Change resolution for the video device
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ // CLEAR (fmt);
+@@ -778,7 +778,7 @@
+ // Change the pixel format for the video device
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ // CLEAR (fmt);
+@@ -867,7 +867,7 @@
+ {
+ switch (m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ if (-1 == ioctl (descriptor, VIDIOC_S_INPUT, &newinput))
+@@ -935,7 +935,7 @@
+ case IO_METHOD_READ: // Nothing to do
+ break;
+ case IO_METHOD_MMAP:
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ {
+ unsigned int loop;
+@@ -957,7 +957,7 @@
+ #endif
+ break;
+ case IO_METHOD_USERPTR:
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ {
+ unsigned int loop;
+@@ -995,7 +995,7 @@
+ /// @todo implement me
+ ssize_t bytesread;
+
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ struct v4l2_buffer v4l2buffer;
+ #endif
+@@ -1029,7 +1029,7 @@
+ }
+ break;
+ case IO_METHOD_MMAP:
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ CLEAR (v4l2buffer);
+ v4l2buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+@@ -1089,7 +1089,7 @@
+ #endif
+ break;
+ case IO_METHOD_USERPTR:
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ {
+ unsigned int i;
+@@ -1475,7 +1475,7 @@
+
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ {
+@@ -1545,7 +1545,7 @@
+
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ {
+@@ -1615,7 +1615,7 @@
+
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ {
+@@ -1685,7 +1685,7 @@
+
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ {
+@@ -1755,7 +1755,7 @@
+
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ {
+@@ -1876,7 +1876,7 @@
+ {
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ switch(palette)
+@@ -1939,7 +1939,6 @@
+ case VIDEO_PALETTE_RGB32 : return PIXELFORMAT_RGB32; break;
+ case VIDEO_PALETTE_YUYV : return PIXELFORMAT_YUYV; break;
+ case VIDEO_PALETTE_UYVY : return PIXELFORMAT_UYVY; break;
+- case VIDEO_PALETTE_YUV420 :
+ case VIDEO_PALETTE_YUV420P : return PIXELFORMAT_YUV420P; break;
+ case VIDEO_PALETTE_YUV422P : return PIXELFORMAT_YUV422P; break;
+ }
+@@ -1956,7 +1955,7 @@
+ {
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ switch(pixelformat)
+@@ -2031,7 +2030,7 @@
+ case PIXELFORMAT_GREY : return VIDEO_PALETTE_GREY; break;
+ case PIXELFORMAT_YUYV : return VIDEO_PALETTE_YUYV; break;
+ case PIXELFORMAT_UYVY : return VIDEO_PALETTE_UYVY; break;
+- case PIXELFORMAT_YUV420P: return VIDEO_PALETTE_YUV420; break;
++ case PIXELFORMAT_YUV420P: return VIDEO_PALETTE_YUV420P; break;
+ case PIXELFORMAT_YUV422P: return VIDEO_PALETTE_YUV422P; break;
+
+ // Compressed formats
+@@ -2084,7 +2083,11 @@
+ case PIXELFORMAT_GREY : return 8; break;
+ case PIXELFORMAT_YUYV : return 16; break;
+ case PIXELFORMAT_UYVY : return 16; break;
++#if defined(__FreeBSD__)
++ case PIXELFORMAT_YUV420P: return 24; break;
++#else
+ case PIXELFORMAT_YUV420P: return 16; break;
++#endif
+ case PIXELFORMAT_YUV422P: return 16; break;
+
+ // Compressed formats
+@@ -2162,7 +2165,7 @@
+ returnvalue = "None";
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ switch(pixelformat)
+@@ -2224,7 +2227,6 @@
+ case VIDEO_PALETTE_RGB32 : returnvalue = pixelFormatName(PIXELFORMAT_RGB32); break;
+ case VIDEO_PALETTE_YUYV : returnvalue = pixelFormatName(PIXELFORMAT_YUYV); break;
+ case VIDEO_PALETTE_UYVY : returnvalue = pixelFormatName(PIXELFORMAT_UYVY); break;
+- case VIDEO_PALETTE_YUV420 :
+ case VIDEO_PALETTE_YUV420P : returnvalue = pixelFormatName(PIXELFORMAT_YUV420P); break;
+ case VIDEO_PALETTE_YUV422P : returnvalue = pixelFormatName(PIXELFORMAT_YUV422P); break;
+ }
+@@ -2242,7 +2244,7 @@
+ int err = 0;
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ fmtdesc.index = 0;
+@@ -2319,7 +2321,7 @@
+ {
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ switch(standard)
+@@ -2461,7 +2463,7 @@
+ returnvalue = "None";
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ switch(standard)
+@@ -2531,7 +2533,7 @@
+ {
+ switch(m_driver)
+ {
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ case VIDEODEV_DRIVER_V4L2:
+ break;
diff --git a/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevice.h b/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevice.h
new file mode 100644
index 000000000000..6b2a6d1996c0
--- /dev/null
+++ b/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevice.h
@@ -0,0 +1,48 @@
+--- kopete/libkopete/avdevice/videodevice.h 2009-01-06 19:45:45.000000000 +0100
++++ kopete/libkopete/avdevice/videodevice.h 2009-01-06 19:47:07.000000000 +0100
+@@ -33,9 +33,12 @@
+ #include <unistd.h>
+ #include <signal.h>
+
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+
++#if defined(__linux__)
+ #include <asm/types.h>
++#endif
++
+ #undef __STRICT_ANSI__
+ #ifndef __u64 //required by videodev.h
+ #define __u64 unsigned long long
+@@ -50,8 +53,11 @@
+ #define pgoff_t unsigned long
+ #endif
+
++#if defined(__linux__)
+ #include <linux/fs.h>
+ #include <linux/kernel.h>
++#endif
++
+ #include <linux/videodev.h>
+ #define VIDEO_MODE_PAL_Nc 3
+ #define VIDEO_MODE_PAL_M 4
+@@ -80,8 +86,8 @@
+ typedef enum
+ {
+ VIDEODEV_DRIVER_NONE
+-#if defined( __linux__) && defined(ENABLE_AV)
+- ,
++#if (defined( __linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
++ ,
+ VIDEODEV_DRIVER_V4L
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ ,
+@@ -276,7 +282,7 @@
+ int descriptor;
+
+ //protected:
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ #ifdef V4L2_CAP_VIDEO_CAPTURE
+ struct v4l2_capability V4L2_capabilities;
+ struct v4l2_cropcap cropcap;
diff --git a/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevicepool.cpp b/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevicepool.cpp
new file mode 100644
index 000000000000..006b1eeb9c0f
--- /dev/null
+++ b/net-im/kopete/files/extrapatch-kopete_libkopete_avdevice-videodevicepool.cpp
@@ -0,0 +1,12 @@
+--- kopete/libkopete/avdevice/videodevicepool.cpp 2009-01-06 19:45:59.000000000 +0100
++++ kopete/libkopete/avdevice/videodevicepool.cpp 2009-01-06 19:47:13.000000000 +0100
+@@ -608,7 +608,7 @@
+ /// @todo implement me
+
+ kdDebug(14010) << k_funcinfo << "called" << endl;
+-#if defined(__linux__) && defined(ENABLE_AV)
++#if (defined(__linux__) || defined(__FreeBSD__)) && defined(ENABLE_AV)
+ QDir videodevice_dir;
+ const QString videodevice_dir_path=QString::fromLocal8Bit("/dev/v4l/");
+ const QString videodevice_dir_filter=QString::fromLocal8Bit("video*");
+