File camsource-v4l1.patch of Package camsource

--- camsource-0.7.0/configure.ac	2003-05-01 14:27:00.000000000 +0400
+++ camsource-0.7.0.new/configure.ac	2013-01-19 13:23:29.628830443 +0400
@@ -13,7 +13,7 @@
 AC_C_BIGENDIAN
 
 AC_HEADER_STDC
-AC_CHECK_HEADER(linux/videodev.h,, [AC_MSG_ERROR([Could not find linux/videodev.h])])
+AC_CHECK_HEADER(libv4l1.h,, [AC_MSG_ERROR([Could not find libv4l1.h])])
 AC_CHECK_HEADER(jpeglib.h,, [AC_MSG_ERROR([Could not find jpeglib.h])])
 
 AC_FUNC_MALLOC
@@ -25,6 +25,7 @@
 AC_CHECK_SIZEOF(long)
 
 # Libs for main prog
+AC_CHECK_LIB(v4l1, v4l1_open,, [AC_MSG_ERROR([Could not find libv4l1])])
 AC_CHECK_LIB(dl, dlopen,, [AC_MSG_ERROR([Could not find dynamic link lib])])
 AC_CHECK_LIB(pthread, pthread_create,, [AC_MSG_ERROR([Could not find posix thread lib])])
 
--- camsource-0.7.0/src/input_v4l.c	2003-04-21 01:53:35.000000000 +0400
+++ camsource-0.7.0.new/src/input_v4l.c	2013-01-19 13:38:53.060346764 +0400
@@ -3,7 +3,7 @@
 #include <string.h>
 #include <errno.h>
 #include <libxml/parser.h>
-#include <linux/videodev.h>
+#include <libv4l1.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include <sys/mman.h>
@@ -113,19 +113,19 @@
 		}
 	}
 	
-	newcamdev.fd = open(path, O_RDONLY);
+	newcamdev.fd = v4l1_open(path, O_RDONLY);
 	if (newcamdev.fd < 0)
 	{
 		printf("Unable to open %s (%s)\n", path, strerror(errno));
 		return -1;
 	}
 	
-	ret = ioctl(newcamdev.fd, VIDIOCGCAP, &newcamdev.vidcap);
+	ret = v4l1_ioctl(newcamdev.fd, VIDIOCGCAP, &newcamdev.vidcap);
 	if (ret != 0)
 	{
 		printf("ioctl \"get video cap\" failed: %s\n", strerror(errno));
 closenerr:
-		close(newcamdev.fd);
+		v4l1_close(newcamdev.fd);
 		return -1;
 	}
 	if (!(newcamdev.vidcap.type & VID_TYPE_CAPTURE))
@@ -140,7 +140,7 @@
 		vidchan.channel = channel;
 		if (norm >= 0)
 			vidchan.norm = norm;
-		ret = ioctl(newcamdev.fd, VIDIOCSCHAN, &vidchan);
+		ret = v4l1_ioctl(newcamdev.fd, VIDIOCSCHAN, &vidchan);
 		if (ret)
 			printf("ioctl \"set input channel\" failed, continuing anyway: %s\n", strerror(errno));
 	}
@@ -158,14 +158,14 @@
 
 	vidwin.flags |= (fps & 0x3f) << 16;
 
-	ret = ioctl(newcamdev.fd, VIDIOCSWIN, &vidwin);
+	ret = v4l1_ioctl(newcamdev.fd, VIDIOCSWIN, &vidwin);
 	if (ret != 0)
 	{
 		printf("ioctl \"set grab window\" failed: %s\n", strerror(errno));
 		printf("Trying again without the fps option...\n");
 		
 		vidwin.flags &= ~(0x3f << 16);
-		ret = ioctl(newcamdev.fd, VIDIOCSWIN, &vidwin);
+		ret = v4l1_ioctl(newcamdev.fd, VIDIOCSWIN, &vidwin);
 		
 		if (!ret) {
 			printf("ioctl \"set grab window\" succeeded without fps option.\n");
@@ -181,12 +181,12 @@
 		}
 	}
 	else {
-		ret = ioctl(newcamdev.fd, VIDIOCGWIN, &vidwin);
+		ret = v4l1_ioctl(newcamdev.fd, VIDIOCGWIN, &vidwin);
 		if (!ret)
-			ioctl(newcamdev.fd, VIDIOCSWIN, &vidwin);
+			v4l1_ioctl(newcamdev.fd, VIDIOCSWIN, &vidwin);
 	}
 	
