Adium

Archive for the ‘VoiceAndVideo’ Category

Pidgin introduces support for Audio and Video Chat in 2.6.0; what about Adium?

Wednesday, August 19th, 2009

Dear Adium community,

As some of you may have heard, the Pidgin Project has just released Pidgin 2.6.0 which supports audio and video communication (commonly referred to as A/V or V/V) over XMPP (Jabber, Google Talk, etc.). First, a huge congratulations to the Pidgin team, for whom this is a major milestone!
Knowing that Adium and Pidgin share the same backend, libpurple, the logical question is:

What will happen in Adium? Where is Voice and Video support in our favorite Mac OS X chat client?

Some history

In October 2007, hopes were raised by two Adium team blog posts:

Happy Leopard Day!” and ”A/V Questions Answered

A small team volunteered then to tackle the great effort of implementing Audio and Video chat, using the partially-developed support found in libpurple at that time. It made a limited amount of progress, but two major barriers were encountered: First, libpurple wasn’t ready to provide reliable voice & video support. Second, the scope of the project far outweighed the available manpower. The project stalled before it even really took off.

The team at present

The Adium team currently has a fraction of the manpower it once did.  We throw ourselves into this labor of love when possible, but the number of people who have committed code in the past 3 months can be counted on one hand.  Adium has been, perhaps, its own worst enemy in terms of maintaining the team, as our developers commonly step from here to excellent but demanding jobs within and without the CS world (including multiple at Apple). We have even less manpower now than when efforts failed in late 2007.

We’re not complaining, we’re not offering excuses, and we’re not asking for donations of money or server resources.

We are seeking interested developers and designers!

Join an exciting, popular open source project with a proven track record of being both successful worldwide and a fantastic resumé builder. Voice & video offers a huge new domain to explore.

The state of the code

We have successfully compiled libpurple and its dependencies with voice & video support. What remains is implementation of libpurple’s media API and production of an Adium-quality UI for it. That will include a lot of code, though hopefully we’ll find that the QuickTime and Core Graphics frameworks in Mac OS X 10.5 can do much of the heavy lifting for us. We’ll also need icons. More development thoughts can be found on Adium’s VoiceAndVideo page.

Want to help?

Developers and designers, feel free to join us on IRC or email the Adium development mailing list… or dive right in and start contributing!

Clarifications

Wednesday, November 14th, 2007

I’ve been getting a lot of questions about this since Andreas’ blog post went up, so I think everyone deserves a bit of explanation of what the MeBeam video plugin is and isn’t.

The MeBeam plug-in is:

  1. Pretty spiffy :)
  2. Developed almost entirely by a third party
  3. Primarily web-based

The MeBeam plug-in is not:

  1. A product of the Adium Team (Andreas works on it, but not as part of Adium—he works on it separately from the Adium Project)
  2. The long-awaited Adium video chat solution
  3. Taking any development resources at all away from that solution (the plugin is extremely simple)
  4. Included with Adium by default

A/V for Adium!

Friday, November 9th, 2007

During all our work on integrating audio and video into Adium, it seems that a company called MeBeam was way ahead of us. They implemented a cross-platform, protocol-agnostic videochat solution using Flash. The best of all: They allowed us to integrate with their service!

What this means is that starting today, Adium has support for videochat!
MeBeam has very compelling features:
  • Cross-platform
  • Cross-service
  • No installation necessary on the invitee side, except for some IM client, a web browser and the Flash plugin
  • Up to 15 people in a multiuser-videochat, not required to use the same IM network
  • Fewer issues with firewalls than other solutions

What do you have to do to make use of it? First, you need a webcam obviously, and a headset is recommended. Then, download the plugin and double-click it, so Adium can place it into the right location. Relaunch Adium, and you’re good to go.

When you want to videochat with someone, ctrl-click (or right-click) them and choose “Initiate MeBeam Videochat”. That’s all!

A/V Questions Answered

Monday, October 29th, 2007

With all the seemingly unanswered questions from the last post, I thought it would be prudent to follow up more than just in the comment thread.

Will it run on Tiger?  As previously stated, it will be Leopard only.  I wanted to include Tiger if possible, but the more we looked into it, Elliott made it clear that this would not be a realistic goal.  As nice as it would be, it would have done nothing more than to draw this project out twice as long and frustrate ourselves as well as our users.  There was simply no choice, it had to be done for the sake of doing what was best for the project.

Peter adds: Specifically, we’re using the QTKit Capture API. That API is new in Leopard; it never existed before. To support VV on Tiger, we would have to implement capture twice: once using QTKit Capture, then again using the older, uglier Sequence Grabber. Considering that Sequence Grabber isn’t long for this world (all the old QuickTime APIs are deprecated), we decided to focus entirely on QTKit Capture.

What protocols will be supported?  Our goal is to support all major protocols, including but not limited to, AIM, Yahoo!, MSN, XMPP (GTalk/Jabber).  That being said, our primary goal is to provide the same support as iChat since those protocols seem like they may require the most work.  As we mentioned in the last post, Farsight has plugins for MSN and Yahoo! that may greatly ease our support of those two (although we haven’t gotten to that point just yet.)

What about support for Skype?  Unfortunately this is something we are completely unable to do at this point in time.  Skype is also a closed protocol.  If it were an easy thing to break, other apps would have supported it long ago.  This doesn’t even take into account that there are also some VERY serious legal issues in regards to this.  There has been a lot of discussion about this in the open source community and the lawyers involved have all recommended staying far far away from it.  There are some individuals out there that are working on their own plugins to at least allow you some text capabilities with Skype but they are not affiliated with our development team and we wish them the best.

What is the current state?/Can I run this right now?  No, it’s not functional yet.  The majority of the work right now is going into the back-end technologies that will provide the support for everything else.  Those are making significant progress and are getting close to being where we need them to be to move on.  The capture code IS working.  The screenshots you saw showing a picture were real, it was simply the UI itself (the input selectors and levels) that was photoshopped to show what we’re thinking about right now.

Audio chat for GTalk will probably be the first working feature.  Once we have that working we’d like to put out an alpha to get some more people testing the new code as we continue to progress with the rest.

It certainly won’t be ready soon.  It will most likely still be several months until everything works properly and lives up to our own high standards.  We simply wanted to let everyone know that yes, we really are working on it and we have made a LOT of progress.  I can’t emphasize that enough.  The progress made so far has truly been awesome.  I know there are doubters because everyone has heard it before, but it is DEFINITELY becoming a reality.  It would be foolish of me to give a firm deadline because there’s no way to know.

The reason we chose to bring everything out in the open now is because we were using some Leopard specific features and thus bound by the NDA to keep it from the public.  We’re excited about the work we’re doing and the progress we’re making and thought that you guys would be as well.  We really appreciate all the support that you guys are giving us.  Also don’t forget, if you think you might be able to help, certainly get in touch with us, we’d definitely appreciate it!

Happy Leopard Day!

Saturday, October 27th, 2007

Well everyone, we’ve got some great news. A lot of you have been asking about audio and video chat for a while, and have been really frustrated by our response of “It’s coming.” We’ve been hard at work trying to make this a reality, and today we’re excited to give you an update on our progress, and to show you where things will be heading in the future.

Around the end of July, a team was put together to begin working on integrating audio and video chat into Adium. This is a herculean effort, as it requires the cooperation of several people from both Adium and Pidgin to accomplish, as well as the use of several new external libraries to facilitate a variety of tasks. The team has worked extremely hard over the past four months under the leadership of Eric Richie, and we are extremely happy to finally be able to tell you what we’ve been up to.

