diff -Bburw /home/tz/sbnok/t/flashcam-1.1/vloopback-1.1.2/vloopback.c vloopback.c--- /home/tz/sbnok/t/flashcam-1.1/vloopback-1.1.2/vloopback.c 2008-03-27 04:30:34.000000000 -0500 +++ vloopback.c 2008-05-12 14:11:47.000000000 -0500 @@ -156,7 +156,7 @@ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) #include <media/v4l2-common.h> #endif - +#define CONFIG_VIDEO_V4L1_COMPAT 1 #include <linux/videodev.h> #include <linux/vmalloc.h> #include <linux/wait.h> @@ -349,6 +349,7 @@ } else { if (loops[nr]->ropen || loops[nr]->wopen) return -EBUSY; + loops[nr]->pendingread=0; loops[nr]->framesdumped=0; loops[nr]->frameswrite=0; loops[nr]->wopen=1; @@ -390,6 +391,7 @@ wake_up(&loops[nr]->wait); } + loops[nr]->pendingread=0; loops[nr]->width=0; loops[nr]->height=0; loops[nr]->palette=0; @@ -406,6 +408,7 @@ if (waitqueue_active(&loops[nr]->wait)) { loops[nr]->pendingread = 1; wake_up(&loops[nr]->wait); + loops[nr]->pendingread = 0; } loops[nr]->ropen=0; if (loops[nr]->zerocopy && loops[nr]->buffer) {