Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Feb 2007 01:12:11 +0900
From:      Hajimu UMEMOTO <ume@freebsd.org>
To:        Luigi Rizzo <rizzo@icir.org>
Cc:        ports@freebsd.org
Subject:   Re: please check if your port may use v4l_compat
Message-ID:  <yge7iuquh44.wl%ume@mahoroba.org>
In-Reply-To: <20070209074429.B99372@xorpc.icir.org>
References:  <20070209074429.B99372@xorpc.icir.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

>>>>> On Fri, 9 Feb 2007 07:44:29 -0800
>>>>> Luigi Rizzo <rizzo@icir.org> said:

rizzo> after hitting a couple of them myself (net/ekiga and mbone/vic),
rizzo> i believe that there is a number of ports, especially in the
rizzo> multimedia/ graphics/ net/ mbone/ categories which might
rizzo> make good use of a

rizzo> BUILD_DEPENDS+= v4l_compat>=1.0.20060801:${PORTSDIR}/multimedia/v4l_compat

rizzo> line in their Makefile, to enable support of video4linux devices.

I'm using vic with pwc.ko.  Since vic uses MMAP, it works only when
pwcbsd is built with MMAP support.  I tried both linux-gspca-kmod and
linux-ov511-kmod with vic.  But, they didn't work.  It seems neither
linux-gspca-kmod nor linux-ov511-kmod support MMAP.
I need following patch to work Logicool Qcam for Notebooks Pro:

Index: vic/vic/video/grabber-video4linux.cpp
diff -u vic/vic/video/grabber-video4linux.cpp:1.1.1.1 vic/vic/video/grabber-video4linux.cpp:1.2
--- vic/vic/video/grabber-video4linux.cpp:1.1.1.1	Mon Sep  3 18:34:10 2001
+++ vic/vic/video/grabber-video4linux.cpp	Fri Aug 22 20:01:42 2003
@@ -268,10 +268,17 @@
 	perror("open");
 	exit(1);
     }
+
+    /* ask for capabilities */
+    if (-1 == ioctl(fd_,VIDIOCGCAP,&capability)) {
+	perror("ioctl VIDIOCGCAP");
+	exit(1);
+    }
+
     vid_mmap.format = VIDEO_PALETTE_YUV422P;
     vid_mmap.frame = 0;
-    vid_mmap.width = PAL_WIDTH;
-    vid_mmap.height = PAL_HEIGHT;
+    vid_mmap.width = capability.minwidth;
+    vid_mmap.height = capability.minheight;
 
     if (-1 != ioctl(fd_, VIDIOCMCAPTURE, &vid_mmap)) {
            have_422P = 1;
@@ -284,11 +291,6 @@
 	perror("open");
 	exit(1);
     }
-    /* ask for capabilities */
-    if (-1 == ioctl(fd_,VIDIOCGCAP,&capability)) {
-	perror("ioctl VIDIOCGCAP");
-	exit(1);
-    }
     channels = (struct video_channel*)
 	calloc(capability.channels,sizeof(struct video_channel));
     for (i = 0; i < capability.channels; i++) {


rizzo> If you have a match, check the path where the file is looked up,
rizzo> and possibly correct it (some only try /usr/include/linux/videodev.h
rizzo> because that is the linux location).

The vic's configure tries only /usr/include/linux/videodev.h.  So, we
need following patch:

Index: vic/configure.in
diff -u vic/configure.in.orig vic/configure.in
--- vic/configure.in.orig	Wed Jun 14 23:37:19 2006
+++ vic/configure.in	Wed Jun 14 23:44:08 2006
@@ -70,6 +70,6 @@
     -r /usr/include/dev/ic/bt8xx.h ; then
 	V_OBJ_GRABBER="video/grabber-meteor.o $V_OBJ_GRABBER"
 fi
-if test -r /usr/include/linux/videodev.h ; then
+if test -r /usr/include/linux/videodev.h -o /usr/local/include/linux/videodev.h ; then
 	V_OBJ_GRABBER="video/grabber-video4linux.o $V_OBJ_GRABBER"
 fi


Sincerely,

--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
ume@mahoroba.org  ume@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?yge7iuquh44.wl%ume>