GStreamer GSoC Projects

Dirk Meyer of the Freevo mediacenter project gst-devel today pointing to
the Freevo summer of code projects page. As you can see they have a lot of GStreamer related things as they are moving a lot of their infrastructure over to GStreamer these days. So I strongly encourage interested students to sign up for Freevo projects.

Aaron Bockover pointed on his blog to some interesting Banshee projects which also involve GStreamer, like making a GStreamer using Windows port of Banshee work perfectly. You find these projects here.

Also a general note to mentoring organisations who have students submit interesting GStreamer related proposals, please be aware that there are many people in the GStreamer community willing to mentor/co-mentor such projects. So if you need mentors with strong GStreamer knowledge for your projects please let us know.

GStreamer and Google Summer of Code 2007 (part 2)

Ok, so it seems GStreamer didn’t make it into GSoC this year. I haven’t gotten any official explanation and I don’t think I will ever get one either. What it do seem like is that most projects which participated last year got close to automatic re-approval unless they fucked up last year. This is course meant the number of slots open for new organisations was very small and looking at the new entries compared to last year it seems they focused on getting organisations doing something that felt a little different from the already participating organisations. So while I part of my feel almost insulted on behalf of GStreamer looking at some of the projects accepted, I think it is important to remember that they are there because they where there last year and did a decent job of mentoring their students, not because Google did any kind of importantance/relevance evalulation of the participating projects.

For for students looking into doing GStreamer related projects my suggestion is the same as we proposed last year and which worked out well for many students. Submit your proposal to another project which is relevant for your proposal, the most easy targets being GNOME and KDE for application projects using GTK+ and Qt. But also other projects are of course possible candidates.

LUGRadio and me

So in case anyone missed it I participated in the most recent edition of LUGRadio mostly talking about various multimedia related things. Had a fun time hanging out with Ade, Matt, Jono and Stuart in the English heartland for one evening. Listening to oneself recorded like that is quite scary, one realize how mangled some sentences come out and how badly some words get pronounced :)

Schrodinger 0.5.0

So I cut a new release of Schrodinger today, our Dirac implementation. David Schleef has been kicking ass lately and this release feature much much improved image quality over the previous development snapshot.

.

We are still not 100% there yet, but things are moving forward at a good pace. You can get the latest package at the Schrodinger website.

GStreamer and Google Summer of Code 2007

So in order to not miss out like last year we have managed to get our
application for participating in Google Summer of Code submitted in time this year. So if everything goes as we hope GStreamer will be a separate GSoC project this year. We invite any application developer using GStreamer to add projects proposals to our SoC2007 wiki in addition to any GStreamer ‘internal’ proposals you might have.

UK trip

So I spent most of this week in England doing various meetings. Spent Monday and Tuesday at Brunel University participating in a project meeting for a EU project we are involved inn. While the University buildings didn’t look terribly exciting I have to say that my impression when walking around campus was that they have managed to create a very interesting multi ethnic environment at Brunel with a very wide specter of cultures and backrounds and without any specific one to be the clear majority.

On Tuesday evening I headed down to London and crashed at Matthew and Soz place. Its always a blast to hang out with Matthew exchanging the latest news and discussing items of shared interest. Still think his dogs looks freaky though, but it also has to be said that I don’t think I ever met more friendly and good natured dogs either.

Wednesday morning I went travelled into downtown London to have a meeting with Dolby. My contact at Dolby was a nice fellow named Andy Dowell who funnily enough was going to Barcelona later the same day.
Might be heading over to Dolby HQ in the US later this year to discuss further how we can work together as it turned out we and Dolby might have further common interests than I first thought.

After the Dolby meeting I took the train up to the English heartlands, that tranquil place where people live a happy and content life following in the footsteps of their forefathers. This place, also known as Wolverhampton, is also the location of four large gents who wants to turn this rural paradise into the information technology pulpit of England. We did a recording of LUGRAdio in the evening where apart from serious topics related to Linux and open source we managed to discuss embarassing sexual desires and orange underwear.