-	ret = ioctl(newcamdev.fd, VIDIOCGPICT, &newcamdev.vidpic);
+	ret = v4l1_ioctl(newcamdev.fd, VIDIOCGPICT, &newcamdev.vidpic);
 	if (ret != 0)
 	{
 		printf("ioctl \"get pict props\" failed: %s\n", strerror(errno));
@@ -206,8 +206,8 @@
 			newcamdev.vidpic.contrast = contrast;
 		if (whiteness >= 0)
 			newcamdev.vidpic.whiteness = whiteness;
-		ioctl(newcamdev.fd, VIDIOCSPICT, &newcamdev.vidpic);
-		ioctl(newcamdev.fd, VIDIOCGPICT, &newcamdev.vidpic);
+		v4l1_ioctl(newcamdev.fd, VIDIOCSPICT, &newcamdev.vidpic);
+		v4l1_ioctl(newcamdev.fd, VIDIOCGPICT, &newcamdev.vidpic);
 		if (newcamdev.vidpic.palette == pal->val)
 			goto palfound;	/* break */
 	}
@@ -247,7 +247,7 @@
 		if (camdev->usemmap < 0)
 		{
 			do
-				ret = ioctl(camdev->fd, VIDIOCGMBUF, &camdev->mbuf);
+				ret = v4l1_ioctl(camdev->fd, VIDIOCGMBUF, &camdev->mbuf);
 			while (ret < 0 && errno == EINTR);
 			if (ret < 0)
 			{
@@ -256,7 +256,7 @@
 				camdev->usemmap = 0;
 				goto sysread;
 			}
-			camdev->mbufp = mmap(NULL, camdev->mbuf.size, PROT_READ, MAP_PRIVATE, camdev->fd, 0);
+			camdev->mbufp = v4l1_mmap(NULL, camdev->mbuf.size, PROT_READ, MAP_PRIVATE, camdev->fd, 0);
 			if (camdev->mbufp == MAP_FAILED)
 				goto nommap;
 			camdev->usemmap = 1;
@@ -268,17 +268,17 @@
 		mmapctx.height = gcamdev->y;
 		mmapctx.format = gcamdev->pal->val;
 		do
-			ret = ioctl(camdev->fd, VIDIOCMCAPTURE, &mmapctx);
+			ret = v4l1_ioctl(camdev->fd, VIDIOCMCAPTURE, &mmapctx);
 		while (ret < 0 && errno == EINTR);
 		if (ret < 0)
 		{
 unmap:
-			munmap(camdev->mbufp, camdev->mbuf.size);
+			v4l1_munmap(camdev->mbufp, camdev->mbuf.size);
 			goto nommap;
 		}
 		ret = camdev->mbufframe;
 		do
-			ret = ioctl(camdev->fd, VIDIOCSYNC, &ret);
+			ret = v4l1_ioctl(camdev->fd, VIDIOCSYNC, &ret);
 		while (ret < 0 && errno == EINTR);
 		if (ret < 0)
 			goto unmap;
@@ -294,7 +294,7 @@
 
 sysread:
 	do
-		ret = read(camdev->fd, camdev->imgbuf, camdev->bpf);
+		ret = v4l1_read(camdev->fd, camdev->imgbuf, camdev->bpf);
 	while (ret < 0 && errno == EINTR);
 	if (ret < 0)
 	{
@@ -366,7 +366,7 @@
 	if (!(brightness < camdev->autobrightness -1 || brightness > camdev->autobrightness +1))
 		return;
 
-	if (ioctl(camdev->fd, VIDIOCGPICT, &camdev->vidpic) == -1) {
+	if (v4l1_ioctl(camdev->fd, VIDIOCGPICT, &camdev->vidpic) == -1) {
 		perror ("ioctl (VIDIOCGPICT)");
 		return;
 	}
@@ -387,7 +387,7 @@
 		camdev->vidpic.brightness += (int)change; 
 		/*printf("Setting camera brightness to %i\n", camdev->vidpic.brightness);*/
 	}
-	if (ioctl(camdev->fd, VIDIOCSPICT, &camdev->vidpic) == -1) {
+	if (v4l1_ioctl(camdev->fd, VIDIOCSPICT, &camdev->vidpic) == -1) {
 		perror ("ioctl (VIDIOCSPICT)");
 	}
 }
@@ -418,7 +418,7 @@
 		return;
 	}
 
-	ret = ioctl(fd, VIDIOCGCAP, &vidcap);
+	ret = v4l1_ioctl(fd, VIDIOCGCAP, &vidcap);
 	if (ret < 0)
 	{
 		printf("ioctl(VIDIOCGCAP) (get video capabilites) failed: %s\n", strerror(errno));
@@ -442,7 +442,7 @@
 	printf("    Min: %ix%i\n", vidcap.minwidth, vidcap.minheight);
 	printf("    Max: %ix%i\n", vidcap.maxwidth, vidcap.maxheight);
 	
-	ret = ioctl(fd, VIDIOCGPICT, &vidpic);
+	ret = v4l1_ioctl(fd, VIDIOCGPICT, &vidpic);
 	if (ret != 0)
 	{
 		printf("ioctl(VIDIOCGPICT) (get picture properties) failed: %s\n", strerror(errno));
@@ -467,8 +467,8 @@
 	{
 		vidpic.palette = pal->val;
 		vidpic.depth = pal->depth;
-		ioctl(fd, VIDIOCSPICT, &vidpic);
-		ioctl(fd, VIDIOCGPICT, &vidpic);
+		v4l1_ioctl(fd, VIDIOCSPICT, &vidpic);
+		v4l1_ioctl(fd, VIDIOCGPICT, &vidpic);
 		if (vidpic.palette == pal->val)
 			printf("    Palette \"%s\" supported: Yes, with depth %u\n", pal->name, vidpic.depth);
 		else
@@ -476,5 +476,5 @@
 	}	
 
 closenout:
-	close(fd);
+	v4l1_close(fd);
 }
--- camsource-0.7.0/src/vloopback.c	2003-01-05 00:42:48.000000000 +0300
+++ camsource-0.7.0.new/src/vloopback.c	2013-01-19 13:37:56.140691991 +0400
@@ -3,7 +3,7 @@
 #include <stdio.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
-#include <linux/videodev.h>
+#include <libv4l1.h>
 #include <memory.h>
 
 #include "config.h"
@@ -38,28 +38,28 @@
 	struct video_window vid_win;
 	struct video_picture vid_pic;
 	
-	mctx->dev_out =open (mctx->dev_name, O_RDWR);				
+	mctx->dev_out =v4l1_open (mctx->dev_name, O_RDWR);				
 	if (mctx->dev_out < 0) {
 		perror ("Failed to open video device");
 	}
 
-	if (ioctl (mctx->dev_out, VIDIOCGPICT, &vid_pic)== -1) {
+	if (v4l1_ioctl (mctx->dev_out, VIDIOCGPICT, &vid_pic)== -1) {
 		perror ("ioctl VIDIOCGPICT");
 		return (1);
 	}
 	vid_pic.palette=mctx->format;
-	if (ioctl (mctx->dev_out, VIDIOCSPICT, &vid_pic)== -1) {
+	if (v4l1_ioctl (mctx->dev_out, VIDIOCSPICT, &vid_pic)== -1) {
 		perror ("ioctl VIDIOCSPICT");
 		return (1);
 	}
-	if (ioctl (mctx->dev_out, VIDIOCGWIN, &vid_win)== -1) {
+	if (v4l1_ioctl (mctx->dev_out, VIDIOCGWIN, &vid_win)== -1) {
 		perror ("ioctl VIDIOCGWIN");
 		return (1);
 	}
 
 	vid_win.width=mctx->width;
 	vid_win.height=mctx->height;
-	if (ioctl (mctx->dev_out, VIDIOCSWIN, &vid_win)== -1) {
+	if (v4l1_ioctl (mctx->dev_out, VIDIOCSWIN, &vid_win)== -1) {
 		perror ("ioctl VIDIOCSWIN");
 		return (1);
 	}
--- camsource-0.7.0/src/unpalette.c	2013-01-19 13:55:39.936283019 +0400
+++ camsource-0.7.0.new/src/unpalette.c	2013-01-19 13:25:58.427219854 +0400
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <sys/types.h>
 #include <string.h>
-#include <linux/videodev.h>
+#include <libv4l1.h>
 
 #include "config.h"
 
openSUSE Build Service is sponsored by