Voice and Video architecture re: Adium
rokenrol at gmail.com
Wed Aug 18 00:31:41 EDT 2010
Mr Vehse: I have now subscribed, and will berate Aqueous with questions asap.
Dr Schoenberg: I second your call for an overview (think of this as an
elaborate thread bump :). The other thing that will be a bit tricky is
that while Pidgin relies solely on libpurple for its protocol
functionality, libpurple is but one of at least (if I'm reading the
source tree correctly) engines which power communications in Adium.
So, merely aping Pidgin might not work since we would also have to
implement an engine-agnostic way of signaling what VV properties a
given connection has.
Food for thought, and another reason I'd like an explanation of
machinery that is divorced from Pidgin's particular usage.
On Tue, Aug 17, 2010 at 8:46 PM, Evan Schoenberg, M.D. <evan at adium.im> wrote:
> 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