Edit 8/2/2010
Ik heb de webcam en het Cheese programma op een Ubuntu 9.10 machine geïnstalleerd.
De webcam werkt in Cheese als een speer, maar Skype weigert nog steeds om beeld te tonen.
Ben bij Skype gaan zoeken en stel vast dat Skype en OV519 geen gelukkige combinatie is

.
Op het Skype forum heb ik de volgende informatie gevonden;
[zie ook
http://forum.skype.com/index.php?s=8c35b7cdf546e926ba5cf57a08f39b48&showtopic=100897&st=40&p=464321&#entry464321]
---------------------------------------------------------------------------------------------------------------------------------
First of all: that 640x480 does mean too much. They are grabbing 640x480 but downscale later in ov51x-jpeg.
But I got the Camdriver is working by setting "noblock" = false in the driver. It seems skype does not care about my the cam returning EAGAIN?
So the message is: Cam works if you overwrite the "noblock" by noblock =0
I managed to do it on my own, and it works!
Find the patch attached!
[Zie de inhoud van de patche aan het einde van dit bericht]- Copy it into the ov51x-1.5.3 Source directory (where ov51x-jpeg-core.c resided)
- patch -p1 < ov51x-jpeg-core.noblock.patch.txt
- make clean
- make
(as root)
- make install
- rmmod ov51x-jpeg
- modprobe ov51x-jpeg forceblock=1
(you can modify /etc/modprobe.conf as well: Add a line
options ov51x-jpeg forceblock=1
into the file
)
NOTE!! This is hack! A workaround for this probelm! This is not a fault in the driver. So please don't bother the ov51x-guys. And try to remove this hack as soon as the problem is fixed
------------------------------------------------------------------------------------------------------------------------------------
Patch--- ../../ov51x-jpeg-1.5.3/ov51x-jpeg-core.c 2007-11-01 17:19:37.000000000 +0100
+++ ov51x-jpeg-core.c 2007-11-18 19:56:30.000000000 +0100
@@ -208,6 +208,7 @@
static int framedrop = -1;
static int framerate = -1;
static int dumpjpeg = 0;
+static int forceblock = 0;
static int fastset;
static int force_palette;
static int backlight;
@@ -308,6 +309,8 @@
MODULE_PARM_DESC(framerate, "Force a specific framerate for OV519 (values: 5,10,15)");
module_param(dumpjpeg,int,S_IRUGO);
MODULE_PARM_DESC(dumpjpeg, "Dump JPEG uncompressed frames for OV519");
+module_param(forceblock,int,S_IRUGO);
+MODULE_PARM_DESC(forceblock, "Do a blocking Read regardless of the applications request");
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(OV51x_JPEG_DESC);
@@ -5717,6 +5720,10 @@
int err, i;
PDEBUG(4, "opening");
+ if (forceblock){
+ PDEBUG(3, "All reads will be blocking.");
+ }
+
down(&ov->lock);
@@ -6378,7 +6385,10 @@
struct usb_ov511 *ov = video_get_drvdata(vdev);
int i, rc = 0, frmx = -1;
struct ov511_frame *frame;
-
+ if (forceblock > 0){
+ PDEBUG(4, "Force blocking read (noblock=0)");
+ noblock = 0;
+ }
if (down_interruptible(&ov->lock))
return -EINTR;
-----------------------------------------------------------------------------------------------------------------------------------
Ik ben niet goed thuis in het lowlevel modificeren van Linux. Kan/wil iemand mij uitleggen ;
1. Wat ga ik met deze patch in mijn systeem wijzigen?
2. Kan ik dit straffeloos doen?
Bij voorbaat dank voor de moeite
wimduk