Category Archives: Red Hat

Transmageddon 0.24 is out

So I finally released an official new Transmageddon release today, 0.24. In addition to the changes from the 0.23 test release (GTK3 and GStreamer 1.0), this new version uses Python 3 and got some fixes for improved handling of missing codecs. Let me know if its giving you any trouble.

Next step is looking into how to implement some or all of the new interface design from Gendre Sébastien.

GStreamer 1.0 Released

So this news is a couple of days old now, but I wanted to write a blog entry about the exciting release of GStreamer 1.0. When we released GStreamer 0.10 about 7 years ago we did not expect or plan the 0.10 series to last as long as it did, I think if we had it would have been called 1.0 instead of 0.10. Our caution back then was that 0.10 was a quite revolutionary version with the core of GStreamer extensively re-designed around effective use of threads and thread safety. The new GStreamer 1.0 is more of incremental improvement, cleaning up the API and making doing things modern systems expect easier and more straightforward. I think a lot of the work that went into 1.0 could be said to be based on cleaning up the awkward APIs that can evolve as you are not able to change anything existing, just add new stuff that does not affect the old.

That said there are a lot of major improvements to be seen too, with the list that Tim-Phillip Muller put together for the GStreamer website catching the major items:

  • more flexible memory handling
  • extensible and negotiable metadata for buffers
  • caps negotiation and renegotiation mechanisms, decoupled from buffer allocation
  • improved caps renegotiation
  • automatic re-sending of state for dynamic pipelines
  • reworked and more fine-grained pad probing
  • simpler and more descriptive audio and video caps
  • more efficient allocation of buffers, events and other mini objects
  • improved timestamp handling
  • support for gobject-inspection-based language bindings

The list can seem a bit technical and dry, but there are a lot of things that will benefit users here once plugins and applications start taking advantage of them. For instance the more flexible memory handling will improve performance when for instance running GStreamer on ARM boards like a Panda board or a Raspberry Pi. The changes will also make it a lot easier to write plugins and use plugins on PC platforms which use the GPU for decoding or encoding and that use OpenGL for rendering the playback. These things where possible with 0.10, but they required a bit more special casing and more code in the plugins and a bit more overhead in setting up the pipeline. If you want a great introduction to what is in this 1.0 release I recommend the keynote by Wim Taymans about GStreamer 1.0 and the GStreamer Status report keynote by Tim-Phillip Müller which both talk alot about the new features and the possibilities they open.

I think that the biggest change for a lot of developers though will be if they are using a language binding for their application, GStreamer 1.0 is offering Gobject introspection bindings support, which means that most bindings from now on will be using that. For Python developers like myself that is a quite big change in API. On the other hand it also does mean that porting to Python3 has become very simple. For Transmageddon I simply ran it through the Python 2to3 script and it just worked.

There are a lot of contributors to this release, and I would love to thank them all, but I think Wim and Tim also deserve a special mention as I don’t think there would be a GStreamer 1.0 without them. Wim has of course been the GStreamer maintainer for a long while and he shepherded this release from the beginning when he was the only developer working on it. Tim has been the GStreamer release manager for a long while now and are doing a wonderful job, fixing a gazillion bugs and making sure we regressions are not allowed to creep into GStreamer releases. He ended up doing a lot of heavy lifting to get the final GStreamer 0.11 test releases and the final 1.0 out the door. So a big big thanks to both of them.

Another person I want to give an extra kudos to is Bastien Nocera who have done a lot of working porting GNOME applications to GStreamer 1.0, there is and was of course a lot of other people involved in that process too, but Bastien did an incredible job working through that list and writing patches to port many of them over.

What I am really looking forward to now is the release of Fedora 18 as I think it will be the first chance for a lot of users and developers to try out all the great work that has been done on GStreamer 1.0 and porting applications over to it. I am personally targeting Fedora 18 with Transmageddon, doing my current testing and development on a F18 system, making sure things like the PackageKit integration is working smoothly.

A great service for Fedora and Humble Bundle

I think most people are aware of the Humble Bundle which have been releasing a range of cool and great games on Linux since they started up. The games though has usually tended to be distributed as a tarball and doesn’t automatically integrate itself into your Fedora system like you would like. Well thanks to the cool effort called Mumble RPMS you can now turn all those tarballs from the Humble Bundle into nice RPMS for Fedora. So a big thanks to the author of Muble RPMS for doing this work!

