All hail the windmill tilters

Been growing ever more tired of the posts about RMS and his talk at GCDS. I didn’t agree with his conclusions on the technical/legal subjects covered and the whole emacs/st.igutius thing is becoming a bore, but I suspect more than a little that the current outpouring over his alleged sexism is more about people finally finding a good meme to use to latch out against someone they don’t like and disagree strongly with, rather than a sudden realization that the St. Ignutius routine he has been doing for the last 15 years is overtly sexist. One could certainly argue that there was a few passages in there that should be altered, but I am equally sure that if it had been someone else, most people ranting currently would have been willing to write it off on the goodwill account.

On that topic I think the whole issue of sexism in the community is somewhat of a joke. It basically appeared on the stage after the following steps was taken.
Step 1: The lack of female participation was identified as a problem.
Step 2: People wanted to address the problem
Step 3: The following algorithm was used to determine the source of the problem:

If "well reasoned explanation can be found" is true:
    address_problem()
else:
    print "sexism"

Since then well meaning people of the community has followed in the footsteps of another well meaning fool and been tilting at the windmills.

So please continue fighting against the evils you see in the world, but be aware that crucifying RMS is probably not the solution.

And before someone starts shouting at me for not realizing that sexism do exist in the open source world, please save yourself the energy. I am sure it exist, along with racism, anti-semitism, bigotry, general intolerance, gay and lesbian hating, supremacism, communism or whatever evil you want to come up with. I just don’t buy into using them as the default fallback whenever the reason for something needs to be explained.

GCDS summary

Been a great week at the Gran Canaria Desktop Summary. Met up with a lot of old and new friends, seen a lot of great talks and even managed to improve my tan quite a bit. Yesterdays GStreamer summit went well, we managed to snag the labs 2-6 room and had a long and mostly fruitful discussion about GStreamer 1.0. The general plan going forward will be to increase our number of element baseclasses, in order to both improve the general quality of elements, but also to make the job having all 0.10 plugins available with 1.0 more viable. Our general goal is still to match GStreamer 1.0 with GNOME 3.0, but it will be a tight fit so we can’t be sure to make that deadline, unless GNOME 3.0 slips a bit. A big thanks to Jan for leading the meeting and to Thomas for taking on the job of writing a technical summary of the discussion.

It was also nice while here to meet Daniel Taylor of Arista fame and to discuss some of the practical challenges ahead for both Arista and Transmageddon.

After a bit disappointing experiences with the food the first few days we found a wonderful tapas place two days ago called La Tasca de Los Vinos. It specializes in wines, but also serve a lot of really nicely done tapas. And they also have some really nice meat which they bring out a large raw slab of to your table and then you negotiate the piece they will cook for you. The owner promised us some special succulent pork if we came back there again today, so we might have to do that :). Had a lot of fun during dinner, like Jan starting of speaking like a nihilist with a german accent and after a few iterations, drinks and challenges doing a stuttering nihilistic pirate with a german accent, with great success :)

Been also hacking steadily on Transmageddon while here, moving closer and closer to remuxing support. Was reminded of the great tool done by Stefan which lets you generate a graphical representation of your applications pipeline when you get an error. So in Transmageddon GStreamer buswatcher function I now have a line that reads:

gst.DEBUG_BIN_TO_DOT_FILE (self.pipeline, gst.DEBUG_GRAPH_SHOW_ALL, 'transmageddon.dot')

Which in combination with the GST_DEBUG_DUMP_DOT_DIR environment variable dumps a file that graphwiz can use to generate the linked image. Laszlo of Jokosher fame mentioned during the GStreamer Summit that he mostly use that these days for debugging issues rather than the GST_DEBUG logging (which can be quite verbose).

