diff options
author | makc <makc@FreeBSD.org> | 2009-01-10 21:52:21 +0800 |
---|---|---|
committer | makc <makc@FreeBSD.org> | 2009-01-10 21:52:21 +0800 |
commit | 7525be0ef7c08f8e2b9dd0187f3ba1f26c1a5c45 (patch) | |
tree | f95c64bb774b13761bd78196c7c31995aed7d45d | |
parent | 84f532619dda29bc756a2b77763436435f9abbc3 (diff) | |
download | freebsd-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)
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*"); + |