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.

DVD, Totem and GStreamer 0.10

Ok, my last mention that there probably wouldn’t be DVD support in the next version of GStreamer/Totem/GNOME seems to have made quite a few people worried. Got comments about it to my previous blog and also comments about it on IRC.

Anyway, what is needed for DVD support with GStreamer 0.10 is simply some people coming into on irc.freenode.net or contacting the mailing list saying that want to work on this and asking what plugins needs porting. Currently dvdread, libcss, dvdnav and dvdsubdec are the plugins I know about. Updating these plugins from the GStreamer 0.8 API’s to the GStreamer 0.9 API’s. The GStreamer team have been working a lot on improving the API and development documentation for this release and there are even porting help in the plugins writers guide.

That said both Martin Soto and Tim Muller stated that they are planning and working on it and try to have it ready for GNOME 2.14. Martin is already working on getting the mpeg/dvd demuxer ported and fixed which is an important first step. So with these two and hopefully more joining in, we will not only have DVD support in 2.14 it will work even better than in 2.12.

Hacking on Flumotion and Totem

We have Tim Müller staying and working with us here in Barcelona since yesterday. We have been doing some focused hacking and testing with the result that we have Flumotion working with GStreamer 0.9 now and a new release is imminent. Currently we are doing a Totem hacking and testing session. With latest CVS most of the files in our testsuite plays with Totem. Some stuff remains though, mostly adding seeking support to the demuxers and porting a couple of more plugins to fill out the format support. Hopefully we can within a couple of weeks start asking the wider community to start hammer the media playback in Totem.

Only area which is mostly unported yet is DVD support and I think we might end up with GStreamer/Totem not supporting DVD’s in the next GNOME release. Of course it being Free Software we never know what will happen, maybe someone will appear and start porting over the DVD plugins.

Brian Cameron is already working on porting the SunAudio plugin so hopefully GStreamer 0.10 will be a good story also for OpenSolaris users.

Also got a nice reply today to a mail I had sent Michael Roitzsch of Xine fame. Hopefully we can find ways to work togheter to the benefit of the members of both projects.

My plan is to spend a lot of time next week making some really nice brochures and information pdf files for customers intersted in either Flumotion or the Flumotion Streaming Platform. Hopefully we can also move a bit forward on our beta program so we can start having people test our GStreamer plugins.

Ogg on the 770

So Edgard Lima have done an initial port of the Tremor/iVorbis plugin to GStreamer 0.9. Today I tested it on the Nokia 770. It played my testfile back with a CPU usage between 30% and 40% percent.

Still quite a few bugs though, like support for playing a streamed file, and also being able to use the lowmem Tremor version which should reduce resource usage.

Also borks out at playing for a while. Not sure why yet, could be related to the power saving stuff.

Pipeline used for testing is : gst-launch-0.9 gnomevfssrc location=”http://192.168.1.70/u2.ogg” ! tremor ! audioconvert ! esdsink

Ubuntu stuff

I have become aware of some cool stuff relating to Ubuntu over the last few days. The first thing I saw was the project called Nexenta which is putting Ubuntu on top of the OpenSolaris kernel. I have been of the opinion that this is exactly the kind of thing Solaris needs to get people to test it out.

Another thing I discovered was the launchpad stuff. Which I have seen before, but I guess I sort of resdicovered it now as the form have solidified a bit. Anyway seeing it now I was amazed and impressed with the openness of the Ubuntu development process, a big kudos to the Ubuntu team for this. As a Fedora user I wish my distro was developed in the same open manner.

SVG stuff

Came accross this Open Office SVG theme today by Pinheiro, which was made to give OO a KDE’ish look. Anyway I tried viewing the full set with librsvg/nautilus and they all rendered perfectly for me (afaict). It gave me a good feeling as it is not that many releases ago that every new icon set released uncovered a few rendering bugs. Pinheiro also mentioned that TrollTech is working on integrating SVG support into Qt, which was nice to hear. Things have come a long way over the last couple of years, when I started looking into SVG the setup was a very spec uncompliant librsvg and a crash prone sodipodi. Today the picture looks so much better, and Inkscape especially have really caused the usage of SVG to take off. I hope the Synfig team adds SVG support to their app, it would rock to have Synfig to make SVG animations.

gnomedesktop.org stuff

