*** wmwebcam.c.orig 2001-01-27 17:24:44.000000000 +0100 --- wmwebcam.c 2012-01-15 12:41:09.000000000 +0100 *************** *** 32,38 **** #include <fcntl.h> #include <unistd.h> #include <linux/types.h> ! #include <linux/videodev.h> #include <jpeglib.h> --- 32,38 ---- #include <fcntl.h> #include <unistd.h> #include <linux/types.h> ! #include <libv4l1.h> #include <jpeglib.h> *************** *** 155,172 **** char *map; int len; ! if (ioctl (dev, VIDIOCGCAP, &vid_caps) == -1) { perror ("ioctl (VIDIOCGCAP)"); return (NULL); } ! if (ioctl (dev, VIDIOCGMBUF, &vid_buf) == -1) { struct video_window vid_win; ! if (ioctl (dev, VIDIOCGWIN, &vid_win) != -1) { vid_win.width = width; vid_win.height = height; ! if (ioctl (dev, VIDIOCSWIN, &vid_win) == -1) return (NULL); } --- 155,172 ---- char *map; int len; ! if (v4l1_ioctl (dev, VIDIOCGCAP, &vid_caps) == -1) { perror ("ioctl (VIDIOCGCAP)"); return (NULL); } ! if (v4l1_ioctl (dev, VIDIOCGMBUF, &vid_buf) == -1) { struct video_window vid_win; ! if (v4l1_ioctl (dev, VIDIOCGWIN, &vid_win) != -1) { vid_win.width = width; vid_win.height = height; ! if (v4l1_ioctl (dev, VIDIOCSWIN, &vid_win) == -1) return (NULL); } *************** *** 177,183 **** return (map); } ! map = mmap (0, vid_buf.size, PROT_READ|PROT_WRITE,MAP_SHARED,dev,0); if ((unsigned char *)-1 == (unsigned char *)map) { perror ("mmap()"); return (NULL); --- 177,183 ---- return (map); } ! map = v4l1_mmap (0, vid_buf.size, PROT_READ|PROT_WRITE,MAP_SHARED,dev,0); if ((unsigned char *)-1 == (unsigned char *)map) { perror ("mmap()"); return (NULL); *************** *** 187,200 **** vid_mmap.frame = 0; vid_mmap.width = width; vid_mmap.height = height; ! if (ioctl (dev, VIDIOCMCAPTURE, &vid_mmap) == -1) { perror ("VIDIOCMCAPTURE"); ! munmap (map, vid_buf.size); return (NULL); } ! if (ioctl (dev, VIDIOCSYNC, &vid_mmap) == -1) { perror ("VIDIOCSYNC"); ! munmap (map, vid_buf.size); return (NULL); } *size = vid_buf.size; --- 187,200 ---- vid_mmap.frame = 0; vid_mmap.width = width; vid_mmap.height = height; ! if (v4l1_ioctl (dev, VIDIOCMCAPTURE, &vid_mmap) == -1) { perror ("VIDIOCMCAPTURE"); ! v4l1_munmap (map, vid_buf.size); return (NULL); } ! if (v4l1_ioctl (dev, VIDIOCSYNC, &vid_mmap) == -1) { perror ("VIDIOCSYNC"); ! v4l1_munmap (map, vid_buf.size); return (NULL); } *size = vid_buf.size; *************** *** 302,308 **** while (1) { while (max_try) { ! dev = open (device, O_RDWR); if (dev == -1) { if (!--max_try) { fprintf (stderr, "Can't open device %s\n", VIDEO_DEV); --- 302,308 ---- while (1) { while (max_try) { ! dev = v4l1_open (device, O_RDWR); if (dev == -1) { if (!--max_try) { fprintf (stderr, "Can't open device %s\n", VIDEO_DEV); *************** *** 339,346 **** redraw_window(); if (size) { ! munmap (image, size); ! close (dev); } else if (image) { free (image); } --- 339,346 ---- redraw_window(); if (size) { ! v4l1_munmap (image, size); ! v4l1_close (dev); } else if (image) { free (image); }