All posts by uraeus

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.

Standards and standarisation

Been dealing a little lately with the issue of standards. On one hand I recognize some standards as important and their existence has problably been a critical success factor for free and open source software. POSIX, PNG, Window Manager specification, UTF8, SVG, XML and various hardware standards come to mind as some examples.

The problem with standards is that the standarisation process often brings with it stagnation or that the standard advocates horrible solutions (the horrible solution was the compromise between two good solutions for instance). I think Solaris is an example of how letting yourself get locked down into a gigantic pile of standards and ABI promises in the end becomes more of a problem than a help. Sure if you ask people if ABI stability is important to them they will say yes, but in the end developers tend to value feature additions and improvements in the library they are depending on even more than ABI stability. And the same is true for standards, while everyone would say that being standards compliant is good, they would still choose to use something else if it provides a better experience.

Of course the worst kind of standards is when you create technical workarounds for the lack of standards and then ask people to standarize on those. Been a couple of examples of such I seen recently.

I don’t know how to do good and needed standards while not creating a standards bog, all I know is that I think standards isn’t the solution to all of the worlds problems.

Dangerous times for the Wheel of Time

Was sad to read today that Robert Jordan the author of the popular fantasy saga Wheel of Time have been diagnosed with a disease called amyloidosis, which according to Jordan has a median of 1 year until fatality from diagnosis if untreated. If treated the median jumped to 4 years which isn’t that much more. It made me think about my uncle who died two years ago after having been diagnosed with cancer about one year before that again, which again made me realize I tend to accept the occurence death quite quickly. I guess it comes as a byproduct of having a lot of doctors, nurses, vetrinerians and biologists in the family, all who comes in close contact with the cycle of life through their jobs almost on a daily basis, which in turn I guess have made them very ‘comfortable’ with such events, something which has rubbed of on me I guess. Combined with a complete lack of religiosity in the familty which has removed words such as ‘unfair or unjust’ in relation to death and instead quiet acceptance that death is direct result of being alive. So while there are of course the sadness and sorrow which comes when someone close dies, no energy or anger is spent looking to the heavens asking ‘why’.

Quality of Service

Wim has been working adding Quality of Service support to GStreamer. For those who don’t have any familarity with that term in this context is means that when you are playing back something which you don’t have enough CPU power to play back GStreamer tries to cope with it nicely. This usually means dropping/skipping video frames and for instance only decode the keyframes in a video file. One of the things you need to get right in such a setting is that no matter how many video frames you need to skip audio and video should still stay perfectly in sync. So when movement in the video slows down a bit again and your CPU is once again able to cope the audio and video hasn’t lost sync. You also want audio to keep playing perfectly through it all. Well Wim has the start of it working now and its already doing better on his selected testclip than the alternatives he is testing with. There is of course still more work that needs doing in terms of both enabling this for more formats and fine tuning the core, but its looking pretty sweet. Not as sweet of course as actually having enough CPU to play it perfectly, but still a waste improvement of what you are experiencing today.

House on fire

Seems the house of my mothers neighbour burned to the ground yesterday. Nobody got hurt, but it still feels kinda strange to have a house thats ‘always’ been there, now be gone.

The Legend that is Mike Smith and Theora

Mike Smith, our resident Xiph.org master at Fluendo, put together a new Theora decoder plugin today. It is based on the alternative theora-exp code from Xiph.org svn and should give very significant performance improvements over the current one in the 30% to 50% range. A big thanks to to Mike for this. All we now need is a release of theora-exp and distributions and users have a much higher performant Theora playback option.

GStreamer on Windows

We long have had some basic Windows support in GStreamer including building using Visual Studio and output plugins using DirectShow. Sebastian Moutte just commited a lot of fixes to our -good plugins package making sure most of the plugins in that package also build on Windows. What will be the second GStreamer application for Windows after Ixion?.

Pitivi

