[kde-freebsd] ports/117960: Patches to enable webcam support in net-im/kopete
Max Brazhnikov
makc at freebsd.org
Thu Jan 8 18:47:55 CET 2009
Hi Tino,
could you please send your patches once again?
Max
On Tue, 6 Jan 2009 20:30:04 GMTTue, 6 Jan 2009 21:00:22 +0100, Tino Engel
wrote:
> The following reply was made to PR ports/117960; it has been noted by
> GNATS.
>
> From: Tino Engel <goaengel at gmx.net>
> To: bug-followup at FreeBSD.org, durian at boogie.com
> Cc:
> Subject: Re: ports/117960: Patches to enable webcam support in
> net-im/kopete Date: Tue, 6 Jan 2009 21:00:22 +0100
>
> --MP_/Zx+xcji9o.BJoUV.WUx8yiT
> Content-Type: text/plain; charset=US-ASCII
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
>
> Dear port maintainer,
>
> I have used the patches (they were outdated) provided in PR ports/117960
> to create port compliant patches for the current kopete port
> (kdenetwork-kopete-0.12.8).
>
> I have verified that the port compiles and installs clean with the 3
> additional patch files in the files-directory.
>
> kopete now recognizes a webcam with pwcbsd driver correctly.
> (pwcbsd-1.4.1_1)
>
> The webcam (in my case a Logitech Quickcam 4000 Pro) shows up in kopete
> configuration dialog.
> In addition I have veryfied the stream makes it through the internet,
> and you can have a bidirectional webcam chat with another msn client.
>
> Please note that I had to forward the needed ports on my router to make
> it work. Those were:
> TCP: 1863,6891-6900,6901
> UDP: 1863,5190,6901
>
> I have attached the three patches.
>
> In addition I have attached a patch for the change to the Makefile
> the original PR also suggested. It is adding the build dependencies
>
> BUILD_DEPENDS=${LOCALBASE}/include/linux/videodev.h:${PORTSDIR}/multimedia/
>v4l_compat
>
> KNOWN PROBLEM: The configuration section for the webcam does store all
> options permanently except the whiteness. This results in a quite dark
> picture when the value goes back to zero.
> This is a minor issue, because the setting can be changed once the
> webcam is on (during a conversation) and is stored as long as the
> webcam is on.
>
> Please contact me if there are any open questions concerning this topic.
>
> Sincerely yours, Tino Engel
>
>
> --MP_/Zx+xcji9o.BJoUV.WUx8yiT
> Content-Type: text/x-c++src;
> name=patch-kopete_libkopete_avdevice-videodevice.cpp
> Content-Transfer-Encoding: 7bit
> Content-Disposition: attachment;
> filename=patch-kopete_libkopete_avdevice-videodevice.cpp
>
> --- 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;
>
> --MP_/Zx+xcji9o.BJoUV.WUx8yiT
> Content-Type: text/x-chdr;
> name=patch-kopete_libkopete_avdevice-videodevice.h
> Content-Transfer-Encoding: 7bit
> Content-Disposition: attachment;
> filename=patch-kopete_libkopete_avdevice-videodevice.h
>
> --- 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;
>
> --MP_/Zx+xcji9o.BJoUV.WUx8yiT
> Content-Type: text/x-c++src;
> name=patch-kopete_libkopete_avdevice-videodevicepool.cpp
> Content-Transfer-Encoding: 7bit
> Content-Disposition: attachment;
> filename=patch-kopete_libkopete_avdevice-videodevicepool.cpp
>
> --- 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*");
>
> --MP_/Zx+xcji9o.BJoUV.WUx8yiT
> Content-Type: text/x-patch; name=Makefile.diff
> Content-Transfer-Encoding: 7bit
> Content-Disposition: attachment; filename=Makefile.diff
>
> --- Makefile 2009-01-06 20:50:35.000000000 +0100
> +++ Makefile 2009-01-06 20:47:43.000000000 +0100
> @@ -17,6 +17,7 @@
> MAINTAINER= kde at FreeBSD.org
> COMMENT= KDE multi-protocol instant messenger (IM)
>
> +BUILD_DEPENDS=
> ${LOCALBASE}/include/linux/videodev.h:${PORTSDIR}/multimedia/v4l_compat
> RUN_DEPENDS= ${QT_PREFIX}/lib/plugins/crypto/libqca-tls.so:${PORTSDIR}/secu
>rity/qca-tls
>
> CONFLICTS= kdenetwork-[0-2]* kdenetwork-3.[0-4]* kdenetwork-3.5.[0-2]*
> kvirc-[0-9]*
>
> --MP_/Zx+xcji9o.BJoUV.WUx8yiT--
> _______________________________________________
> kde-freebsd mailing list
> kde-freebsd at kde.org
> https://mail.kde.org/mailman/listinfo/kde-freebsd
> See also http://freebsd.kde.org/ for latest information
More information about the kde-freebsd
mailing list