I have a few lines to get you going from objc... I use OpenCL and OpenGL in the captureOutput delegate so your on your own there but this would be a start.
- (void)awakeFromNib { NSError *error = nil; if (!mCaptureSession) { // Set up a capture session that outputs raw frames BOOL success; mCaptureSession = [[QTCaptureSession alloc] init]; // Find a video device QTCaptureDevice *device = [QTCaptureDevice defaultInputDeviceWithMediaType: QTMediaTypeVideo]; success = [device open:&error]; if (!success) { [[NSAlert alertWithError:error] runModal]; return; } // Add a device input for that device to the capture session mCaptureDeviceInput = [[QTCaptureDeviceInput alloc] initWithDevice:device]; success = [mCaptureSession addInput:mCaptureDeviceInput error: &error]; if (!success) { [[NSAlert alertWithError:error] runModal]; return; } // Add a decompressed video output that returns raw frames to the session mCaptureDecompressedVideoOutput = [[QTCaptureDecompressedVideoOutput alloc] init]; [mCaptureDecompressedVideoOutput setDelegate:self]; success = [mCaptureSession addOutput:mCaptureDecompressedVideoOutput error: &error]; if (!success) { [[NSAlert alertWithError:error] runModal]; return; } // Start the session [mCaptureSession startRunning]; } } - (void)dealloc { [mCaptureSession release]; [mCaptureDeviceInput release]; [mCaptureDecompressedVideoOutput release]; [super dealloc]; } // This delegate method is called whenever the QTCaptureDecompressedVideoOutput receives a frame - (void)captureOutput:(QTCaptureOutput *)captureOutput didOutputVideoFrame:(CVImageBufferRef)videoFrame withSampleBuffer:(QTSampleBuffer *)sampleBuffer fromConnection:(QTCaptureConnection *)connection { } On Jan 11, 2011, at 6:58 AM, Ben Dean wrote: > Hmm, thanks, I really appreciate the help. Obviously an oversight on my > part, but I'm targeting OSX and the built-in apple "iSight" or whatever they > iCall it. It looks like it's on the list for UVC. I'm pretty new to this > game, and have very little experience with language interop and device > drivers, so I'd really value an overall idea what the interface between a > driver and Racket would look like. I think the target audience of the UVC > site knows more about this sort of thing than I do, so any additional > pointers would be great. > > On Tue, Jan 11, 2011 at 6:51 AM, Neil Van Dyke <n...@neilvandyke.org> wrote: > Noel Welsh wrote at 01/11/2011 05:31 AM: > > Then depending on the platform and webcam different APIs are available. > > > Yeah, webcam support has always been a mess, on all platforms. > > If you're on GNU/Linux, I'm not sure of the current best approach, but I > guess would probably start with Linux UVC and some popular, high-quality USB > camera that is supported by UVC. http://www.ideasonboard.org/uvc/ > > I'd have the compatibility list on that page in one hand, and Newegg.com in > the other hand. And before buying, I'd do a quick Google for the make&model > and "linux" and "uvc" to see if anyone is reporting problems. It happens. > > You could also do eBay, where I recall there have been some sweet spots of > premium cameras that are supported well by Linux but that are inexpensive > now. (Sorry, I don't remember particular models anymore.) One of the nice > things about slightly-older devices is that there's been time for Linux > device support to be implemented and tested. > > If you're using a less-popular slightly-older camera, beware that some > manufacturers have made engineering changes to their cameras without changing > the model number, sometimes breaking drivers that have been > reverse-engineered. Compatibility tables might not be aware of the multiple > variants -- sometimes someone just reported that a particular model worked > (perhaps with a small patch for the ID or something), so that model would > marked as supported in the table, without any awareness that there are > multiple variants. > > -- > http://www.neilvandyke.org/ > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users