Plan on keeping up with my Pitivi blogging as Edward is such a lazy blogger. Edward has been working on improving robustness of Pitivi over the last few days with better handling for unloadable streams and also various smaller memleak fixes. Getting Pitivi memleak free is actually an important goal for us as we want to use the Pitivi engine also as a backend system for video processing which means it needs to be able to keep running for weeks without choking your server. A new release is planned soon and the goal is to have the features in there working as robustly as possible before then. It is in some ways similar to the development strategy we took with GStreamer 0.10. We defined a core set of plugins (which is what you today know as -base) which we felt represented many of the most important plugin types and usecases. We then worked on making GStreamer and these plugins work really well. Only when that had reached a high level of maturity did porting other plugins start becoming a priority. Apart from practical coding advantages to this approach it also came from a thinking that its better to do a few things really well and build on that instead of trying to do a lot of things right away and do them all badly. I think it worked out well for GStreamer 0.10 (as opposed to 0.8 where I guess we almost did the ‘add enough plugins and the core will fix itself’ strategy :). Hopefully it will work out equally well for Pitivi.

Cool GStreamer stuff

Jokosher

The Jokosher team continues kicking ass and taking names. The latest updates with screenshots of recent additions is simply amazing. I really hope they are planing on submitting a Jokosher talk for GUADEC today (last day before deadline!) or as a minimum do a Jokosher talk at LUGRadio live.

Thoggen

Tim-Philipp Müller has been reviewing patches and fixing bugs at a high speed in GStreamer for a long time now. I often feel he doesn’t get enough credit for this work as it is a little ‘behind-the-scenes’ kinda stuff. So I was very happy to see that his personal project Thoggen got a positive review on linux.com. With all the work Tim has been putting in on fixing the DVD and mpeg plugins in GStreamer 0.10 I think a GStreamer 0.10 based Thoggen should be possible in the not so distant future.

Diva

Michael Dominic just released his first 0.0.1 release of Diva today along with some really sweet looking demo videos. Thumbs up to Michael for his work so far and especially the work he has put into making such a sweet looking user interface. We are sure to borrow some ideas for that for Pitivi when the time comes to add more bling to the Pitivi GUI. Cool stuff Michael!

Diva and Pitivi

So why are there two efforts to make a GTK+ non-linear editor using GStreamer instead of one you might ask. Well as usual the answer is disagreement on design and component choices. While Diva and Pitivi are written in C# vs Python that isn’t the important divide, although it has some secondary implications in that regard as it makes it a little easier for Novell to integrate Diva with f-spot and Banshee when its done with Mono, while for us integrating Pitivi with Flumotion to do live editing on video streams is easier when both are done in Python. Both are possible of course anyway, but using the same language does makes things easier. But as said these are secondary items.

With Pitivi we sincerely feel that the under laying design is sounder and more flexible and that the path taken with gdv, the library Diva is built upon is suboptimal and much less flexible compared to the direction we have taken with GNonLin, the library/gstreamer plugin that Pitivi is built upon. Michael obviously disagrees which this assessment which is why he wrote GDV in the first place. Time will tell who is right and not.

That said the competition between the two projects is friendly and the redundancy in work is luckily kept to a minimum due to both projects using GStreamer. A lot of the work involved for both projects is of course writing various GStreamer plugins to enable support for various formats and effects and here everything that benefits one benefits the other. Both Edward and Michael is also looking at each others code and applications for ideas and discussing technical problems, so even though there are two codebases on two languages there is a good deal of cross pollination going on.

So no matter what happens the community should have one or two kick ass non-linear editors within a year. Personally I am putting my eggs in the Pitivi basket, but I will be genuinely happy about people contributing to any of the two projects.

The embarrassment in Afghanistan

The recent debacle surrounding the arrest and threat of death penalty for
the man in Afganistan who converted from Islam to Christianity
is nothing less than an embarrassment for the nations involved in the deposing of the Taliban government. While this embarrassment is more easily explainable in terms of the Afghan invasion being a more direct response to 9/11 and thus there was less time for planning a post-war Afghanistan, it does raise some questions on how such things are handled. George Bush wanted to set up Afghanistan and Iraq as shining democratic examples, but seemed to forget that a democracy is more than just allowing elections. And its not that there was a lack of experience with how to establish a democracy in a conquered nation, as it was done in both West-Germany and Japan after World War 2.

