This is a patch to add input selection, norm (ntsc:pal) selection, and I noticed that usbstk11xxisochandler was getting called continuously after loading the driver, I changed that to only have that enabled after the device was opened. I also noticed that the 1st capture from this device was always a half field green capture so I added logic to capture multiple times before submitting the buffer to the user only on the 1st capture. Also add some synchronisation to the usbstk11xxisochandler borrowed from the PWC driver to make sure the stream starts with a valid frame. This is all from the perspective of the 05e1:0408 4-channel device and I didn't put in the logic not to interfere with the other syntek cameras.
Having done this I am now able to use this driver under the openwrt project with my WGT634U router. However I'm only able to get .5 frames per second using palantir as the video server.
If anyone out there can please help to get this working better for the openwrt project please do. I was hoping to use this adapter w/ the WGT634U as a wireless 4-port camera server.
I have integrated a part of this patch...
But it seems that some part aren't usefull !
I have to find the time to work about it.
Thank's a lot for your work.
Regards,
Can you explain this part of patch :
diff -NaurB syntekdriver/stk11xx-v4l.c syntekdriver.good/stk11xx-v4l.c
--- syntekdriver/stk11xx-v4l.c 2009-10-16 16:49:35.000000000 -0400
+++ syntekdriver.good/stk11xx-v4l.c 2009-10-16 16:44:35.000000000 -0400
@@ -1368,35 +1367,44 @@
if (fmtd->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
+ fmtd->fmt.pix.sizeimage = fmtd->fmt.pix.width * fmtd->fmt.pix.height;
+ fmtd->fmt.pix.colorspace = V4L2_COLORSPACE_SRGB;
+
switch (fmtd->fmt.pix.pixelformat) {
case V4L2_PIX_FMT_RGB24:
dev->vsettings.depth = 24;
dev->vsettings.palette = STK11XX_PALETTE_RGB24;
+ fmtd->fmt.pix.sizeimage *= 3;
break;
case V4L2_PIX_FMT_RGB32:
dev->vsettings.depth = 32;
dev->vsettings.palette = STK11XX_PALETTE_RGB32;
+ fmtd->fmt.pix.sizeimage *= 4;
break;
case V4L2_PIX_FMT_BGR24:
dev->vsettings.depth = 24;
dev->vsettings.palette = STK11XX_PALETTE_BGR24;
+ fmtd->fmt.pix.sizeimage *= 3;
break;
case V4L2_PIX_FMT_BGR32:
dev->vsettings.depth = 32;
dev->vsettings.palette = STK11XX_PALETTE_BGR32;
+ fmtd->fmt.pix.sizeimage *= 4;
break;
case V4L2_PIX_FMT_UYVY:
dev->vsettings.depth = 16;
dev->vsettings.palette = STK11XX_PALETTE_UYVY;
+ fmtd->fmt.pix.sizeimage *= 2;
break;
case V4L2_PIX_FMT_YUYV:
dev->vsettings.depth = 16;
dev->vsettings.palette = STK11XX_PALETTE_YUYV;
+ fmtd->fmt.pix.sizeimage *= 2;
break;
fmtd pointer is a argument input for the ioctl function.
Regards,
Nicolas
Hi Nicklas,
Yes, I put those fmtd-> changes in so that the information got back
to the application that called in. I.E> I'm using palantir and it displays
this info to the user although it is not critical, just informational.
-Rick