More on GStreamer Windows and Mac support

Thought I should follow up on yesterdays post about Windows and MacOS X with some more information. The work is done in collaboration with the great guys behind the SongBird
music player
. Those who don’t know Songbird its a very cool cross platform Music player built using XUL, the same GUI toolkit used to make Firefox. The idea is that by making sure GStreamer runs perfectly on Windows and MacOSX in addition to Linux/Unix they can use GStreamer as their backend across all platforms. The Songbird guys are doing some very cool things around web integration of their music player so I recommend everyone to take a look at their onsite demo.

Anyway to show of where we are at here is a screenshot. The screenshot shows our small proof of concept Windows mediaplayer playing a video under Windows. For a more full featured experience look to future versions of Songbird.

You can download binaries for Windows including the little sample player here on this site maintained by Sebastian Moutte who is our resident Windows porting expert.

We are a little shorter along on the Mac side of things as the Mac videosink is currently leaking memory like crazy and screenshots of audio playback tend to be a bit less interesting :). We expect squish those leaks and polish it up further in the next few weeks so I can provide a nice screenshot of GStreamer on MacOS X too.

We are implementing the GStreamer XOverlay interface accross all these video sinks. That means that you should be able to write a video player without any kind of special casing across platforms for video and audio output, GStreamer’s output autodetection should take care of it for you. So for Songbird it will let them write the code embedding the video window once and it will work using native video output on both Windows and MacOSX in addition to under X Windows of course. When these elements are 100% finished and polished up I think porting things like Totem or Pitivi to Windows and MacOSX should be quite trivial in theory with both GTK+ and GStreamer running natively on these platforms. That said practice tend to prove that there would be some work involved :)

It should also be mentioned that thanks to Songbird we are not only able to provide these elements to the community, but they will be fully documented and polished up. This means the Windows and MacOS X output support will be 100% solid and not just ‘checkbox’ level.

gst-phonon code now public

Some time ago I announced that we would be working on a GStreamer backend for Phonon. This work is still ongoing, but we have now put the code into the GStreamer CVS repository. The code is still early stage, but at least those interested can now follow the code as it progresses. One thing people will notice is that the current code is still all C which I guess most people would find strange for something meant to be used with Phonon. Well the idea is to provide the Phonon components with both a C and a C++ API. So the current code is meant to both be usable from C and also be easily used to power the GStreamer backend for Phonon. We decided on this approach as we found that since a lot of the work on implementing a GStreamer backend for Phonon was actually about writing some high-level GStreamer components and at that point we came to the conclusion that offering people to use them with a C API in addition to the official Phonon C++ API made quite a lot of sense. The code and design so far have been done by Wim Taymans, but in order to get more focus on the development from here on we will have David Gerber take over from here and work exclusivly on this for a the next months.

GStreamer for Mac OSX and Windows

Those following GStreamer CVS will have noticed that there has been quite a few commits recently for audio and video output plugins for Windows and Mac OSX. This is not a coincidence as we are currently working on a project to ensure that GStreamer works perfectly on these operating systems. The Windows audiosink and videosink should already be in working order and the MacOS X audio sink also works fine. We still have some work needed on the MacOS X video sink, but we hope to have that done by the end of the Month. With these plugins in place writing a cross platform application with GStreamer should be very easy so I suggest anyone working on crossplatform development take a look at the plugins and try them out on their own systems.

Elisa priorities

I know a lot of you are waiting for us to add PVR support into Elisa. This task is making its way quickly up our todo list, but one thing we are going to try to tackle first is how we handle large media collections. Anyone who has ever run Elisa will notice that while it looks very nice the current GUI concepts are not very practical when you want to find/play one specific song in a collection of many thousand. We consider this the top issue atm in order to make Elisa not only look nice but be really nice :)