I googled a bit and I found this section from the Potsdam declaration, which was the document setting the terms for Japanse surrender.

We do not intend that the Japanese shall be enslaved as a race or destroyed as a nation, but stern justice shall be meted out to all war criminals, including those who have visited cruelties upon our prisoners. The Japanese Government shall remove all obstacles to the revival and strengthening of democratic tendencies among the Japanese people. Freedom of speech, of religion, and of thought, as well as respect for the fundamental human rights shall be established.

After the war the allied forces put clear directions of the writing of the new constitution. In Afghanistan it seems that apart from demanding a system based on elections there wasn’t any such guidance given. And it seems just as little guidance has been given in Iraq.

I am not sure how its been possible to screw up so completely twice in a row, but I guess part of the problem was ‘selling’ the wars as freeing the peoples of said nations. I guess that when you come in as a liberator as opposed to a conquerer its harder to impose your rules on the freed. Nontheless I am sure that the US government had a lot of negotiation options with the northern alliance before the Afghan invasion and maybe that would have been a good time to demand that a post-war constitution that was based on the same values and principles as was demanded of Japan, as shown above. Instead we got Taliban-light .

GStreamer based Media center software

I came accross GMediaRender last night which is client for upnp based media servers, like the Intel Viiv systems for instance. We plan on integrating support for this functionality in our Elisa Media Center software so its nice to see others also looking into this area with GStreamer.

I also managed to put up some photos I took of our new office. Any free software people visiting Barcelona should be sure to pay us a visit at the World Trade Center.

Adding my blog to Technorati for the fun of it –
Technorati Profile

Java and GNOME

Found a Belle and Sebastian album on emusic today which I was to download with eMusicJ
and I got told there was a new eMusicJ version out. While downloading using that I noticed that with latest stable JRE the GTK+ theme support in Java seems to have improved as eMusicJ was using the same theme that the rest of my GTK+ apps are and the application actually did look like it belong. Nice to see Java provide a native look and feel beyond the 3 hardcoded themes in earlier versions of Java.

Update: Opps, it was not updated theming in Swing that did this, the reason for the nice integration is that eMusicJ uses SWT (like Eclipse) not Swing. Thanks to Michael Sheldon for correcting me. Better GTK+ theme support comes in Swing 1.6 :)

Transcoding to Ogg

Jacub Steiner requested a gst-launch script for transcoding to Ogg, so with a little help from Wim I updated the script I did for 0.8 to 0.10. So you can now transcode2oggt from here and use to to transcode your video files to Ogg Theora using this syntax ‘transcode2oggt inputfile.xyz /full/path/outputfile.ogg’

Pitivi Non-linear video editor

Continuing my blogging on Pitivi today. After some requestes today from various users Edward switched over to using the GStreamer uri handlers instead on relaying directly on gnome-vfs. This means that even if you don’t have gnomevfs installed Pitivi will work if you have a plugin available that handles the needed uri’s for file reading. So even if you only have filesrc for instance things will keep working.
I kept on updating the Pitivi website a bit today, adding for instance a link to the Python GStreamer API docs written by Gian Mario Tagliaretti.

Any users out there who want to help us test Pitivi and make it really robust be aware that the best way to create a log to attach to a bug report is to run Pitivi like this ‘GST_DEBUG=python:5 pitivi > bugtext.txt 2>&1’. Then reproduce the bug and close Pitivi, bzip up the generated .txt file and attach it to a report in bugzilla.

GStreamer bug count

The GStreamer team is continuing the effort to push the GStreamer bugcount down. Todays search gave me 137 open non-enhancement bugs to GStreamer while the entrypoint to get back on the top 15 buggiest projects in GNOME bugzilla is currently 161 (Galeon). The battle continues!