Transmageddon test release available

I have made a first test release of Transmageddon today, 0.23. It is the first release depending on GStreamer 0.11/1.0 and GTK3. It also features a little bit of GNOME Shell and Unity integration in the form of a notification message when its done transcoding and the menu has been moved into the shell. You can find the test release in the pre-release directory on linuxrising.org. Let me know if you have any issues so I can try to fix them before I make a final stable release when GStreamer 1.0 is released. Be aware that you want the GStreamer 0.11 releases from yesterday to try this release.

New GTK3 and GNOME shell friendly Transmageddon

The above screenshot is taken on my Fedora 18 test system!

Interested in joining the Red Hat Desktop team here in Brno?

So I am looking to hire two more people to join our team. So if you ever wanted to join the worlds leading Linux company and work on making the desktop rock this is your chance.

The first position I have available at this point is for a Webkit developer. We have a lot of applications these days in the desktop relying on Webkit and we need someone in the team who can both work on making sure our webkit packages in Red Hat Enterprise Linux(RHEL) and Fedora are kept up to date, but also work with other desktop team members with application integration issues and so on. You will also have time to work upstream to help push Webkit and especially WebKitGTK+ forward.

The second position I am looking for a candidate for is working on the Evolution email client. Evolution has been with us for quite some time and thanks to the effort of the current development team a lot of important infrastructure work has been done, like a new accounts system and the soon to be finished migration to Webkit. But we want to make sure Evolution keeps progressing and have the features it needs to be the primary email client for both Fedora and RHEL users. In addition to the work on Fedora and RHEL this job will include working on upstream Evolution and upstream libraries used by Evolution, such as WebKit, OpenChange and Kolab.

Also beyond these jobs Red Hat is looking for more people with Python development experience to join our 500 strong team here in Brno, Czech Republic, so even if the two jobs above is not your cup of tea, but you do have Python experience and joining Red Hat in Brno is something that could be of interest to you, please get in touch and I well put you in contact with the right people here. We are looking both of all levels for these python jobs, so both people fresh of out Uni or with many years of experience should get in touch. Be aware that these python jobs are not in the Desktop team though, but in some of our other cool teams here.

So if any of the above is of interest to you please contact me on cschalle(at)redhat(dot)com.

Gearing up Transmageddon for release

As we count down towards the GStreamer 1.0 release I been spending some free moments preparing the new Transmageddon version, today I re-enabled multipass encoding, removed the redundant xvid option (as we already do MPEG4) and polished the notification message a little. Tried to run through with as many codecs as I can, and so far they all seem to work perfectly with GStreamer 1.0. So hopefully a new Transmageddon release soon :)

I think I got everything that was there before the 1.0 port back again, but I wouldn’t be surprised if I have managed to miss a feature somewhere :)

The challenges of Desktop Linux

So Miguael de Icaza posted a blog with his opinion about why Desktop Linux has not become a huge success. The core of his argument seems to be that the lack of ABI stability was the main reason we didn’t get a significant market share in the desktop market. Personally I think this argument doesn’t hold water at all and the comparison with MacOS X a bit random.

So I think there are a lot of contributing factors to our struggle in the desktop market like:

  • We are trying to compete with a near monopoly (Windows)
  • Companies tend to depend on a myriad of applications to run their business, and just a couple of them not running under Linux
    would be enough to derail a transition to Linux desktops
  • We were competing not only with other operating systems, but with a Office productivity application monopoly
  • We are trying to compete by supporting an unlimited range of hardware options
  • We divided our efforts into multiple competing APIs (GNOME vs KDE)
  • There was never a clear method of distributing software on Linux outside the distro specific package system.
  • Many of our underlaying systems were a bit immature
  • Software patents on multimedia codecs made it hard to create a good out of the box experience for multimedia
  • Competing with free applications is never a tempting proposition for 3rd party vendors
  • We never reached a critical mass where porting to desktop Linux tended to make sense
  • An impression was created that Linux users would not pay for any software
  • The different update cycles of the distributions made it hard to know when a new API would be available ‘everywhere’
  • Success in other areas drained resources away from the desktop

