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.

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).

The USB soundcard story

So as I have blogged about at an earlier point in time I have a Sound Blaster Audigy NX2 USB soundcard which I bought for the specific purpose of being able to play movies on my laptop with surround sound.

Even though I did google about it beforehand I managed to fool myself into believing this card was actually fully supported under Linux, which it isn’t. The S/PDIF output is not supported at all in fact, due to missing documentation from Creative Labs. Which is really sad, Creative Labs where among the first of the major hardware vendors to hire someone to work on linux support, and if they now don’t even provide proper hardware docs anymore then that is a sad development. Do anyone know if they still have a linux driver developer on their payroll? Anyway, I tried mailing the contact person listed on the opensource.creativelabs.com website about the docs, hopefully I get a positive reply.

Anyway as I also talked about before the state of USB soundcard handling under linux is not a beautiful chapter in itself, even when just using it in stereo mode with Totem/Xine it reverted back to the internal soundcard just after the DVD menu for some reason. And since I had lost the .asoundrc file I wrote the first time I tried I spent about as much time this time too finding out exactly what to put in it. Most entries I googled out said stuff like ‘here is what my .asoundrc file looks like, not sure what it exactly does, but it works for me’…..

I fear that as the Fluendo DVD player comes closer we end up having to fix up parts of the lower stack a bit to overcome the pains like this.

Anyway, Tired of the whole problem I bought a 60 Euro DVD player yesterday. Was able to watch Hidalgo yesterday using it on my widescreen lcd tv usinig s-video and connecting to my surround system using a optical cable. Neato! Now I only need to figure out how to disable to region checking on the system.

Pirates and Parrots

It is a well known fact that Pirates and Parrots go together. It is kinda like wizards and cats. But how many historical pirates did actually have a parrot? A good question you might say, and one we might never find the true answer too. Yarr!

GStreamer 0.10 and GNOME 2.14

As the planning for GNOME 2.14 starts we need to gear up in the GStreamer community too. As we want to switch GNOME 2.14 over to using GStreamer 0.10 there is a lot of work that needs to be done. Releasing 0.10.0 being maybe the biggest one :)

We are pursuing an agressive schedule now and 0.10 should be out sometime November, so that part should be ok.

As for other tasks there are of course the obvious things like porting Totem, Rhythmbox, Sound Juicer and gnome-media over to the new version of GStreamer. But maybe this switch is also a good time to finally get rid of the direct esound dependence in GNOME.

Always been a lot of discussion on what would be needed to ditch the esound dependency, but sample caching and sound mixing seems to be the core issues. We have been talking for a long time of implementing a simple local only sound mixer/sample caching system with GStreamer and than add an abstraction layer on top which will use that system if the underlaying output doesn’t support it for you. So if you use esound it will not use it, or if you use dmix with alsa it will only use the sample cachinh part. Problem of course have always been that those who volunteered to take the tasks of doing this on ended up to busy or got dragged into other more urgent things.

Anyway this is definetly the time to start thinking of what needs doing and who will do what. Don’t want to start switching GNOME over 2 weeks before the release of 2.14 :)

Norwegian politics

Not everyone agreeded with my previous post about the Norwegian election. Especially my comment on the vote numbers seemed to hit some tender spots. As some people pointed out, if you add the votes of one of the parties which didn’t get elected to parliament then the figures look differently, but then again if you are going to start adding the votes of the non-represented parties then you can’t stop at one, instead you would need to add up the votes of all the unrepresented parties and assign the to your block of choice (haven’t bothered doing so myself to check what the results then would be).

The fact remains that among the parties represented in parliament you have now a majority in terms of representatives which got fewer votes than people who are the minority in terms of representatives. This is due to two factors, the primary being method for allocating representatives, using Lagües allocation which favour the biggest party. This I have actually little problem with as it do have some good effects, like strenghtening the parliamentary support of any election winner and through that easing governance (although Norways solution is to weak to have a real impact in that regard, unlike for instance the Brittish election system). The other reason and which is the thing which I strongly dislike is the the part which discriminates against central areas like Oslo, treating votes there like secondary citizens whose votes are worth much less than for instance the votes of people in northern Norway.

The justifications for this system looks to me to be made up mostly to defend status quo as it serves the interest of the majority of parliament fine even it if degrades the majority of the electorate. Cause if the arguments used where genuine then Norway would opt to move towards a two chamber system like the US where one chamber is based on population numbers and one chamber is based on geographic units. Such a system gives both fair representation to all and safeguards the interests of the less populated areas. While the current system just gives the less populated areas undue power. And before someone points it out, I am aware that Norway in theory have a two chamber system.

So back to my post from yesterday, my complaint about the vote numbers where mostly based on the frustration with the Norwegian electorate inability to go forward instead of backwards. As it could very well be that even if you remove the geographical discrimination from the Norwegian election system, the Lagües model could still have wielded the a similar outcome (to much work to actually calculate it to find out).

Anyone seen the Amulet of Yendor?

Would be interesting to do a poll over how many GNOME hackers have actually managed to get hold of the Amulet of Yendor in netHack. I am not one of them, but I am sure there are some out there :)

Rhythmbox magic

Charles Schmidt checked his DAAP work into Rhythmbox CVS today. This means that if you update to it you should be able to share music between Rhythmbox and iTunes clients on your LAN. Sweet stuff :)
I do have it running now, but since I am the only one in my LAN with it there was a limited amount of sharing. I did however succesfully have my user run RB pick up the sharing of my root run RB :). screenshot provided as proof

GNOME 2.12 logo contest winner

This logo made by me could have won the GNOME 2.12 splash screen contest, at least it got the full endorsement of Luis. Unfortunatly due to a technical glitch another image will end up in the actual release, due to some silly rule about actually winning the contest.

GNOME 2.12