Dne Wednesday 12 of November 2008 10:52:35 jste napsal(a):
Lukáš Karas wrote:
Erm, I've successfully tested skype with the new gspca and libv4l with various webcams, that works fine without any if your hacks. Perhaps it would help if you would explain what you are seeing, what cam you are using and if you could attach a libv4l logfile of this.
To make a log file (with an unpatched libv4l please) do: LIBV4L2_LOG_FILENAME=/tmp/log skype
And then try to use the cam in skype, after exiting skype again attach /tmp/log.
Regards,
Hans
Ok, of course. I have kernel 2.6.27-rc8, architecture x86_64, newest gspca_m5602 driver, Skype version 2.0.0.27 and 2.0.0.72. My camera id is 0402:5602 (lsusb).
Own driver support only BA81 pixelformat with resolution 640x480.
Hi Hans Sorry for late answer.
Ah only a resolution of 640x480, yes that will make skype unhappy, I'm amazed it does work with your, return -EINVAL when we do not support the pixelformat, workaround.
Is skype showing the whole picture, or only the upper left corner of the picture with your workaround ?
Yes, Skype show whole image with my workaround. By the way, I tried which all formats request Skype, when result is always -1. Log from this test is attached.
Anyways attached is a patch which will work around this in a different (IMHO less ugly) way. It actually removes a number of lines of code.
Can you give this one a try please. Note with this patch skype will only show the middle 320x240 of the webcam picture.
Ok, this work fine! It dosn't solve Skype S_FMT bug, only add support for first requesting format... but yes, it is solution :)
This could be fixed by checking if dest_width < 2 * src_width in v4lconvert_crop() from libv4lconvert/crop.c
And if this is the case call special (to be written) versions of v4lconvert_crop_rgbbgr24() v4lconvert_crop_yuv420(). I would be very happy to take a patch doing this!
I will make all, what you want :)
See crop.patch ... Function v4lconvert_reduceandcrop_yuv420 work fine, v4lconvert_reduceandcrop_rgbbgr24 is untested!
Regards, Lukas