In Elisa related news the first official release of Coherence happened today. Coherence is a Python Upnp framework developed by Frank Scholz and is the framework we use for all the upnp goodness in Elisa.

ffmpeg pains

Back in the day we tried relaying on ‘released’ versions of ffmpeg in GStreamer. The problem was that there never really was any releases of ffmpeg and the versions that floated around all tended to have different API’s. So what we discovered was that when distributions packaged GStreamer and a other multimedia systems using ffmpeg one or the other always tended to end up broken. So in the end we gave up on relying on ffmpeg as an external dependency and instead set up a system to ‘suck in’ snapshots of ffmpeg into the GStreamer ffmpeg plugin and thus avoid the problem of different applications conflicting due to relaying on different versions of ffmpeg.

Well it seems some of the major distro’s have decided that they want a return to the painful old days. The problem is that even to this day ffmpeg change its API’s more often than Linus Torvalds change his socks and they still don’t do proper releases, thus relaying on it as a shared library is a pain. Yet distributions in the name of security and not wanting duplicate copies of the code installed are now trying to get all their ffmpeg using systems to share one install. So if you get tons of weird error messages on your console when running a GStreamer application, please dont blame us, but instead email the package maintainer for your distribution with your frustrations.

Embedded Linux Conference in Brazil?

Thought I should plug the great work done to organize the Bossa conference in Brazil in March. Bossa will bring together a lot of people from the embedded and mobile linux development community including GStreamer and Fluendo’s own Wim Taymans. Other participants includes Robert McQueen and Philippe Khalaf talking about Farsight and Telepathy, Marcel Holtmann on Bluez/Bluetooth, Chris Hofmann on Minimo and many more.

So be sure to sign up if you have interest in this field. For people outside South America maybe combinding Bossa with some days of vacation would be the perfect opportunity/excuse for visiting Brazil :)

GStreamer on the server side

At Fluendo we have been using GStreamer as the engine for the Flumotion streaming service for quite a while now. But it is nice to see that other companies using GStreamer on the server is starting to make their mark too. Seeing
this article on news.com
about Snocap making a deal to allow artists to sell music through MySpace reminded me that I know Snocap is also using GStreamer for their system. I don’t have any details, but the fact that all their job adds mention the need/advantage of having GStreamer experience is clear sign :). For those that don’t know Snocap its the latest venture of Shawn Fanning, the creator of Napster.

Anyway, anyone reading this using GStreamer to power their websites or services I would love it if you posted a comment on it. Always nice to hear how people use GStreamer to solve practical challenges.

Help us test Decodebin2

So if you have the latest release of GStreamer plugins-base installed (0.10.11) you also have the next generation decodebin available. Decodebin2 is our much improved autoplugger which automatically connects pipelines in your playback appications. Currently it is not enabled as the default one so we need the community to give it a run to make sure it is robust enough for us to switch to. The easiest way to test it is to set the USE_DECODEBIN2=1 environment variable before running Totem or Rhythmbox or any other ‘playbin’ using GStreamer application. That will automatically switch you over. Any bugs you find while testing this which do not happen when using the old decodebin would be most appreciated reported to bugzilla.

Watching Steve Jobs Keynote

So Wim discovered that he was unable to view the keynote that Steve Jobs did at MacWorld. The reason was that it was using some weird Quicktime RTSP format which none of the open players seemed to support (could be that they do in their CVS versions). So he hacked up support for it in GStreamer building on the RTSP work which I mentioned a few days ago.
The result looks like this:

The RTSP uri in question is this (needs CVS GStreamer of almost every module)

rtsp://a2047.v1413b.c1413.g.vq.akamaistream.net/5/2047/1413/1_h264_110/1a1a1ae656c632970267e04ebd3196c428970e7ce857b81c4aab1677e445aedc3fae1b4a7bafe013/8848125_1_110.mov

The link from the browser doesn’t work yet, but I think thats probably some player detection or playlist parsing issue.