As mentioned in the previous post, I have been working on a userspace driver for UVC cameras under MacOS X.
As the basic functionality for my camera is there, I have decided to release the code to the public. Feel invited to join development now!
I will try to keep the wiki-page updated, instruction on where to find the code are there aswell.
If you like to collaborate on this, please report in the comments to this post. I will set-up an SVN account for you then. Depending on how this is going, I could possibly set-up an own trac as well, but for now I guess this is not necessary.
Also, I would be happy if you could report any experiences - but do not expect that I am able to fix any bugs very soon.
As I restructure everything on this website, the wiki is gone. Feel free to check the code directly from SVN, if interested. I will create a dedicated page again some time later
svn co http://svn.ioctl.eu/mac_uvc/trunk/mac_uvc
2010-03-06 21:17
7 Comments:
Elliot Woods wrote
Elliot Woods wrote
Elliot Woods wrote
zerm wrote
diode wrote
zerm wrote
anonymous wrote
Comment on this?
2011-03-30 19:27
Hi Max
This looks great.
Can't wait to see it working!
I've got a c910 and after cp'ing the svn, repointing the uvc.framework in UVCap, I get the app compiling, running and detecting my camera.
The Product and Vendor are both reported as "É" with the following in the console <
name request failed
name request failed
name request failed
name request failed
2011-03-31 02:11:07.215 UVCCap[40181:903] UVCCameraProber dealloc
free device_info_t
>
Then when I select a device I get a window with a red screen reporting "XXX fps, XXX KiBps at 640x480x0 24.00fps"
All modes listed report 0 bits per pixel, but the list of resolutions seems good
Many modes are listed as "inffps". selecting these results in a EXC_BAD_ARITHMATIC error on line " req_bw *= 10000000 / conf.interval + 1;".
I presume these modes are more like 'variable' fps where the camera feeds frames to the PC whenever it feels like (e.g. based on exposure time)
Without changing the detault mode of 640x480x0, i get the following in the console:
name request failed
name request failed
name request failed
name request failed
2011-03-31 02:18:36.362 UVCCap[40354:903] UVCCameraProber dealloc
free device_info_t
>> interval 416666
not enough bandwidth want: 12, get: 3060
wrong max video frame buffer size!
2011-03-31 02:18:38.489 UVCCap[40354:903] Could not configure camera!
2011-03-31 02:18:43.983 UVCCap[40354:903] exposure in [-1,-1]
2011-03-31 02:19:25.286 UVCCap[40354:903] exposure in [-1,-1]
and a red window with no video.
also the camera light doesn't come on
Implementing UVC seems like such a huge task. It's a shame Apple haven't done it properly themselves :)!
Best of luck with the project and all your other work.
Please get in touch if you have a chance to look at this again.
Good luck!
Elliot
2011-03-30 19:29
arggh. all the whitespace was eaten out of my message making it pretty incomprehensible! sorry! the whitespace is still present in the source, but tabs/newlines aren't htmlified.
2011-03-30 19:30
Ok. So after a quick look. I'm probably getting the buffer size error because it thinks my bits per pixel is 0. and i'm perhaps getting report of 0 because my cam supports YUYV and MJPG but not raw RGB.
2011-03-31 12:53
Hey Elliot, yeah i've written this "blog software" myself from scratch and looks like i've forgot to add some parsing to the comments; i'll fix that.
Regarding UVC: Well, I could just try it with my own camera and there are some things not yet supported (because i could not test them). If i recall correctly, i only support YUV422 for now, so that shouldn't be a problem. Nevertheless, sometimes my builtin isight is detected, but selecting it crashes, so i guess there's still a lot to do..i'll take a look in your log as soon as i find time. But feel free to fix it yourself, I can give you SVN access then, if you like ;)
2011-09-13 18:56
Hi Elliot, not sure if you're still on the case, (and not that I've got it working..), but I did get the same error as you at first, then switched from 64-bit to 32-bit and the error is gone (I remember reading somewhere about quicktime and 32-bit, but not sure what) - but.. I'm still stuck at a red screen, and a continuously raging dump of errors in the output:
2011-09-13 17:53:31.431 UVCCap[15296:903] Inconsistent set of values to create NSBitmapImageRep
2011-09-13 17:53:31.441 UVCCap[15296:903] Inconsistent set of values to create NSBitmapImageRep
2011-09-13 17:53:31.451 UVCCap[15296:903] Inconsistent set of values to create NSBitmapImageRep
does anyone know what that stands for?
Zerm, could you perhaps tell with which camera this should definitely work? Thanks!
2011-09-15 09:50
Hey diode,
I moved and currently don't have much time, thus I haven't done anything lately ;)
My camera is still in my old home so I can't really tell you the exact model. It was something like "Venus" - just a cheap webcam. I can check next time I get to my old home ;)
2011-12-02 11:22