Information on the Pidgin Audio/Video chat implementation and on how to get it to work on the Mac

I'm creating this page in anticipation of the pending release of Pidgin 2.6.0 which will feature support for Audio and Video Chat (A/V). I've spoken to Maiku and BigBrownChunx and they have supplied me with some information I'm gathering here.
Note: this page is meant for developers only. (Robby, August 3rd 2009)

People to contact

  • Maiku (Mike Ruprecht), 2008 Pidgin Google Summer of Code student who worked on the "Voice and Video Support" project, primary contributor to the A/V chat development and developer at the Pidgin project since.
  • KaKaRoTo (Youness Alaoui), Project manager and developer of the aMSN project
  • BigBrownChunx (Eion Robb) of Pidgin, tester of A/V chat development at the Pidgin project, has offered to help
  • darkrain42 (Paul Aurich), regular contributor and developer at the Pidgin project

Basic information

Operating systems and protocols supported

Linux Windows
XMPP (including Gtalk "normal" and in-browser) Done Almost done
MSN in the works -
Yahoo -

Libraries used

  • Farsight: protocol handling
  • GStreamer: for sound (and video in libpurple)
  • Libnice: dependency of Farsight

Further Resources

Further information on getting it to work on the Mac


(12:25:13) Mike Ruprecht: everything is in libpurple/media*.[ch] and pidgin/gtkmedia.[ch]
(12:25:26) Mike Ruprecht: apart from protocol support :P
(12:26:01) Mike Ruprecht: the part I'd imagine might be tricky is embedding the video source in the window
(12:26:29) Mike Ruprecht: I'm not sure what osx uses for graphics and/or if gst_x_overlay supports outputting to it
(12:26:59) Mike Ruprecht: you may also need to toss in the default src and sink elements necessary
(12:29:14) Mike Ruprecht: kakaroto may be a good person to ask about the more osx specific stuff


(01:19:22) Eion Robb: there's also some new signals fired for the media stuff so that you can open windows up
(01:19:30) Eion Robb: ah, that'll be where I'm thinking of the os specific stuff
(01:19:45) Eion Robb: pidgin/media.c
(01:15:56) Eion Robb: there's also a new USE flag to compile pidgin with the vv stuff
(01:16:01) Eion Robb: I think its USE_VV ?
(01:16:26) Eion Robb: but doing so is going to compile the x11 specific stuff for it
(01:25:08) Eion Robb: the tricky bit is the call to purple_media_set_output_window(), since its expecting a window_id as a gulong
(01:25:25) Eion Robb: on windows the comand is GDK_WINDOW_HWND, on x11 GDK_WINDOW_XWINDOW but I don't know about osx 
(01:25:47) Eion Robb: I think its QUARTZ_WINDOW_something
(01:27:03) Eion Robb: ah, you can just use the NSWindow, I believe and cast it to a gulong

Elliott Harris

(23:22:06) Elliott Harris: but I have a pretty intricate knowledge of QTKit and the way we should go about doing this.
(23:22:38) Elliott Harris: The only question I have really is how they expect us to get 1) a frame of video and 2) a buffer of audio data.
(23:22:51) Elliott Harris: because that's what we really want, as opposed to giving them a window and letting them dump whatever they want into it.
(23:23:49) Elliott Harris: audio is less pertinent because I believe gstreamer can hook into Core Audio.
Page last modified by Robert, 10 years ago