Voice and Video architecture re: Adium
Evan Schoenberg, M.D.
evan at adium.im
Tue Aug 17 21:46:37 EDT 2010
On Aug 13, 2010, at 7:14 PM, Gatlin Johnson wrote:
> I have been lurking in the IRC room for a while, and I realize that my
> question probably lends itself to a little more verbosity. I have some
> free time and would like to implement VV, in some rudimentary fashion,
> in Adium.
> So far as I know, the current version of libpurple shipping with Adium
> has VV support built in. Gstreamer and Farsight both build on Mac OS
> X. My hope here is that an Adium dev is also reading this :)
> My understanding is thus: PurpleMediaManager is initialized and
> figures out capabilities and manages PurpleMedias, which encapsulate
> the VV session with a contact on a particular PurpleAccount. The
> PurpleMedia is retrieved when a call is initialized by either party
> (remote or local) and, somewhere, provides gstreamer sources and sinks
> to interact with. I found pidgin_media_new_cb in gtkmedia.c which
> appears to be something of an entry point.
> Not being proficient with gtk/glib, I'm having a spot of trouble
> determining which signals to listen for when VV sessions are
> initialized, or how to interact with the various media pipes, and I'm
> slow to figuring out how PidginMedia works. A high-level overview of
> how what objects are used to do what would be very helpful.
> I have done my best to look through the wiki and API docs but it might
> be more efficient if someone knowledgeable gave me some pointers.
Several Adium devs are subscribed to pidgin-devel, but I, at least, don't know much more than you do about PurpleMediaManager yet.
I'm not aware of documentation outside of the header files (which do a good job on a per-function basis but don't provide module overviews). A high-level overview on the wiki or, more portably, within the header files would be awesome. Who was responsible for media/mediamanager or knows it well enough to potentially be convinced to help with the explanation?
More information about the Devel