GStreamer and Google Summer of Code

Are you a student? Do you belong to the best and brightest among us? Then you probably woke up this morning wanting to do a GStreamer releated Google Summer of Code project. But to your horror GStreamer was not listed as a mentoring organisation for Google Summer of Code.

Well things are much brighter than they might look at first glance. In fact GStreamer is available as a Google Summer of Code project from a long list of mentoring organisations and GStreamer hackers are mentoring or offering to mentor many of them. I will try to give an overview of projects available.

GNOME:
There are multiple projects available as part of the GNOME project. Proposals already listed there are doing a Gst-editor
application for GStreamer 0.10 using Python and improving the integration of bluetooth devices in GStreamer(this second project could maybe be integrated with Bastien’s bluetooth manager project). There are also a few Totem related projects, like improving the Totem Mozilla plugin, getting GStreamer DVD support working in Totem and Annodex support in Totem (the annodex project might be mostly Xine hacking actually as GStreamer already supports Annodex). There is also a project proposal from the Jokosher project to work on LADSPA support in GStreamer and Jokosher.

Xiph.org

Through our close collaboration with the Xiph.org project there are many GStreamer related projects listed on their Summer of Code page. Projects include doing MXF plugins for GStreamer (MXF is the container format used in the TV industry), RTP plugins for Vorbis and Theora, OggMNG support and more. In fact almost every Xiph.org project either includes GStreamer or would be of direct use for the GStreamer project. I strongly recommend taking a look at them.

KDE
KDE has a project to create a GStreamer backend for their Phonon media playback framework. I am also sure that they would be open for more proposals from interested students. For instance do Edward Hervey offer to mentor a project to create a qt/KDE frontend to the Pitivi non-linear video editor using the KDE Python bindings.

OpenSolaris

The OpenSolaris project has a lot of GStreamer related tasks listed on the ideas page like improved GStreamer hardware plugins for Solaris and JMF/GStreamer integration.

handhelds.org

The handhelds.org project list a number of tasks related to the GPE embedded environment where GStreamer could and should be part of the solution like their VoIP proposals. This work should probably be based upon the work of the Farsight project who are working on this in context of Maemo.

XMMS2

has a project about evaluating and maybe porting XMMS2 to use GStreamer. A good project to take on if you want to limit fragmentation and help consolidate the desktop.

Others:
There are other projects too who probably would accept GStreamer related projects. Remember that as long as you are able to find a mentor most organisations are happy to take in good projects proposed by students. For instance BBC Research would probably be willing to take on Schroedinger – Dirac related projects or the MXF plugins also listed under Xiph.org. David Schleef, is willing to mentor a student writing a Dirac encoder targeted especially at desktop recording, using things like X damage extension for instance. The Mono project might be interested in taking on a project to do a plugin for f-spot that took selected photos and created an Ogg/Theora/Vorbis movie file of a slideshow of the photos transitioned with effects and muxed with audio from say a rb/banshee playlist. iPhoto on Mac OS X has a similar feature and so does ULead CD & DVD PictureShow on Windows. The MythTV project might be interested in a project to port it to use GStreamer. The Creative Commons project might be willing to take on a project to ensure easy CC tagging of all files generated by GStreamer. The examples just goes on and on. The Gimp project maybe would be interested in a Pitivi/Gimp integration project using GEGL.

Patent pains

Rambus wins patent claim

Saw today that
Rambus won in a courtcase over a memory maker called Hynix
, the jury in case case said that all of Rambus 10 patents in question were valid. My first thought that if all 10 patents where found valid the jury probably looked more at the nationality of the companies involved and one being an ‘evil chinese’ company taking american jobs and the other being a ‘good american’ company defendings its intelectual property it was a clear cut case.

Become more and more sceptical of the jury system over the last years, from having started out as a strong supporter of it. I think in a lot of cases the jury doesn’t have the competence to judge a case and also they are more likely to be swayed by non-legal things, ranging from how charming the parties involved in the case are and local political considerations. Reminds me of how Jonathan Schwartz was saying that they didn’t want to have to take the Kodak patent case in front oa jury in Kodak’s home state as the jury would be to predisposed towards Kodak. I think this is also something SCO is trying to bank on in their ongoing case with IBM, that a local Utah jury will be more favourable to their plight as a small local company and not able to fully understand the technical questions involved and thus give them a favourable judgement.

On the other side, the recent patent case between RIM and NTP, shows that even professional judges are not as good as one could hope. With the judge trying to force a settlement even in the light of the patent office seemingly about to invalidate most of the patents in question.
Once again you had the situation of a foreign company vs a local one,
but I think the major problem here was the judge seemingly thinking forcing a settlement would give a result that was a ‘fair compromise’.

Of course that in many of these cases todays victim was yesterday’s troll doesn’t make things easier, especially in the court of public opinion.

Allergy pains

So it seems there is something in the air this year in Barcelona that is causing me grief. My eyeballs hurt, I have a constant headache and a general feeling of about to become seasick.

I do tend to be a little busted during spring, but I don’t think I was even close to this last year, so I guess there is more of whatever is causing it this year.

