Sorry this has taken so long. I had it sitting in my to-do pile forever. And I had figured out the problem, just not fixed it.
Thanks to Morgan at bluecrash.com for sending me an email to kick me in the ass and spend the ten minutes to fix it.
If you are wondering what the problem was it was that I had forgotten to lock the CVPixelBaseAddress before trying to access the CV frame pixel data. (when grabbing frames off the QTCapture frame buffer)
On Leopard this worked fine (for some reason) but was wrong. Here is the proper way to go about it:
// Lock the base addy for the pixels // or it will return nil CVPixelBufferLockBaseAddress(videoFrame,0); unsigned char * srcBytes = CVPixelBufferGetBaseAddress(videoFrame); . . . // dont forget to unlock it when you are done CVPixelBufferUnlockBaseAddress(videoFrame,0);
And that seemed to be the problem on snow leopard. I know, lame and easy. So again my apologies for not just getting it done sooner.
Also, I do plan to release the code for xTouch, but it needs a refactor and a clean first, so that will have to wait. You can get the binary (works on leopard and snow leopard) here: