Implementation of VP8/WebM in XMPP video chat

Paul Aurich paul at darkrain42.org
Mon Aug 23 15:54:01 EDT 2010


On 2010-08-23 10:30, Alec Smrekar wrote:
> Hi,
> 
> My name is Alec and I need some help with implementing VP8/WebM in XMPP
> video chat. I'm 16 and I'm learning C++, so I understand most of the
> code. With my friends we decided to have a coding weekend and we also
> posted something about it here
> <http://pidgin.im/pipermail/devel/2010-August/009761.html>. We set to
> ourselfs 3 main goals:
> 
> - implementing WebM to XMPP video chat
> - Audio/video support for Windows
> - implement conference/multiuser video chat
> 
> I worked on WebM. To understand how 2 users comunicate between them we
> analyzed the output in the XMPP console(in xml) after the video chat was
> established.

You should also take a look at the XMPP standards docs describing
Jingle.  Specifically:
http://xmpp.org/extensions/xep-0166.html
http://xmpp.org/extensions/xep-0167.html
http://xmpp.org/extensions/xep-0176.html
http://xmpp.org/extensions/xep-0177.html
and http://xmpp.org/extensions/xep-0266.html

> After that we went searching the code for something that would explain
> us where the available codecs are found in how the codec used is
> choosen. We spent a hell lot of time for this search but we didn't find
> anything. We would still need information about how the codecs are found
> and where. 

libpurple/pidgin don't handle much of the low-level encoding things.  We
leverage Farsight2/Gstreamer for that.

Look at ./libpurple/media/backend-fs2.c for what libpurple does to
interact with all that stuf.  In particular, look for fs_codec-related
functions.

> For the WebM support we updated ffmpeg to version 0.6
> <http://www.ffmpeg.org/download.html#release> and gstreamer to version
> 0.10.30 <http://gstreamer.freedesktop.org/src/gstreamer/>. After that we
> checked the XMPP console again, but again there was no sign of WeM/VP8
> support.
> We suspect that libpurple has outdated information about available
> codecs, but again, we didn't find the piece of code where libpurple
> defines/lists the codecs. We would really need some help with that.

Look at http://developer.pidgin.im/ticket/12325 and
https://bugs.launchpad.net/ubuntu/+source/pidgin/+bug/593477.  In
particular, note the comments from the Telepathy/Farsight people
(probably the maintainer, but IDK), comments #2 and #15.

You'll need to wait for the RTP payloaders (no, I don't really
understand what that means :) ) before it could be prioritized in
libpurple/Pidgin.

Cheers,
~Paul

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 897 bytes
Desc: OpenPGP digital signature
URL: <http://pidgin.im/pipermail/devel/attachments/20100823/e8cbd79e/attachment.sig>


More information about the Devel mailing list