[kde-freebsd] ports/117960: Patches to enable webcam support in net-im/kopete
Tino Engel
goaengel at gmx.net
Thu Jan 8 23:37:57 CET 2009
Hi M__x,
Of course... :)
Here you go.
Thanks for the reply.
Gr33z, Tino
On Thu, 8 Jan 2009 20:47:55 +0300
Max Brazhnikov <makc at freebsd.org> wrote:
> 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
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile.diff
Type: text/x-patch
Size: 456 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-freebsd/attachments/20090108/a497c17e/attachment.diff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-kopete__libkopete__avdevice__videodevice.cpp
Type: text/x-c++src
Size: 7497 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-freebsd/attachments/20090108/a497c17e/attachment.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-kopete__libkopete__avdevice__videodevice.h
Type: text/x-chdr
Size: 1227 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-freebsd/attachments/20090108/a497c17e/attachment.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-kopete__libkopete__avdevice__videodevicepool.cpp
Type: text/x-c++src
Size: 564 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-freebsd/attachments/20090108/a497c17e/attachment-0001.cpp
More information about the kde-freebsd
mailing list