First up, a large number of changes to the Adium build system are in order. Augie Fackler and Elliott Harris have been heading up the effort to create a more flexible and powerful build system at the core of the Adium build process, allowing us to integrate a number of new libraries using their native build systems with ease. It’s important to us that all of these new external dependencies can be easily upgradeable given that many are currently under active development. These are all anchored around the use of the Farsight and Gstreamer projects to implement various capabilities at the Libpurple level. We are rapidly approaching the completion of this build system, and hope to integrate it into Adium trunk as soon as it is done and thoroughly tested.

Next, we have to make a number of additions to Libpurple itself. Luckily, we aren’t alone in this endeavor; Sean Egan and the rest of the Pidgin team are working closely with us on integrating AV capabilities into Libpurple itself. These new functionalities are being developed in a new branch of Pidgin, and development will continue as we improve our support for AV-capable protocols. So far, GTalk receiving audio has been implemented into the Pidgin voice and video branch, however it is largely untested as no client has actually tried to use the code to this point. We are aiming to be the first.

“What about AIM!?” you say? Great question. Our very own Alan Humpherys has been hard at work on extending Libpurple for AIM AV, and we hope to begin merging that work into the Libpurple voice and video branch as soon as possible. In addition, Farsight has some support for Yahoo and MSN, which will surely be our foundation as we move forward on those protocols.

Finally, we have a lot of work to do to Adium itself. These efforts have been headed by Elliott, with tons of help coming from other members of the Adium team, who’ve been hard at work designing all of the things that we need client-side for AV to function. This includes things such as the user interface, local video preview, and bridge code between Adium and Libpurple. In addition, we will be writing our own Gstreamer-based code to facilitate the bridging, and hope to commit those improvements as far upstream as we can. Right now, we’ve got several mockups of the interface which you will find below.

All in all, we’ve made an amazing amount of progress over the past few months, and we’re confident we will continue to do so. Today, we are making all of the work we’ve been doing completely public to anyone wishing to help out. You can follow our progress in the branch located at:

svn://svn.adiumx.com/adium/branches/adium-2.0-vv/

You’ll notice, of course, that we’ve denoted this as Adium 2.0 – and for good reason. These changes will anchor a large amount of new technology being implemented. The entire team is looking forward to this monumental push forward for Adium, Pidgin, and all projects that use Libpurple.

Of course, we always welcome help, and encourage everyone that can lend a hand to do so. You can find all the information you’ll need on our wiki, and you can contact either of us directly to get a better idea of where we’re at as well as where your help is needed most.

As is usual, there is no way to tell when you’ll have it in your hands, but trust us when we say that we want it just as much as you do, and we’re confident that once it’s ready, you’ll absolutely love it.

Enjoy the pictures and thanks for reading,

Eric and Elliott.

Huzzah! 2007 Edition

Wednesday, April 18th, 2007

As discussed previously, Adium is participating in this year’s Google Summer of Code.

Google gave us six slots, just like last year. We’ve made our choices; here they are:

Adding Voice Support to Adium by Implementing a Basic A/V Backend and IAX
Student: Justin Berka
Mentor: Alan Humpherys
More information on IAX.
Improving group chat
Student: Erik Beerepoot
Mentor: David Smith
Unit testing
Student: Patrick Gibson
Mentor: Brian Ganninger
Fix & expand AppleScript support
Student: Matt Handley
Mentor: Peter Hosey
Improving Adium’s XMPP (Jabber) Support
Student: Andreas Monitzer
Mentor: Augie Fackler
Features Andreas wants to implement: Gateway support, PEP, user tune, user avatar, user nickname, OTR-over-Jabber improvements, better hyperlinking over Jabber, discovery browsing, ad-hoc commands, and possibly invisibility.
Improved Bonjour Support
Student: Erich Kreutzer
Mentor: Andrew Wellington

On Jabber: Yes, we had a similar project last year, but that was using Smack (a separate Jabber library), which we had to drop because of the Java-Cocoa bridge going away. Andreas is back to do it again in libpurple.

Also, we’re not going to have a separate student blog this year. Students’ blog posts will be here, on the main blog.