I have been an editor at gnomedesktop.org for the last couple of years, posting stories as time have allowed. Before that I was the editor for the gnome hosted newsite. I always felt that while gnomedesktop.org was GNOME biased in the same manner that linux journal is linux biased or Windows magazine is windows biased, we where still editorially indepdent. Learned yesterday that not everyone else in the community are willing to accept that. I haven’t discussed the issue much with Stro, who is gnomedesktop.org editor-in-chief so I don’t know how he sees it. Stro ended up pulling a story yesterday, which I have no issue with as he is the chief editor and as such it is his call, but I do not want us to end up as the GNOME version of Pravda.

Bloat and the measurement of it

Ok, so after some mail activity Benoit created a patch which displays ‘writeable memory’ in the GUI, which gives a better approximation of actual usage compared to the older numbers. Waldo Bastien pointed me to a blog entry from Lubos Lunak about a tool called exmap which displays something its calls ‘effective memory’ which Lubos thinks is a relativly decent value for describing how much memory an application actually use. I made a screenshot showing both the patched gnome system monitor and exmap displaying the memory usage of the clock applet. If those numbers are to believed the clock applet uses somewhere between 3 and 6 MB of memory, which might seem a bit on the high side. (but lets remember that the ‘clock applet’ is not just a clock, its a calendering application integrating with evolution data server giving you an overview of your monthly meetings etc.).

Anecdotaly exmap is the first app I ever used outside the Mandrake admin tools which use the perl-GTK2 bindings to write its GUI. Maybe there still is some hope for Perl :)

Not sure panel-applets are a good/easy testcase for memory measurement, so I looked at X-Chat using these new numbers too, exmap reports effective memory usage of 3.6 MB, g-s-m reports writeable memory at 8MB and resident memory of 11.6MB (resident memory number seemed to be the ‘old’ number people tended to be using when discussing memory usage).

RTP the second coming and Bloat

Ok, it turned out my list of RTP projects using GStreamer was too short, there are at least two more projects in the GStreamer RTP real under development. The Xeris project have a GStreamer RTP setup using the ortp libary. And there is the Sofia project a console SIP client. Lots of good discussion on the mailing list going on where people try to coordinate the different efforts to get as much synergy effect as possible. Neat stuff.

Bloat and other madness

Jono’s article on O’Reilly caused quite a debate on lwn.net. The GNOME clock applet taking 10M of ram as proof that GNOME was bloated was brought up again. Ross Burton and Stef70 replied explaining why that number is misleading at why the actuall memory use of the applet is more something between 1M and 1.6M. Anyway I ended up chatting a little with Benoit Dejean the maintainer of GNOME System Monitor about it, thinking that even if maybe top and ps is out of our control we could at least make sure GNOME System monitor gives people better numbers. I mean if the numbers you present makes a lot of people draw the wrong conclusion then maybe the conclusion to draw from that is that you are presenting them the wrong numbers.

The problem seems to be that you can’t actually get the ‘real’ number due to the way the system works. And being the engineers we are providing users with an approximation number, (for instance by substracting SHARED memory from RESIDENT memory) violates everything most of us hold holy. So what we are left with are correct numbers which a large number of our users fails to understand/interpret correctly. On the other hand we are hesitant to provide an inaccurate number, but which still would give our users a number much closer to the number they want/expects. I hope someone manage to sort this out someday..

RTP everywhere, all the time

It is strange how things change. The GStreamer 0.8 to 0.9/0.10 change have little to do with RTP (although RTP also benefits from some of the improvements) yet where we had next to no RTP support in GStreamer 0.8 I think almost 40% of current GStreamer 0.9/0.10 development is originating in RTP related projects. There is of course the work we are doing at Fluendo in regards to adding RTP support to Flumotion, but there is also the work being done by the Farsight project which wants to add support for video conferencing interoperability with all the proprietary instant messaging clients, then there is the Tapioca VOIP project done by the guys at the Brazilian Instituto Nokia de Tecnologia. And there is of course the Maemo/770 VOIP work being done by Movial and Nokia in Helsinki. One things that is sure is that GStreamer 0.9/0.10 is becoming a RTP powerhouse :) Hopefully we can get started on the RTP implementations for Vorbis and Theora soon too, as Luca Barbato have being doing a good job of moving that effort forward.

Other news

Finally got my Vampyros Lesbos DVD, although I am noticing a sliver of scepticism among my co-workers for how good it really is. Guess they don’t appreciate quality in the same way I do.