The last Norwegian invasion?

Was an article in a Norwegian newspaper today about what I believe is the last Norwegian king to attempt a foreign invasion, namely the invasion of Harald Hardrada of England in 1066. (Hardrada means ‘hard ruler’) as his rule was supposed to have been very harsh.

The story of Haralad Hardrada has always facinated my as he played a part on my important events in Norwegian history, like participating in the battle of Stiklestad in 1030. This battle is famous in Norwegian history as it was the battle which basically turned Norway into a Christian country, even though the army fighting to keep the faith in the Norse gods won the battle and managed to kill the king later known as Olav the Holy.

In 1034 Harald Hardrada had travelled to Constantinopel and took service for the Byzantin emperor, which was where he gained his battle experience and wealth. In 1045 he returned to Norway and became co-ruler for a year, before gaining sole kingship. Harald Hardrade is also known as the founder of Oslo, which is today the capital of Norway, which is why a
statue of him decorate the city hall
.

Anyway the story in today’s paper was about the Battle of Fulford which I had to admit I didn’t know about. The battle of Fulford preceded the more famous (and for Harald Hardrade final battle of Stamford bridge. The battle of Stamford bridge preceding of course the even more famous battle at Hastings in which Harald Godwinson (the then king of England) was beaten by William the Conqueror.

It seems the battleside of the battle of Fulford is actually preserved today in a condition almost identical to the one of 1066, with an english society working to have it preserved as there is a recent effort to build a road and housing over the site.

So if you are in that area lend your support to the Battle of Fullford group :)

Wim is da man

So we consider Wim our resident uber-hacker at Fluendo. Of course it is always nice to discover undisputable proof online that this is correct (apart from GStreamer 0.10 rocking so much). Anyway, from now on we will just call him ‘The Wim’ :)

GUADEC video

We got some DVD’s with a presentation video of Vilanova de Geltru which I thought it would be nice to transcode to Ogg and share with everyone.

While waiting for Thoggen to get ported to 0.10 I had to make do with gst-launch. The pipeline below is what I managed to put together with the help of Zaheer.

gst-launch-0.10 dvdreadsrc title=”5″ ! decodebin name=”dvd” dvd. ! ffmpegcolorspace ! video/x-raw-yuv,format=\(fourcc\)YUY2 ! videoscale method=1 ! video/x-raw-yuv,format=\(fourcc\)YUY2,width=360,height=288,pixel-aspect-ratio=\(fraction\)16/15 ! videorate ! video/x-raw-yuv,framerate=25/2 ! ffmpegcolorspace ! theoraenc ! queue ! oggmux name=mux ! gnomevfssink location=file:///home/cschalle/vilanova_present.ogg dvd. ! audioconvert ! vorbisenc ! queue ! mux.

What this pipeline basically does is take the mpeg2/ac3 on the DVD, scale it down to 360×288 size, drop the framerate to half of the original and output the result as an Ogg Theora/Vorbis file.

Presentation video of Vilanova i la Geltru, home of GUADEC 2007

Anyway, you can now get a impression of the city of Vilanova i la Geltru by looking at
this presentation video of Vilanova
available in Ogg format and licensed under the Creative Commons Attribution-ShareAlike license. You can also watch the video online using the Cortado java-applet through this link.

Dirac
Also been testing the Schrodinger Dirac implementation recently. Thanks to Ralph Giles there is a official Dirac in Ogg specification now and I am able to create Ogg Dirac files using the GStreamer plugins provided by the Schrodinger project. We still have some way to go before this is truly useful, but it is nice to be able to actually encode something and view it in Totem.

svideo and linux continued

So in my previous blog entry I mentioned my intial work to get my xvideo output working with Linux. I did notice thought that there was one remaining issue, which was the problem that there was a black border around the computer screen image on the TV. I ended up spending more time on resolving that than I did on getting the thing working in the first place. Anyway Jan aka thaytan told me (after I had already spent quite some hours on the problem) that there is a option called TVOverScan in my xorg.conf file which can be used to get the image to scale up to get rid of black borders like I had. The problem was that whatever I set the TVOverScan too, my nvidia board seemed to ignore it. Adjusting it using nvidia-settings however worked fine. Seems that the TVOverScan in xorg.conf gets ignored, so what I did instead was set up my system to run ‘/usr/bin/nvidia-settings –load-config-only’ on login to solve it. A bit hackish, but it will have to do for now.

Also rediscovered my old issue of nautilus-cd-burner not being able to deal with both my internal cdwriter and my usb dvd burner at the same time. Ended up having to remove the internal drive and rebooting to ge t it to deal with my usb driver properly.

Enabling SVIDEO from my Dell 8600 laptop

On my Inspiron 8600 Laptop I have a SVIDEO output on the back which I thought would be nice to use for playing back videos etc., on my tv. Although my TV also has SVGA input support, the cable for that is way to short to work nicely for me. Anyway after a lot of googling and testing back and forth I managed to put together this xorg.conf file which does what I want, giving me a separate X screen on the svideo port. Tried playing some movies onto it yesterday and it worked very nicely. In addition to duplicating everything for two screens the magic was in the BusID option and the tvstandard, tvoutformat and connectedmonitor options.