The Apple Myth
So how did Apple succeed? Well first of all the question needs to be asked if they have succeeded? When Steve Jobs came back to Apple I think their global market share for personal computers was down to just below 5% if my memory serves me correct. According to Wikipedia (not the best proof of anything, but lets assume they are in the ballpark) their marketshare is now about 7.5%. So in other words on the back of being the media darling and record breaking products such as the iPod, iPhone and iPad, they have managed to increase their market share with 2.5% in the PC market. I think that speaks volumes about the challenges posted by the first two items in my list above. Another thing that is both an advantage for Apple and a disadvantage at the same time is that they got their own hardware. In the advantage collumn that means that their developers had a very limited set of hardware configurations to support and they could ensure MacOS X ran well on that configuration. We on the other hand have been struggling with trying to support basically any random configuration out there, which means ensuring a problem free experience for everyone is next to impossible. Of course I think only supporting your own hardware also does sometimes makes things harder for Apple, because if a company was considering switching to MacOS X they would have to throw away all their existing hardware, which I am sure makes a lot of companies think twice if contemplating switching.

Apple were also able to build on their old market share when launching MacOS X, which means they have had a profitable ecosystem all the way. So for instance porting games has provided enough income to support companies in keep doing so. While for Linux it has often been a proposition of trying to build a market when considering porting to Linux.

Conclusions
So I could go intro great detail for each of my bullet points, but I think they are quite self explanatory. But my general point is that I when I ask myself if I think our market share would be significantly higher if our ABI stability had been even better, the answer is no. Not that I am saying I think it has had no impact at all, I am sure examples exist of ABI breakage or distro fragmentation having caused 3rd party software developers to shy away, but I don’t really believe Linux would have had for instance a 10% marketshare today if only our ABI stability had been better over the last 10 years. But maybe it would have added another 0.2% or something in that range.

But as I said in an earlier blog post, I am not negative about the future of Linux and open source on the desktop. I just think it is a lot slower slog to get there than we hoped for, and I do honestly feel that we have a much more compelling product to offer today than we did 10 years ago in comparison with Windows and MS Office. But the challenges in my bullet point list remain and overcoming them has been and will continue to be something we have to chip away at, one step at a time. And in the meantime linux and open source software is still doing extremely well in a lot of other end user facing market segments where the competition was not so strongly entrenched, like mobile phones, tablets, TVs, set top boxes, in-flight entertainment systems, in-vehicle entertainment systems, home applicances and so on.

Back from GStreamer Conference 2012

Came back last evening from the GStreamer Conference and I am now back in Cambridge for the weekend. The GStreamer Conference was a lot of fun this year and it was great seeing everyone again. I think the mixture of talks we had this year was really good and I think everyone attending enjoyed themselves. For those who missed the conference this year then Phoronix and Lwn.net posted articles from the Conference. The talks where also recorded and will soon be available at the Ubicast GStreamer Conference website. We did try to get livestreaming going this year, but due to technical problems it didn’t work out, but maybe next year.

A big thank you again to our Gold Sponsor Collabora and our Silver Sponsors Entropy Wave, Fluendo, Igalia and Google. Thanks also goes to LWN.net, Phoronix and Ubicast for making sure the talks and sessions at the GStreamer Conference can reach a wide an audience as possible. And last but not least a big thanks to all our conference speakers who took the time and effort to prepare presentations for this years GStreamer Conference.

For me personally the GStreamer Conference this year also marks the end of my life in Cambridge, UK. Starting from next week I will have completed my period of comuting to Brno, and will instead be living in Brno, Czech Republic on a permanent basis. Which reminds me, we are looking to hire more members to our Brno desktop engineering team, so I will be posting a blog soon outlining what kind of experience we are looking for.

New free font from Adobe and a cool kickstarter project

Discovered yesterday that Paul Hunt of Adobe released a new font under a permisive license called Source Sans Pro. It looks quite nice and even adds Navajo support, probably as the first free font to do so. Hopefully we can get this packaged in Fedora and elsewhere quite quickly.

Another item that caught my eye is the Kickstarter for Oculus Rift, which is a VR glasses device which will include Linux support. Usually a bit sceptical about throwing out significant money on projects by people I don’t know off quite well already. But warm endorsements from people like Carmack and Gabe Newell convinced me that this was the real thing. With Gabe being so enamoured by it, maybe we can manage to get support for it in the Linux version of L4D2 :)

The Future of GNOME

