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?.
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.
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.
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.
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 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 .
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 –
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!
Took my own suggestion from yesterdays blog and did some work on the Pitivi non-linear editor today. So for any aspiring hackers out there be aware that the task of adding a window manager decoration appicon is now done :). I also took the chance to do a little work on the website, by improving the description text there and adding a favicon to the page based on the great menu icon done by Andreas Nilsson. I also filed some bugs on issues I discovered. My goal is that the next version of Pitivi is stable enough that when people ask for an easy way to create Theora files we can point them to Pitivi. No more gst-launch pipelines or ffmpeg2theora.
After a long and steady period of bugfixing on GStreamer 0.10 we know have so few bugs that we are out of the GNOME Bugzilla Top 15 buggiest projects list. With Tim being on second place in the top bug closers ranking. One of the reasons we managed to push our bug count down so quickly is because a lot of the bug reports we got over the last months have not only pointed out the problem, but also included patches which of course makes things much easier. So a big thanks to both new and old GStreamer contributors.
The Farsight and Telepathy RTP work for GStreamer seems to be taking shape too these days. Philippe’s blog entry about getting Google Talk working with the Telepathy, Farsight and GStreamer stack was very encouraging. Combined with the work being done to enable RTSP in playbin I think we are going to have a very complete RTP story with GStreamer within the next 3-4 months, with both working conferencing applications and working RTSP streaming support in applications. Will of course be some time before we support ‘all’ protocols and formats, but the most common ones should be covered.
In regards to format support in GStreamer there has been some requests for a 0.10 version of the Windows dll loader, pitfdll. There has been a ready and working version in Sourceforge CVS for quite a while now, and which is just blocking on Ronald getting around to making a new release. For those wanting/needing it please grab the CVS snapshot and give it a spin.
Pitivi is really looking sweet these days. It is now ported to GStreamer 0.10 and the stability and performance increases compared to the GStreamer 0.8 version are just incredible. Currently it lets you transcode for instance Quicktime movie trailers to Ogg’s and also glue different videos together into one clip. More advanced editor features being worked on, but the core of Pitivi is now up and running well. Of course a lot of polish here and there is needed, in order to support both more input and output files properly, make the GUI look nicer etc. This means it is a great time for people interested to get involved in the Pitivi project. Being done in Python it should be easy for new people to grok the codebase and there are lot of little things that new people could have a go at to get started, ranging from writing a patch to add a window manager icon to Pitivi, improve the logic for thumbnailing to decrease the chance of getting a black thumbnail, enabling more output formats (anyone interested in helping with getting Matroska ouput working?) and so on. Since a lot of the work going forward is just enabling features available from GStreamer and gnonlin you should be able to add a major feature to Pitivi with just a few hours of work and testing. So grab the latest Pitivi version, join the Pitivi mailing list and either send in your first patch or ask Edward (bilboed) for suggestions for things to get you started hacking pitivi. If just a couple more people get involved Pitivi should be a killer application for GNOME 2.16.
More on cheap GUADEC flights
Noticed that Sterling Airways have restarted their direct flights between Oslo and Barcelona now. This means that people coming here for GUADEC should check out both Sterling and SAS for their tickets. SAS have been quite cheap recently actually so I am not sure if the new Sterling tickets are big savers, but it never hurts checking.
So I went back to Norway for the weekend. My main reason for going was to cheer up my mother who had been sick and undergone as lot of testing lately as the doctors feared for a while that she had gotten cancer. While back I also used to the chance to connect with some of my friends in Norway again.
I re-discovered is that doing stuff in Norway do cost a shitload of money. One night I went out with Kjartan Maraas and Owen Frasier-Green. We ate pizza, had a few beers and played snooker for a few hours. In the end the evening cost me almost 200 Euro, and that was for just me alone. Considering that my airplane ticket to Norway cost me almost 200 Euro sort of sets things in perspective :)
Anyway I think the trip back to Norway worked out well. That I felt like I returned after a two month vacation when stepping into the Fluendo office today probably means I had an eventful four days in Norway :)
So Edward managed to get me hooked onto Battlestar Galactica. I have seen the whole series and for season two I even checked out a couple of the podcasts done by the writer behind the show, Ron Moore.
Listening to those podcasts was kinda interesting as it gave me a impression of a person who cares about his show in ways very similar to how we care about our projects like GNOME and GStreamer. The similarities in feelings towards ones labour of love is of course one of those things which are in many ways obvious when you think about it, but having it confirmed by listening to such a podcast does make it more ‘real’. Another interesting parallel is the often difficult to manage relation with the community of strong feeling users. ‘Battlestar Galactica was great until you did X’ or ‘Battlestar Galactica would be great if only you did Y’, has a great similarity to ‘GNOME was great until you did X’ or ‘GNOME would be great if only you did Y’.
Anyway to make some specific comments on the Battlestar Galactica. I think one of the reason I like it is because they do fairly clever storylines and characters. Ron Moore and the others behind the show are smart people and it shows. That said, even if I think Season 2 is better than most other current television made it do feel a little less good than the first season. The reasons for this is probably complicated, but Ron has pointed out in his commentaries that some of the episodes turned out less well due to time contraints. As they increased the number of episodes per season the time pressure increased leading to more glitches in the storytelling. For instance one thing they did better in season one than in season two (especially second half of season two) is keep some final truths from you. For instance take the ghostly ‘number 6’ that follows Gaius around. For a long time they held us from being able to conclude on wether she is ‘real’ or a figment of Gaius’s imagination. As long as she was only telling him about the past or about things a genius might have been able to deduce himself you where kept guessing. Some of the things that has happened during this season doesn’t rhyme very easily with that uncertainty but has instead ‘cemented’ her a bit as an actual entity. The same with Laura’s religious prophercy fulfillment where I feel they wanted it to be unclear for the viewer if there really is a supernatural prophercy at work or if it is just a person that belivies in the prophercies making them true by acting them out. There was items in this season pulling strongly towards the first option. Of course Laura being cured from her terminal disease did make things a bit murky again to the show makers defence.
Of course it is possible to ‘correct’ these items by adding things to story patching over the glitches in the storytelling making the ‘other’ option in both cases seem much less likely, but my general feeling is that the ‘stress’ of the higher episode count has simply given them to little time to think out each scene well enough to keep the option for multiple interpretations there. So while the Ron and Co. are smart, even smart people need time to think to come up with clever stuff.
Anyway, I still think its a fun show and will be tuning in for Season 3 in the fall.
Found this nice site today which lists all the low cost airlines going to Barcelona and which cities they connect to. A perfect guide for finding cheap tickets to go to Barcelona. GUADEC is starting on the 24th of June so its time to start making arrangements!
Also a good time to get moving on submitting your abstract if you want to do a talk or a presentation at this GUADEC.
Be sure to get here as this GUADEC looks to promise more GNOME and more beer than any GUADEC before it :)