Tagged: syphon iglasses
February 27, 2012 at 6:19 pm #5702
I’m happy to announce that the latest update of iGlasses (3.1) is using Syphon to pass the video frames around. iGlasses is a virtual camera that shows up in video apps and lets you make adjustments or add effects to your image.
I was originally passing the IOSurfaces myself, but after discovering Syphon, which was doing exactly what I was trying to do (except better), it was a no-brainer to make the switch. It was a perfect fit.
We had to make some small additions to the client because we don’t actually need to draw the frames into a context. I added a few new calls so that I could access the bytes directly.
Thanks guys!February 28, 2012 at 4:25 am #5706
Cool – glad it’s working. It seems things don’t suffer too much from your locking the surface for buffer access, which is good to see.
You could consider passing in SyphonServerOptionIsPrivate when you create servers as your servers aren’t particularly useful other than to you (generally upside down, require the fake video device to be active). You’d then have to pass the serverDescription dictionary between processes – you presumably already have a communication channel you could send that through.
Anyway, good to hear Syphon helped!February 28, 2012 at 8:00 am #5707
In my client I’m using CVPixelBufferCreateWithIOSurface and then locking the pixel buffer with the kCVPixelBufferLock_ReadOnly flag. I _think_ this improves performance as things don’t get invalidated.
Thanks for letting me know about that flag. I’ll check it out. Ideally I’d like iGlasses to be a Syphon Server that other Syphon uses might actually find useful. Right now, as you noticed, it’s upside down and only works when iGlasses is otherwise running. I’d like to get that working better some day.
Also, I’d like to implement a feature where another Syphon Server could be used as an input to iGlasses. This way, people could easily turn the output of their Syphon-enabled app into a virtual camera.February 28, 2012 at 9:50 am #5708
Cool, I haven’t looked into pixel-buffer access much.
Having iGlasses be a useful server would be great – publishing your frames the right way up shouldn’t be too difficult. SyphonServer is Key-Value-Observable for hasClients, so if you register for notifications for that using the standard KVO mechanism you could switch on/off the camera whenever that toggles.
I think a lot of people would be excited to see a Syphon-to-video-device bridge.July 30, 2012 at 7:57 am #6234
Just wanted to add that the latest iGlasses update v3.2.1 has a cool new feature for Syphon users.
Any available Syphon servers will now show up as video sources along-side the cameras in the camera picker menu. This lets you use iGlasses as a way to turn any Syphon feed into a virtual camera for piping into any video app like FaceTime or Skype.
It’s currently VGA and runs at 15 fps, but I’m hoping to make that more dynamic in the next update.July 30, 2012 at 1:33 pm #6238
Cool – having the camera match the frame dimensions would be awesome, but this is a fun start. Nice!
- You must be logged in to reply to this topic.