Finally, I was also very happy with the Collabora Multimedia Polo shirts we got made. People seemed to really like them and I ran out of the smaller sizes very quickly even if I generally only offered them to people with a GStreamer track record. I think the conference went really well both for us in the Multimedia group and for Collabora in general. Wims tutorial on developing RTP applications with GStreamer was well attended and Wim is really good at explaining stuff, I have no problems seeing why we have customers asking Wim to come back time after time to do GStreamer training sessions and assist with design discussions. Edwards talk on PiTiVi also went really well and I think people where quite impressed with how far it has come. With the additional features being rolled out in the coming Months and the discussions I had while here, I think PiTiVi will quickly end up being shipped by all the major distributions as part of their default desktop setup. Tim also got some positive feedback on Thoggen and I think finally accepted that he actually do have quite a lot of users. He even promised to finally add Dirac support to Thoggen.

GStreamer Summit 2009

ok, so we ‘kinda’ got a room for tomorrow, Lab 2-6 at the University from 11.00 until 14.00. After two Months of emailing it turns out I am not even able to 100% reserve the room one day ahead, which is beyond ‘impressive’.

Anyway, anyone interested in attending the GStreamer Summit meet at Lab 2-6 at 11am tomorrow (Thursday) best case,we got a room and worst case we are at least assembled so we can go beat the crap out of Agustín.

Syntax Era

So the BBC is making a new drama series about the battle between the ZX spectrum and the BBC Micro. Currently codenamed ‘Syntax Era’. As it turns out Clive Sinclair, the creator of the ZX Spectrum, had his offices very close to the current Collabora office here in Cambridge. And due to our own Edward Hervey knowing some of the people involved, the production team behind this new series came by our offices to do some location scouting some weeks ago. It is a little bit up in the air if they are going to use our offices or not in the end, but there is a chance they will, and if that happens there is also chance you might catch some familiar faces as extras in this new series :)

Transmageddon 0.11 ‘GUADEC Edition’

So in preparation for heading of to Gran Canaria and GUADEC on Thursday I pushed a new Transmageddon release today. 0.11 is actually the first release I posted to sites such as Gnomefiles and Freshmeat so in some sense I guess I feel more confident about this version that earlier ones. A lot of new features included, like multipass encoding, videoflipping (so if your video is 90 degrees tilted you can correct that during transcoding) and better profiles. Still kinda rough at the edges though, and the very latest GStreamer releases are needed for everything to work. Still expecting quite a few bugs to be reported still.

In some sense development have stood still for a while as I have focused on testing various devices and GStreamer features. Remuxing is still on my todo list, but discovered that for instance an ac3parser is still needed in GStreamer to
do nice DVD conversions.

Was kinda nice to successfully use Transmageddon for a business related need at work, we had gotten a request at Collabora Multimedia which meant I needed to transcode a video into quicktime+h264+aac from a .vob file. Worked like a charm :) I mean while I have of course done hundred of transcodes as part of development, it was nice to do one for something ‘real’ :)

The obscure world of spam

After updating to Fedora Core 11 I noticed a new feature, the automatic font download system. Essentially it works like the automatic codec download system we have in GStreamer, but for fonts.

So judging by how often the font download box pops up the spam I am getting these days seems to be mostly in 3 languages Coptic, Syriac and N’Go :) I have to assume the spams are using random character sets to confuse spam filters, as I doubt that for instance either the ancient egyptians or their Coptic descendants of today are a big enough demographic for the spammers of the world :)

AMR support in GStreamer

Some time ago I put out a request for someone to pull the AMR code in Android out and turn it into GStreamer plugins. Well Iago Toral Quiroga did exactly that and thus we now got support for encoding and decoding AMR-NB in GStreamer, combined with support for decoding AMR-WB. This turned out to be an indirect team effort as the current code is a combination of the original Android code, combined with some API glue code developed by Andres Mejia and Martin Storsjö, combined with the old AMR plugins in GStreamer which was meant to be used with some non-distributable reference code. These 3 code bases Iago massaged together into something pliable. The current plan is to merge the patch once bad and ugly unfreeze and we finally got some decent AMR plugins for GStreamer. A big thanks to Iago and everyone else involved.

This effort also fit in well with a bug hunt I have been on for a while to figure out why Transmageddon was not able to create files my phone could play back. After having spent a lot of time expanding on the transcoding engine in transmageddon and testing every possible variation I could come up with, it was finally Mark Nauwelaerts here at Collabora Multimedia who came to my rescue with this patch. Also that getting merged after the freeze.

