passing video between apps
Recently, I asked the Modul8 folks whether it was possible (and
practical) to pass video between applications
(http://www.garagecube.com/forum/viewtopic.php?p=3211). I see two big
advantages for visualists here: seamless transitions between programs
during sets and chaining of programs (so that you can plug the
sophisticated processing of Jitter into the sophisticated interface of
Modul8 and vice versa, for example). I was told:
> As far as I know I don’t think it is possible to share VRAM buffers between two different processes in OS X.
The final frame in Modul8 is in VRAM so it would require first to copy
it to RAM. Then the frame should be transfered to the other
application using an inter-process mechanism. There are various ways
to do that… Cocoa has a very easy API for this purpose. It allows an
application to call a function from another process in order to share
functions and datas. This is something I could implement pretty
easily. It would allow any application to grab frame or send keywords
to Modul8. Could be interesting.
Now I don’t know well Max, so I don’t know if it is possible to access
this kind of API from it.
—and when i asked what API that was, Yves said:
> Well, basically I was referring to the distributed objects available in the Cocoa API.
Currently it could be accessed from Objective-C, Java or Python. So I
guess a Max plug-in needs to be written. Now if there is a protocol
supported by Max that allows frames to be transferred let me know.
Regarding distributed objects:
Thoughts? I would love to see this happen.
This may or may not help you much, but a program called "patchbox"
allows you to use freeframe plugins to send and receive compressed streams of video. The same person just released a couple of dedicated objects for uncompressed video that don’t require the standalone application.
The author has mentioned porting to OSX and Linus, but for right now they are just XP plugins.
at risk of sounding advertizy, which i avoid doing unless very
relevant, livid union doesn’t share video with max (and we don’t
directly support socket access – demand doesn’t really make it so we
are worth our salt :) , but you CAN integrate max patches of your own
design into the program and run them from within union. This way you
can make your own effect and video layers and sources and, if properly
done, they will incorporate seamlessly into the midi and interface of
the host program.