diff -u aatv-0.3/debian/control aatv-0.3/debian/control
--- aatv-0.3/debian/control
+++ aatv-0.3/debian/control
@@ -2,7 +2,7 @@
 Section: graphics
 Priority: optional
 Maintainer: Uwe Hermann <uwe@debian.org>
-Build-Depends: cdbs, debhelper (>= 5), autotools-dev, libaa1-dev
+Build-Depends: cdbs, debhelper (>= 5), autotools-dev, libaa1-dev, libv4l-dev
 Standards-Version: 3.8.1
 Homepage: http://aatv.sourceforge.net/
 
--- aatv-0.3.orig/src/grabber.c
+++ aatv-0.3/src/grabber.c
@@ -35,6 +35,7 @@
 
 #include <asm/types.h>
 #include <linux/videodev.h>
+#include <libv4l1.h>
 
 #include "aatv.h"
 
@@ -75,13 +76,13 @@
 	int i;
 	
 	/* open the device */
-	if ((grab_fd = open(grab_device,O_RDWR)) == -1) {
+	if ((grab_fd = v4l1_open(grab_device,O_RDWR)) == -1) {
 	  	fprintf(stderr,"open %s: %s\n",grab_device,strerror(errno));
 	  	exit_aatv (1);
      	}
 
 	/* fill the grabber structures */
-     	if (ioctl(grab_fd,VIDIOCGCAP,&grab_cap) == -1) {
+     	if (v4l1_ioctl(grab_fd,VIDIOCGCAP,&grab_cap) == -1) {
 	  	fprintf(stderr,"%s: no v4l device\n",grab_device);
 	  	exit_aatv (1);
      	}
@@ -93,28 +94,28 @@
 	printf ("minheight\t: %d\n", grab_cap.minheight);
 	
 	
-     	if (ioctl(grab_fd,VIDIOCGCHAN,&grab_chan)==-1) {
-	  	perror("ioctl VIDIOCGCHAN");
+     	if (v4l1_ioctl(grab_fd,VIDIOCGCHAN,&grab_chan)==-1) {
+	  	perror("v4l1_ioctl VIDIOCGCHAN");
 	  	exit_aatv (1);
      	}
 
-     	if (ioctl(grab_fd,VIDIOCGAUDIO,&grab_audio) == -1) {
-	  	perror("ioctl VIDIOCGAUDIO");
+     	if (v4l1_ioctl(grab_fd,VIDIOCGAUDIO,&grab_audio) == -1) {
+	  	perror("v4l1_ioctl VIDIOCGAUDIO");
 	  	exit_aatv (1);
      	}
 	
-	if (ioctl(grab_fd, VIDIOCGMBUF, &grab_info) == -1) {
-		perror ("ioctl VIDIOCGMBUF");
+	if (v4l1_ioctl(grab_fd, VIDIOCGMBUF, &grab_info) == -1) {
+		perror ("v4l1_ioctl VIDIOCGMBUF");
 		exit_aatv (1);
 	}
 	
-	if (ioctl(grab_fd, VIDIOCGPICT, &grab_pict) == -1) {
-		perror ("ioctl VIDIOCGPICT");
+	if (v4l1_ioctl(grab_fd, VIDIOCGPICT, &grab_pict) == -1) {
+		perror ("v4l1_ioctl VIDIOCGPICT");
 		exit_aatv (1);
 	}
      	
-	if (ioctl(grab_fd,VIDIOCGWIN,&grab_win) == -1) {
-	  	perror("ioctl VIDIOCGWIN");
+	if (v4l1_ioctl(grab_fd,VIDIOCGWIN,&grab_win) == -1) {
+	  	perror("v4l1_ioctl VIDIOCGWIN");
 	  	exit_aatv (1);
      	}
 
@@ -155,8 +156,8 @@
      	/* turn audio on */
      	grab_audio.flags &= ~VIDEO_AUDIO_MUTE;
 
-     	if (ioctl(grab_fd,VIDIOCSAUDIO,&grab_audio) == -1) {
-	  	perror("ioctl VIDIOCSAUDIO");
+     	if (v4l1_ioctl(grab_fd,VIDIOCSAUDIO,&grab_audio) == -1) {
+	  	perror("v4l1_ioctl VIDIOCSAUDIO");
 	  	exit_aatv(1);
      	}
 
@@ -171,7 +172,7 @@
      		grab_buf[i].height = grab_height;
 	}
 	
-	grab_data[0] = mmap(0,(size_t)grab_info.size, PROT_READ|PROT_WRITE,
+	grab_data[0] = v4l1_mmap(0,(size_t)grab_info.size, PROT_READ|PROT_WRITE,
 			    MAP_SHARED, grab_fd, 0);
 
 	
@@ -179,13 +180,13 @@
 	  	have_mmap = 1;
 		for (i=1;i<buffers_nb;i++) {
 			grab_data[i] = grab_data[0] + grab_info.offsets[i];
-			ioctl(grab_fd,VIDIOCMCAPTURE,&grab_buf[i]);
+			v4l1_ioctl(grab_fd,VIDIOCMCAPTURE,&grab_buf[i]);
 		}
 		return;
      	}
 
-     	/* fallback to read() */
-     	fprintf(stderr,"no mmap support available, using read()\n");
+     	/* fallback to v4l1_read() */
+     	fprintf(stderr,"no mmap support available, using v4l1_read()\n");
      	have_mmap = 0;
      	grab_pict.depth   = 8;
      	grab_pict.palette = VIDEO_PALETTE_GREY;
@@ -193,12 +194,12 @@
 	memset(&grab_win,0,sizeof(struct video_window));
      	grab_win.width  = grab_width;
      	grab_win.height = grab_height;
-     	if (ioctl(grab_fd,VIDIOCSWIN,&grab_win) == -1) {
-	  	perror("ioctl VIDIOCSWIN");
+     	if (v4l1_ioctl(grab_fd,VIDIOCSWIN,&grab_win) == -1) {
+	  	perror("v4l1_ioctl VIDIOCSWIN");
 	  	exit_aatv(1);
      	}
-     	if (ioctl(grab_fd,VIDIOCGWIN,&grab_win) == -1) {
-	  	perror("ioctl VIDIOCGWIN");
+     	if (v4l1_ioctl(grab_fd,VIDIOCGWIN,&grab_win) == -1) {
+	  	perror("v4l1_ioctl VIDIOCGWIN");
 	  	exit_aatv(1);
      	}
 
@@ -217,8 +218,8 @@
 {
 	/* turn off audio */
      	grab_audio.flags |= VIDEO_AUDIO_MUTE;
-     	if (ioctl(grab_fd,VIDIOCSAUDIO,&grab_audio) == -1) 
-	  	perror("ioctl VIDIOCSAUDIO");
+     	if (v4l1_ioctl(grab_fd,VIDIOCSAUDIO,&grab_audio) == -1) 
+	  	perror("v4l1_ioctl VIDIOCSAUDIO");
 }
 
 unsigned char*
@@ -227,15 +228,15 @@
      	int rc;
      	for (;;) {
 		if (have_mmap) {
-			if (ioctl(grab_fd, VIDIOCMCAPTURE,
+			if (v4l1_ioctl(grab_fd, VIDIOCMCAPTURE,
 				  &grab_buf[current_buffer]) == -1) {
-		    		perror("ioctl VIDIOCMCAPTURE");
+		    		perror("v4l1_ioctl VIDIOCMCAPTURE");
 	       		} else {
 				current_buffer = (current_buffer + 1) % 
 								buffers_nb;
-		    		if (ioctl(grab_fd, VIDIOCSYNC,
+		    		if (v4l1_ioctl(grab_fd, VIDIOCSYNC,
 					  &grab_buf[current_buffer]) == -1) {
-			 		perror("ioctl VIDIOCSYNC");
+			 		perror("v4l1_ioctl VIDIOCSYNC");
 		    		} else {
 			 		*width = grab_buf[current_buffer].width;
 			 		*height=grab_buf[current_buffer].height;
@@ -243,10 +244,10 @@
 		    		}
 	       		}
 	  	} else {
-	       		rc = read(grab_fd,grab_data[current_buffer],
+	       		rc = v4l1_read(grab_fd,grab_data[current_buffer],
 				  (size_t)grab_size);
 	       		if (grab_size != rc) {
-		    		fprintf(stderr, "grabber read error (rc=%d)\n",
+		    		fprintf(stderr, "grabber v4l1_read error (rc=%d)\n",
 					rc);
 		    		return NULL;
 	       		} else {
@@ -262,8 +263,8 @@
 get_freq (void)
 {
 	unsigned long freq;
-     	if (ioctl(grab_fd, VIDIOCGFREQ, &freq) == -1)
-	  	perror("ioctl VIDIOCGFREQ");
+     	if (v4l1_ioctl(grab_fd, VIDIOCGFREQ, &freq) == -1)
+	  	perror("v4l1_ioctl VIDIOCGFREQ");
      	return (freq * 125 / 2);
 }
      
@@ -271,13 +272,13 @@
 change_freq (unsigned long freq)
 {
      	freq = freq * 2 / 125;
-     	if (ioctl(grab_fd, VIDIOCSFREQ, &freq) == -1)
-	  	perror("ioctl VIDIOCSFREQ");
+     	if (v4l1_ioctl(grab_fd, VIDIOCSFREQ, &freq) == -1)
+	  	perror("v4l1_ioctl VIDIOCSFREQ");
 /*
 	usleep (100000);
 	
-	if (ioctl(grab_fd, VIDIOCGTUNER, &grab_tuner) == -1)
-		perror("ioctl VIDIOCGTUNER");
+	if (v4l1_ioctl(grab_fd, VIDIOCGTUNER, &grab_tuner) == -1)
+		perror("v4l1_ioctl VIDIOCGTUNER");
 
 	if (grab_tuner.signal) printf("tuned\n");
 	else printf ("not tuned\n");
@@ -289,8 +290,8 @@
 set_video_norm (int vidnorm)
 {
 	grab_chan.norm = vidnorm;
-	if (ioctl(grab_fd,VIDIOCSCHAN, &grab_chan)) {
-		perror ("ioctl VIDIOCSCHAN");
+	if (v4l1_ioctl(grab_fd,VIDIOCSCHAN, &grab_chan)) {
+		perror ("v4l1_ioctl VIDIOCSCHAN");
 		return -1;	
 	}
 	return 0;
@@ -309,8 +310,8 @@
 		return -1;
 	
 	grab_chan.channel = source;
-	if (ioctl(grab_fd,VIDIOCSCHAN,&grab_chan) == -1) {
-		perror ("ioctl VIDIOCSCHAN");
+	if (v4l1_ioctl(grab_fd,VIDIOCSCHAN,&grab_chan) == -1) {
+		perror ("v4l1_ioctl VIDIOCSCHAN");
 		return -1;	
 	}
 	return 0;
@@ -325,17 +326,17 @@
 void
 set_picture_properties (void)
 {
-     	if (ioctl(grab_fd, VIDIOCSPICT, &grab_pict) == -1)
-	  	perror ("ioctl VIDIOCSPICT");
+     	if (v4l1_ioctl(grab_fd, VIDIOCSPICT, &grab_pict) == -1)
+	  	perror ("v4l1_ioctl VIDIOCSPICT");
 	usleep (10000);
-	if (ioctl(grab_fd, VIDIOCGPICT, &grab_pict) == -1)
-	  	perror ("ioctl VIDIOCGPICT");
+	if (v4l1_ioctl(grab_fd, VIDIOCGPICT, &grab_pict) == -1)
+	  	perror ("v4l1_ioctl VIDIOCGPICT");
 }
 
 void
 get_picture_properties (void)
 {
-     	if (ioctl(grab_fd, VIDIOCGPICT, &grab_pict) == -1)
-	  	perror ("ioctl VIDIOCGPICT");
+     	if (v4l1_ioctl(grab_fd, VIDIOCGPICT, &grab_pict) == -1)
+	  	perror ("v4l1_ioctl VIDIOCGPICT");
 }
      
--- aatv-0.3.orig/src/Makefile.in
+++ aatv-0.3/src/Makefile.in
@@ -72,7 +72,7 @@
 aatv_SOURCES =  aatv.c aatv.h grabber.c
 
 
-aatv_LDFLAGS =  -lm
+aatv_LDFLAGS =  -lm -lv4l1
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = ../config.h
 CONFIG_CLEAN_FILES = 
--- aatv-0.3.orig/src/Makefile.am
+++ aatv-0.3/src/Makefile.am
@@ -8,5 +8,5 @@
 aatv.c aatv.h \
 grabber.c
 
-aatv_LDFLAGS += -lm
+aatv_LDFLAGS += -lm -lv4l1
 
