Fluendo 5th Anniversary

July 2nd, 2009

So yesterday was the 5th anniversary party for the Fluendo group. It only seems like yesterday that I joined the group (3 years 4 1/2 months ago) to work for Flumotion. It was really nice of the company to fly me in especially to Barcelona for the party, so thank you.

Spykee GStreamer element

June 20th, 2009

So this aftermoon, I spent the time starting a GStreamer source element for Spykee. I have made it respond to key press navigation events coming upstream from say xvimagesink and move forward, back, left and right and d for dock. The code so far is here: http://github.com/zaheerm/zspykee/commits/master/flumotion-spykee/flumotion/component/spykee/gstreamer.py

Video with Spykee moving controlled through navigation events coming from xvimagesink: http://zaheer.merali.org/spykee_gstreamer.ogv

More Spykee with Flumotion

June 18th, 2009

So tonight, I added wizard support for flumotion-spykee and so now anyone with a Spykee robot can control and stream the robot with Flumotion without requiring to write a config file. It can all now be configured with ease in Flumotion, including discovery of Spykee robots on any interface your flumotion installation is on.

Two screencasts (both Ogg Theora videos):

If you want an OS that can browse the web out of the box, forget Windows 7 (in Europe)

June 12th, 2009

Source: BBC

Flumotion UI for Spykee movement

June 11th, 2009

Simple UI to move the Spykee robot around, committed and pushed:

Spykee wifi robot and flumotion

June 10th, 2009

So I bought a Spykee wifi robot on Friday. Alia and I finished building it on Sunday. I wrote some code to control it and stream it via flumotion over the weekend and during evenings this week. Tonight I added audio support, so I can now stream video from the robot’s webcam and audio from the robot’s mic. Also with flumotion remote commands, I can move it about. Next step is to write a gtk admin UI page.

Screenshot from totem of video only:

Code pushed to github url: http://github.com/zaheerm/zspykee/tree/master

Istanbul and Guadec

May 7th, 2009

Dave, saying I was at Istanbul for a Liverpool fan is more like saying I was at the 5th Guadec not the 1st Guadec for a Gnome hacker ;)

GStreamer port to S60

March 11th, 2009

So I spent some time on the weekend porting GStreamer to S60. Using Martin’s excellent instructions on how to build for S60 on Linux.

Symbian have thankfully ported some libraries (though with caveats) to S60 for ease of porting “OSS” code. In their “OpenC” sdk, they have glib (including gobject, gmodule, gthread etc.), libpthread, libc and a few others. This has of course made the port to S60 possible.

A few hurdles have been the lack of poll(), glib being old (2.10), having to include and to have some definitions for which there is no mention in the docs.

I have got libgstreamer and libgstbase compiled (though I have put them in same lib). I have compiled the core elements: fakesrc, fakesink, pushsrc, typefind, filesrc, filesink, fdsrc, fdsink, capsfilter, tee, queue, multiqueue but I currently have the error in linking that it cannot find the libgstreamer dso.

Once I get an app compiled that does fakesrc ! fakesink, I will start putting up a git branch of my stuff.

Scheduled recording successful

March 3rd, 2009

So the recording was successful. The snippet that my brother in-law wanted, I put up on youtube here. It is my 2 nephews’ birthday card being read out. Jameel is 4 today and Jaabir was 2 on Sunday.

Scheduled Recording of DVB in Flumotion

March 3rd, 2009

So while watching 24 after dinner tonight, Alia received a text from her brother in-law reminding her to record channel Five from 6am until 9am tomorrow morning. So naturally, I set it to record on my Sky HD box. However the Sky HD box is being recalled as it is one of the Pace ones that has an unknown fault that is not related to safety. The engineer is due to replace it tomorrow morning. Oh yes, I have been credited 3 months of free HD subscription for the inconvenience. One of the inconveniences is that the only way to get the recordings off the box is via a DVD recorder/VHS recorder connected over Scart.

Anyways that is not relevant to this story. Five is a TV channel that is Free to Air both on DVB-T and DVB-S here in the UK.  So I thought I’d record it on my computer. The natural choice is Gnome DVB Daemon from Sebastian which is a fantastic product from the Gnome GSoC 2008 (my mentoring of this project was very little to do with its success, Sebastian was an excellent student). However my current installation of Gnome DVB Daemon is broken and I didn’t have much time tonight. I started writing a crude one-time use python app with twisted to start recording at 6am and stop at 9am. Then it dawned on me, Flumotion can do this without me writing a single line of code. So I created a simple flow, with a dvb-ts-producer and a disk-consumer. The disk-consumer can take an ics file, so I generated one in Evolution with 2 events: a test event at 23:19 for 5 minutes and the real thing.

Flow file is here:

<planet name=”flumotion-test”>

<atmosphere>
</atmosphere>

<flow name=”default”>
<component name=”producer-video”
type=”dvb-ts-producer”
label=”producer-video”
worker=”localhost”
project=”flumotion”
version=”0.5.2.1″>
<property name=”polarity”>horizontal</property>
<property name=”frontend”>0</property>
<property name=”dvb-type”>S</property>
<property name=”adapter”>0</property>
<property name=”code-rate-hp”>5/6</property>
<property name=”frequency”>10773250</property>
<property name=”symbol-rate”>22000</property>
<property name=”program-numbers”>6335</property>
<clock-master>false</clock-master>
</component>

<component name=”disk-ts”
type=”disk-consumer”
label=”disk-ts”
worker=”localhost”
project=”flumotion”
version=”0.5.2.1″>
<eater name=”default”>
<feed alias=”default”>producer-video:default</feed>
</eater>
<property name=”directory”>/tmp</property>
<property name=”rotate-type”>none</property>
<property name=”start-recording”>False</property>
<property name=”ical-schedule”>/home/zaheer/fivetv.ics</property>
<clock-master>false</clock-master>
<plugs>
</plugs>
</component>

</flow>

</planet>

This created a flow, Here is a UI of flumotion-admin:

Anyways, now it is time to sleep.