Having just returned from GUADEC and now having the desktop as my job focus I been thinking about where we are going and what to do next. Benjamin managed to get quite a bit of press for his abysmally negative post, but I think his mis-stated the situation quite badly. As Dave Mason said during the history of GNOME talk, we have more or less always feel threatned and felt at times that we had an insurmountable task competing against systems with a lot more developers available than we do. There are some dark clouds in the skies, no doubt about that, but when hasn’t there been in the 15 years of GNOMEs existence? For instance the current tug of war between the GNOME shell and Unity? We have been there before, with Ximian and Eazel pushing competing visions for the GNOME desktop back in the day. Major corporate backers leaving (Nokia) or being in trouble(Novell)? Eazel and Ximian again. GNOME being perceived as being Red Hat only? That was the exact story that was being pushed before Sun and Ximian came on the scene. GNOME 3 turning away users? Hey, I can tell you that the amount of flames we got for GNOME 2 easily beats the GNOME 3 flames.

But for each of those events in the past we ended up bouncing back stronger afterwards, and I suspect we will come back with a vengance this time too. The thing is a lot of things are actually going very well. First of all the are a lot more shared projects with a healthy amount of resources behind them these days. WebKit is a great example of a project of crucial importance to GNOME, but which we share with a lot of other projects and companies. Take LibreOffice for example, yes LibreOffice do not contribute a lot of git commits to the GNOME git respository statistics, but thanks to LibreOffice we have the best and most full featured Office suite ever available to our users. And thanks to Firefox and Chrome we have browsers available with world known brands. And thanks to GStreamer, which is on freedesktop, we have a world class multimedia framework available. Instead of having our own sound server like we did with ESD, we now share a top notch sound server with all linux systems in the form of Pulse Audio.

Back during the GNOME 2 development cycle the GNOME project took an active decision that we would try to reach out to more of these external projects and try to work with them to integrate them into the GNOME experience. And we have succeeded at that, which of course have the side effect that instead of having all that development happen inside GNOME, we have bigger more active GNOME friendly projects doing these things outside GNOME.

We also made a conscious decision to focus on draining the swamp, which meant that instead of trying to work around issues and come up with funky configuration options on the user interface level to deal with missing features and bugs in the underlaying system, we instead have tried working with and contributing to fixing things in the underlaying levels. This of course moves attention away from ‘GNOME’, because people then commit their new fixes to those underlaying systems instead of implementing 100 000 lines of workaround code to ‘GNOME’, I mean I still consider Lennart Poettering a GNOME hacker even though his current work isn’t on anything in the GNOME git repository. But that does not mean that GNOME does not benefit greatly from these improvements.

So as we have succeeded in all these goals, GNOME should be a leaner setup than it used to be, as we don’t have to do all the heavy lifting inside the GNOME project anymore and that is a good thing.

As for projects such as Unity, well personally I don’t mind them at all. I mean I always saw XFCE as being a strenght and benefit to GNOME as it brought more users and developers to the shared library stack, and there is nothing different with Unity. And yes, there are some unfortunate duplications which seems redundant even in the context of differentiation, like the GNOME Online Accounts and Ubuntu Online accounts split, but hopefully we can work together to resolve such things over time.

And as for taking the desktop to the next level I think the main challenge for GNOME is not inside the GNOME 3 desktop, but instead it is a question of if the open source community can come together around pushing things like the Linux OpenGL support forward and make sure we have a strong foundation for supporting games and improving visual effects in the desktop. I for one really hope that Valve’s decision to support Linux with Steam, and the success of the Humble Bundle games on Linux, will help rally support behind the efforts to get Mesa to support newer iterations of OpenGL and get the open source Nvidia and AMD drivers in shape. Microsoft has long ago abanndoned PC gaming in favour of the Xbox, lets see if we can make Linux fill the gap.

In general I am very optimistic about the future, the strenght of the open source ecosystem is not that we have more developers to assign to a given project at a given time than Windows or Mac, but no matter what they do we keep moving forward on all fronts, so while Apple and Microsoft focus on beating each other in the tablet and phone space, maybe the time is ripe for us to strenghten our positions in the server and desktop markets? I mean tablets and phones might be all the rage atm, and maybe they are bigger markets than the traditional server and desktop market, but the server and desktop markets are still huge and ripe with opportunity if we play our cards right. And if we can deprive Microsoft of things like their Office cash cow, then that levels the playing field all the more when we later take them on again in other areas.