Getting this going though was a very manual process with editing the xorg.conf file, reading the NVIDIA driver README and googling to find answers to some specific questions. (None of the Linux on Dell Inspiron sites seemed to have actually tried testing/using the SVIDEO output port).

I assume part of making this nice that X could do with some HAL/dbus magic in order to be able to handle this in a more automated fashion.
Not sure in the end if xorg or GNOME will be able to offer something to setup these things in a nice GUI’ed way or if we are depending on the hardware vendors to do this due to it being relativly hardware vendor specific? NVidia already have a little GTK+ based setup tool bundled which maybe they could extend (currently it only seems to allow you to adjust stuff not add anything). Anyone know if there are any efforts by anyone in this area currently?

Reminds me of my USB soundcard issues from some time ago. While there is rudimentary support in the drivers, we still have so way to go before its ready for joe average user. And when we do get to the point of trying to make it joe average friendly we will probably find, like they discovered with Network Manager, that the drivers needs a lot of fixes before being ready to work properly in such a scenario. At least for the sound card scenario we should have infrastructure for it in the next release of GNOME thanks to Jürg Billeter‘s work. Hopefully the USB soundcard drivers makers follows suit and improves their linux support.

Pimping Togra

One project using GStreamer which I think is really cool, but doesn’t get enough pimping, is Togra. Togra is a framework that allows you to combine GStreamer media handling with 3D objects using OpenGL. One example of cool usage is the spinning movie cube which was worked on for linux.conf.au. The idea was to have one camera in every room where someone was speaking and then have those video feeds play on each side of the cube. The sound would then fade in and fade out for each room as the cube spun around. This spinning cube was then shown on a big screen in the reception. Don’t remember if they managed to pull it all together in terms of getting the needed hardware, but the cube works and maybe it would be cool to try to get it going for GUADEC this year.

Anyway, Togra allows you do to all these quickly and easily in Python, so if you need to put something together to pimp your own coolness at the next LUG meeting make sure to take a look at togra.

Maemo article

Newsforge has a good article on Maemo and Nokia. The article gives a good insight into the process I think is happening at Nokia where the success and quality of the Maemo platform is causing the whole organisations thinking around software, copyright and patents to change. One could always wish for the change to happen faster, but I think the current development is inreversible. As bigger and bigger parts of the industry starts depending on open source and open source solutions takes over internally as being the most important businesswise I think we will at the same time see a change in these companies from being agressive ‘pro-IP’ to being ‘pro-competition’. See this happening with IBM too, for every month that has gone by over the last two-three years their public comments on software patents for instance have become closer to that of the open source community. Still a long way to go for sure, but the direction of movement seems clear to me. Other companies too, have at least begun not vocally supporting software patents, hopefully they soon start advocating doing away with them as they simply don’t work. Maybe Sun and Jonathan Schwartz wants to be first one out?

Active weekend

Decided recently that I need to be more active during my weekends as I was feeling that I was letting them slip away to easily. So I set myself a goal of at least doing two things every day of the weekend. Started doing this weekend by goin to Montserrat which is a old church/convent in the mountains north of Barcelona. It was a very nice area and I walked around in the mountains for many hours enjoying the feeling of being outdoors and the beautiful scenery. Definetly going to go back there to explore further. In the evening I went to a stand up-comedy show in Gracia. They had pulled in some stand-up comedians from London and it great fun. Mike joined me there and I learned that Mike has an uncanny likeness to David Hasselhoff from our friends on the stage.

Sunday I went to see V for Vendetta at the local cinema. Loved the movie and combined with my recent viewing of Closer it increased my appreciation of Natalie Portman as an actress a lot. In the evening I went over to Matthieu’s place where he hosted a barbeque on his roof terrasse as a delayed house warming party. Mattheiu’s appartment is pretty nice even being very rustic. Nice view of the town from the terrace and short walk to the beach.

Elisa update

So Phillipe and Loic are working hard on getting a first version of Elisa ready to be announced/presented at GUADEC. One of the things they are currently working on is making sure it integrates with ViiV systems. Managed to take this screenshot today showing Elisa browsing the directories of the ViiV server. Lots of polish needed though :). Lionel has already made an agreement with David Vignoni for doing graphics for Elisa (the current temporary graphics used are taken from various existing icon sets, mostly Crystal afaik). David has done work for us before, doing a set of icons for Flumotion (which we haven’t fully included yet due to letting it block on a more generic ‘cleaning up the Flumotion GUI’ task’)

Maemo news

The Maemo 2.0 roadmap is out. It contains a lot of interesting information on the plans for the next version of Maemo like the upgrade to GStreamer 0.10, the inclusion of farsight/telepathy for VoiP and a lot of general version upgrades. There is also a general Maemo multimedia overview available now, although its about gst 0.8 its mostly correct for 0.10 to as GStreamer didn’t change much at the level which that document is covering.