Voice and Video architecture re: Adium

Gatlin Johnson rokenrol at gmail.com
Fri Aug 13 20:14:55 EDT 2010

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.

Gatlin Johnson

More information about the Devel mailing list