The following reply was made to PR ports/117960; it has been noted by GNATS.

From: Tino Engel <goaen...@gmx.net>
To: bug-follo...@freebsd.org, dur...@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=   k...@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}/security/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@kde.org
https://mail.kde.org/mailman/listinfo/kde-freebsd
See also http://freebsd.kde.org/ for latest information

Reply via email to