Also been testing the ASF muxer that Thiago Sousa Santos is working on as part of this years Summer of Code. It is coming along very nicely, with WMA2 and WMV2 muxing working. Hopefully when I do my new Transmageddon release before heading down to Gran Canaria I can include ASF support too. Already got a nice batch of features in git master with multipass encoding, a lot of bugfixing to the profile support, h263 and video flipping. So with the efforts mentioned above I should also be able to add AMR-NB and ASF/Windows Media support to the mix too. I also hope it is a long time until the next time I need to think about stuff like pixel aspect ratio versus display aspect ratio :)

I still need an icon for Transmageddon if someone is up for the task.

Google, the LGPL and software patents

LWN got a really interesting article discussing how Google have included H264 and AAC support in their Chrome browser using ffmpeg and the legal discussion that has come from that. It seems Chris DiBona and the Google lawyers have decided they can work around the LGPL by licensing patents for the ‘application’ instead of for the library implementing the functionality in question. Of course most of us would think that if you ship a library as part of your application, it is a part of your application, but Chris DiBona seems to feel that he licensed the H264 codec for use with the bookmarks list of Chrome and not the media engine :)

More seriously though DiBona tries to weasel out of the situation by claiming that the language of the LGPL saying ‘For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. ‘ only applies if there is a specific language in the patent license hindering re-distribution of the code. He even manages to refer to the fact that the FSF made the language on this subject even clearer in the LGPLv3 as proof that his reading is correct. While at the same time claiming that what the FSF thinks about these issues is irrelevant.

Well I guess Chris is right about Google taking their responsibilities very seriously, at least as long as they say what he wants them to say :) Can’t help but feel that Google somewhere along the line went from ‘do no evil’ to ‘we are google, hence no evil can have been done’ which while sounding similar actually are very different.

Funniest part though is that another part of Google, Android, seems to think its not even legally fine to ship a LGPL media framework combined with Apache licensed codecs with their stack. But I guess the Android and Chrome departments have different lawyers, so if we are lucky maybe the Android department ends up suing the Chrome department ;) Or maybe Chris DiBona wakes up and realize he could resolve this issue quickly by combining the Apache licensed H264 implementation in Android with his ffmpeg stack and thus resolve this issue.

Pitivi release getting positive feedback

Seen quite a few very positive twitter feeds since Edward Hervey announced the 0.13.0.2 pre-release of the PiTiVi video editor. Also saw this blog entry by Bryan Lunduke praising our latest efforts around PiTiVi. So all Pitivi sceptics out there, this is the time to give PiTiVi another look!

Transmageddon
Nathan Willis wrote a nice article on lwn.net covering Transmageddon and Arista. If you are not a lwn.net subscriber you should seriously considering becoming so, or you just have to wait until the article becomes generally available next week.

To avoid scaring to many people away I also I finally updated the Transmageddon website today, so instead of looking like a 5 minute website it now looks like I at least gave it about an hour :)

New transmageddon release

Did a new Transmageddon release today. This version includes the first stab at the device profiles support that I have been working on in collaboration with Daniel of Arista transcoder fame. While I think most of the profiles in there work many of them are probably not optimal as I haven’t gotten around to testing them as much as I wanted. Getting the Nokia 770 profile going basically sucked up all time I had for Transmageddon over the last weeks.

Be also aware that the presets might not work as expected as they rely on still unrelased changes to GStreamer. So while I put in checks in the code for this, it means that if it doesn’t find the GStreamer preset support, it will just go with encoder defaults, which will not work for some devices, most notably the iPod.

There are a couple of features on my immediate TODO list atm, which include multi pass encoding and remuxing, in addition to cleaning up the website, but things are looking a little hectic for a while, so I figured I get this release out as it might be quite some time until I get around to sorting out those issues.

I also got a Bugzilla entry set up for Transmageddon now, so feel free to file bugs and enhancement requests. But please be aware of the bleeding edge development goals of Transmageddon, which do mean your out-of-the-box GStreamer will probably not give you access to all the full featureset of Transmageddon.

So enjoy Transmageddon 0.10 :)