My Life Is A House

My daily life with all things Libre and Open

Monday, July 12, 2010

Very long Google SoC report #3

Hi everyone!

I was skipping my blog as I was trying to get Telepathy calls working within Jokosher. I wanted to post something when it was working actually. Well, I haven't got to that point yet - as I still trying to connect Telepathy call stuff to Jokosher - but I feel obliged to tell you more how I got there, because it was quite interesting road so far.

First of all I tried to run Michael Sheldon's code and see what works and what doesn't. In overall, I tried to use newest Telepathy API spec, so first to get somewhere I needed to build python-telepathy package from newest GIT branch. I did it with checkinstall (found in Ubuntu universe repo, thanks to Michael about tip), which is quite nice tool for fast-and-dirty package building. In source directory just ./autogen.sh, build it with make, then launch sudo checkinstall. Just make sure to change version to something appropiate, like 0.16 and change Package name and Provides parameters to 'python-telepathy'. Then checkinstall will create deb package and will install it into your system, so get ready to get your system trashed a little bit (for python-telepathy it isn't such a trouble).

After that I submerged in world of VoIP. Thanks to guys at #telepathy at irc.freenode.net, I understood how telepathy python bindings works and got around implementing current code. Bigger problems raised when I tried to understand how Farsight kicks in during the call, but I got it too - I was lacking binding that would made Telepathy/Farsight listen to gstreamer bus messages and then act accordingly (in fact, I very good example how to make a call from python is in Telepathy Python bindings package, examples/call.py).

For last two weeks I have tried to bind TP/F pipeline with Jokosher recording system. As most of sinks and pads in TP/F conference/session is created on the fly, it is quite challenging. It works like this: I have created gobject signal for TelepathyContact to bind eveything with Jokosher pipelines in Project.RecordVoIP. When call is successfull, this method binds every piece to record it in instruments. I have two challenges here - I have to create another instrument besides voip to record local speaker (let's call it "voip-local") and have to find a way to sync Jokosher pipelines with call ones. Also I need to decide to I allow recording happen at once or wait for remote contact to respond.

This is midterm review week and while I have had some setbacks - family stuff like sister marrying (yay) and very hot last two weeks, which makes me feel exhausted - I think I will finish my primary goal this week and will start to work on pipes support. Current code in telepathy-ng branch at Jokosher LP isn't doing anything useful, due of me improving code every day, but you can check out and test it if you like.

Labels: , , ,

1 Comments:

At 7:12 PM, Anonymous Tester said...

To synchronise two pipelines, you just have to make sure they have the same clock (you can force with clock with pipeline.use_clock() and then set the same latency on both. Hook up to the "do-latency" signal on the pipeline.

If you have any other question like that, don't hesitate to ask in #farsight, #gstreamer or #telepathy

 

Post a Comment

<< Home