Noticed on freshmeat today that GStreamer is about 6 years old now. And we celebrate that by doing the first release the new 0.10 stable series.
The amount of work gone into this release is staggering, but it feels mighty good. Sure there are still things missing, like decoders and demuxers for some formats, but all in all the framework is ready now. Worked on a release announcement which turned out pretty sweet, next step world domination!
DRM and GStreamer
Sun finally released the Opera DRM sourcecode the other day which is part of their Open Media Commons effort launched some time ago. It is interesting in the sense that its a major DRM effort with a complete implementation available.
In that regard I think its prudent to mention that we are currently working on DRM support for GStreamer at Fluendo currently. The goal is to have a framework for using various DRM systems with the GStreamer framework without interfering with the way GStreamer currently works. Opera DRM is one system we are looking into implementing support for as a proof of concept. Since its free software it fits well with our goal of releasing our DRM integration stuff as free software too (although it will allow for closed source modules to be made for things like Windows Media DRM and Fairplay for instance).
The DRM work has included a lot of thinking on our part about the implications and I think its safe to say that we love DRM as little as everyone else. On the other hand we have also seen that a lot of doors get closed on us, GStreamer and GNU/Linux due to lack of DRM support, which means people in those cases go with a Windows based solution instead. Which of course is no win for free software.
On the other side there is the question on how far you should go in trying to accomodate people too and I am sure many in the community feels that any sort of DRM support is going too far.
For me personally it comes down to a evaluation of what we can achieve and what position we are operating from. Personally I doubt technology providers will be able to dictate this, or rather if we say no then someone else will say yes (ie. Microsoft). The only group out there with the power to shut down DRM are the consumers, they need to revolt at the idea and stop buying music and movies which are using DRM. What we as a technology provider can do is try to move DRM usage in favour of the more userfriendly and fair systems.
In some ways I hope we will be able to do with DRM what we hope to accomplish with our streaming hosting platform. People come to us and ask for WMA or MP3 streaming, and we are able to give them that, but we also give them Ogg streaming as part of the package. In that way we help make sure more and more content is available as Ogg streams and through that help solve part of the chicken-egg problem that is there in regards to widespread adoption of Ogg.
Of course all that said, we are running a business at Fluendo and making money is of course one of our main objectives (companies who don’t have that objective tend not to be around for long for some reason), so I am not claiming we are altruism incorporated. But we do try to do morally ‘the right thing’ in the way we operate and do right by the community we sprung from. So I hope we do not anger the community to much by our current work.
It also have to be said that there are some technology landscape level changing agreements being part of this. I am not able to say anything more about that at this point, but we should be able to make some announcements about it during the first half of next year. Hopefully when its announced people will agree that we did the right cost/benefit calculation.
Listen to da Music
So Europa Plus is now online streaming their Radio channels in mp3 and Ogg Vorbis using Flumotion and our soon to be launched Fluendo Streaming Platform (stream hosting service).
Go to their webpage and click on the ‘live’ button to get access to the streams.
A Feast for Crows
So I got George R.R. Martins latest book ‘A Feast for Crows’ delivered on Friday and spent a large part of the weekend reading it. The book has been something of a disapointment and its shortcomings are similar to the problems with recent Robert Jordan books, a cast of characters grown to big, the author not being able to cut away some dead meat and general verbiosity. The too many characters problem has the same origin in both George R.R. Martins and Robert Jordans books. They started out with a group of people and at that point their number wasn’t a problem, then they split the group up so no you need multiple storylines to cover them all. Neither author seems prepared to put any of their characters on the backburner either, turning them into secondary characters (at least for a while) although Martins did kill of a few of them in his first books.
Martins have also ended up splitting this fourh book into two, with the second part meant to come out next year. Problem is he split it mostly on a per character basis, which means that the next book will in many ways not move the story forward at all compared to this book. And this book did very little to move the story forward to begin with. Sigh.
I still think its a good book series, but Martin (and Jordan) should take to heart that even in multi-book epic series, sometimes less is more.
GStreamer 0.10 will rock
So Wim decided to go lethal on our list of undocumented API’s in GStreamer core. Today it reads:
100% symbol docs coverage (1449 symbols documented, 0 symbols incomplete, 2 not documented)
Pretty sweet 
We got something else working today and as you can see the reaction is quite extreme.
Teenage suffering
The recent news coverage about the case of a 23 year old female teacher having sex with a 14 year old boy made me think about the problems you face as when being a 14 year old boy.
Honestly I think if you do a poll among 14 year old boys if they would be willing to trade in their acne, bracers, school bullies and exam problems with having sex with a 23 year old good looking blond woman, I think the poll would come out fairly unanimous. Could of course be that I am misremembering my priorities when I was 14, but I don’t really think so.
Adventures in Solaris – Chapter 2
Ok, first of all thanks to those who posted to my previous blog mentioning pkg-get, it somewhat like what I wanted (but my experience so far wants me to label it the paralympics version of apt-get).
Anyway my Solaris goal of the day was to get GStreamer installed and working. Which turned out to be easier said than done. First of all Solaris seems to be a system where no matter how many ‘bin’ directories you add to your PATH you always seem to need some more.
Secondly configure fails to find a working C compiler, even if I install Sun Studio 11. Just getting a message about my compiler not being able to create binaries. The reason for this according to my config.log seems to be being unable to access a libdwarf.so file. Which doesn’t suprise me as the libdwarf.so file is in a directory called amd64. Which either means I got the wrong version of Sun Studio 11 installed or it is missing this file for my 32 bit system.
Got a little disapointed in pkgbuild too, but I guess that was due to having to high expectations. It is not like I am able to use my Fedora SPEC files on Mandriva or Novel Linux either without editing it.
Trying out Solaris
I installed Solaris 10 on a extra machine at work in order to be able to do some tests in regards to a customer of Fluendo. The experience so far has been mixed. The main issue is the utter lack of drivers bundled with Solaris, especially since this includes network drivers this is a pain. There is actually a large driver writing community around Solaris, but Sun doesn’t seem to bother pulling those drivers back upstream. So after a lot of extra effort spent downloading drivers, compilers and so on, burning cd’s and getting the driver installed I also found that Solaris features absolutely no tools for configuring anything. So getting my new network driver to work was about creating lots of files in /etc using online howto’s.
The pleasant experience is that JDS on Solaris is fast, much faster than GNOME is on my GNU/linux system. So either there are patches in JDS optimising some stuff (like the gnome menu always snapping open with all icons instantly) or its just some underlaying Solaris processes being better able to drive GNOME.
A point of frustration now is the lack of an update tool. Nothing like apt-get, yum, red-carpet or redhat-agent.
So if Sun manages to get more drivers included in Solaris, get some configuration tools working (like port the GNOME Setup Tools) and integrate one of the many update tools out there then Sun could have a winner on their hand.
Making product and sales materiel
Been working this week mostly on writing some kick as product brochures and leaflets. People are constantly writting us asking for information about our current and upcoming products and the information materiel I have had so far hasn’t been as nice as I wanted it, nor as informative. Been a suprisingly fun thing to do as our products and goals materalize very well through the process too.
It can be compared to when Dom asked me about GStreamer 0.10 last week, listing the improvements up for Dom helped me ‘remember’ how much nice stuff we have actually got into GStreamer 0.10 (plan on doing a proper writeup soon). And writing these brochures helped me ‘remember’ how much great stuff we have done in Flumotion for instance, it is easy when you are closely involved with the development to get overly focused on the bugs being worked on or features you have planned, instead of lifting your eyes and seeing the beautiful landscape of what have already been acomplished.
Maybe something a lot of people both in GNOME, but also in the community at general should do. Take a look up from their day to day hackery and see what great things we have achieved already.
Moosecock
Every group of people have their core topics. In our little social group the topic of eating cheese and the topic of eating moosecock seems to resurface at regular intervals. As mentioned in an earlier blog my uncle is in town these days for the annual meeting of EU vetrinarian group for poultry. Having worked with Norwegian food production all his life he can get hold of almost any kind of food. So he brought a box of moose-cheese which I had the pleasure of handing over to Wingo today.
So the next time he tells the joke about the two hunters the answer will not be moosecock, but moosecheese.
ESD to GStreamer: The Road Ahead
So I put up a Wiki page on live.gnome.org at the suggestion of Stefan Kost (who deserves a lot of gratitude from the community for his steadfast work on the GStreamer API docs). Anyway, anyone who have some input on this should edit that Wiki page with your scenarions, suggestions and ‘I will work on this’ statements 
Updating the 770
Anyone who have a 770 I recommend you upgrade your firmware by downloading the latest image from maemo.org. It is much more stable and seems faster than the normal production image for me. Also be sure to grab some extra Applications.
GNOME 2.14 and GStreamer
One question posted to my last blog entry which also pops up on IRC at times is the question of when GNOME will be ported over from esound to using GStreamer everywhere, so people can get sound events etc. and so on without using esound. I also noticed the issue being mentioned in the Ubuntu wiki of things they hoped for. The reason it hasn’t happened yet is due to both the eternal lack of developer resources, but probably more importantly some uncertainty about how to do it in a way which not likely to cause tons of issues.
Today esound provides three things to libgnome: a simple play_file API, sound sample caching and remote sound playback. It also provides some well tested backends for a lot of different platforms.
GStreamer could easily provide the play_file API, and at the same time improve format support a lot, so that part is relativly easy to address. Since GStreamer have a esound plugin and also plugins for other popular soundservers the third item is also taken care of.
The problem is what to do with the sample caching. When this has been discussed in the past the idea proposed was that there is some sort of API added in GStreamer which provides abstraction for sample caching with some kind of fallback when the underlaying system don’t support it.
Especially this last item could be a lot of work, depending on how ambitious you are. The simples solution is not to cache when the underlaying system don’t support it, and I am starting to feel this is the approach we should go for.
So anyway the job is relativly well defined, but since it touches core modules in GNOME which calls for extra carefullness and needs some GStreamer devel design work and implementation it has so far been something no-one either confident enough for and/or felt they have time for. So in terms of developer resources we are stuck between new contributors feeling the task a bit overwhelming and experienced contributors being swamped with items they feel are more critical.
Anyway, I still hope we get around to doing this switch soon, we know it is much wanted.