All posts by uraeus

Dirac and MPEG TS

Ok, so I finally managed to push the long promised release of Dirac of the door thanks to the hard work for David Schleef. Not only that I was able to release our new MPEG Transport Stream muxer today including a written specification for how that is done, in order to allow other projects to implement it in a compatible way.

The new version of the decoder includes a heavily updated encoder and decoder compared to our previous code drop. This release encodes files that are very close to the latest Dirac specification in terms of conformance. The decoder should also be able to handle the files generated by the Dirac library from BBC.

You find the released files for both projects on the Schrodinger SourceForge project page.

The documentation for mapping Dirac into both Ogg and MPEG TS have now been added to the new Schrodinger documentation page.

And last but not least a GStreamer plugin using the new MPEG TS muxing library can be downloaded from the Fluendo file repository, the same repository holding our MPEG demuxer plugin which able to deal with the produced MPEG transport file which holds Dirac. Direct download from here

Questions, feedback patches etc. should go to the schrodinger-devel mailing list.

UDS Mountainview

So Wim, Tim and myself are back from attending the Ubuntu Developers Summit in Mountainview, California. It was a great conference and it was good to see how the Ubuntu community works up close. While I did attend an earlier UDS in Mataro outside Barcelona for a few days this one was a very different experience as multimedia was at the top of the agenda.

The specification for easy codec installation will hopefully help move things forward in userfriendliness quite a bit. Tim wrote the GStreamer
part of with input and help from Wim during the conference. The whole spec is not really tied to Ubuntu so our hope is that the various distro’s will hook their own systems into it just like Ubuntu plans to. My thinking at this point is that we will also hook our commerical plugin offerings from Fluendo into this setup.

Another specification which got a lot of discussion was the audio jumble one where
basically PulseAudio was basically chosen as the way forward. The plans in this area coincides well with the plans of other distro’s as well for example the work and plans of Monty for Red Hat/Fedora. A topic that came up a bit both in the meetings and also in private conversations aftwards was about the relation between pulse audio and GStreamer and the ‘border’ between the two. In regards to the first the answer is pretty straight forward, GStreamer is no sound server and thanks to Lennart we have a good Pulse Audio GStreamer output plugin. When it comes to the ‘border’ I think the broad lines are drawn already, but the finer details will have to be measured out over time. My general answer when asked about it was that I thought Lennart wanted PulseAudio to do more than what we in the GStreamer camp would have it do, but since he was the one doing the coding on Pulseaudio and not us, it wasn’t our place to critisize his choices.

There where also some nice coding done during the conference. Wim implemented full RTP support for both Vorbis and Theora in GStreamer during the conference, meaning that we took a big step forward in being able to provide a free RTP based streaming solution. The next step in the process is to merge in the RTP branch into Flumotion head and get that working with the new RTP modules.

Wim also did a lot of work on Ogg trick modes during the conference and was able to play a vorbis file backwards before we left. Still some more work needed before this works perfectly and also for Theora, but having it supported in a free codec feels good as it has only been implemented in our commercial windows media codecs so far.

As Jono mentioned in his blog there was also quite a lot of buzz around Jokosher at UDS. The effort that has been put into helping out the Jokosher team with resolving bugs in GStreamer and Gnonlin I think is reaping great rewards through the great steps forward that Jokosher is taking. The work on Gnonlin will also yield great returns for Pitivi as most of the issues fixed would have popped up in Pitivi too. The plans for network instruments that where discussed in conjuction with the work done on telepathy was another highlight and something I think could be a real killer feature for both Jokosher and Telepathy.

There where of course many other important topics that was discussed and planned for during the summit. For my own part I found the great work done on improving Bluetooth support to be quite exiting. This was also an example of how Nokia’s increased involvement due to the Maemo and 770 projects continues to be a positive addition to the community and also shows how Nokia strives to be great community memembers be reaching out to the wider Linux/GNOME bluetooth community, like Marcel Holtmann who was present at the conference. The work that Marcel Holtmann is doing in this field is nothing short of amazing and will be a big step up from the current meager offerings of the gnome-bluetooth manager.

The conference also provided a opportunity to hang out with David Schleef again. We managed to squeeze in an evening in San Fransisco, seeing David’s abode, going out for some Japanese food and drinking some local brews and a nice bar called the Toronado. We have a new release of Schroedinger ready so I just need to update the webpage and send out a release announcement. Will get the MPEG Transport Stream muxer out at the same time.

Returned to Barcelona on Saturday, didn’t get much done for the remainder of the weekend apart from sleeping and catching up on the two episodes for Battlestar Galactica that I missed while away :)

Microsoft and Novell

Like most my initial reaction to the Microsoft/Novell deal was to wonder what it actually meant, and if could cause increased risk to the rest of the community. After reading various comments I have instead started to wonder if this deal is worth the paper isn’t written on in terms of the patent deals. Novell and Microsoft have tried to work around the GPL by signing a covenant not to sue over software patents instead of ‘licensing’ the patents in question. But if Microsoft use this deal indirectly as an excuse to sue Red Hat or Canonical I think Novell might find itself in hot water with GPL copyright holders, who probably will start taking them to court for violating section 7 of the GPL. So maybe Novell’s customer got peace of mind from MS patent lawsuits, but on the other hand I don’t think they feel the risk having their rights under the GPL nullified will be any less stress causing.

On ther other hand I would think Microsoft sees this risk and knows that taking down both Red Hat and Novell in one swoop would land them in deep water with anti-trust authorities again, so in essence this deal might mean nada.

On the other hand Novell might have handed Microsoft the best FUD tool since the SCO case. Time will tell.

Ubuntu Developers Summit
So Wim Taymans, Tim-Philipp Müller and myself will be attending the Ubuntu Developers Summit next with in Mountain View,California. We will be there to discuss issues and opportunities for improving
multimedia support in Ubuntu and friends. We will try to attend as many of the multimedia related tracks as possible.

Elisa

Grabbed the subversion branch of Elisa yesterday in order to try to help out with cleaning up the licensing before release. The new default theme is looking really sweet and the ability of the new backend ‘pigment’ to run on any backend we want to will be a great advancement. Anyway before we release I need to go over both Elisa and Pigment and verify that all the files have a copyright header and that it is the correct ones :)

Cedega by NVidia
Discovered today that Nvidia are offering a download of Cedega
through the demo downloads site NZone. Hope its a sign that linux is becoming a gaming platform that commercial vendors have started to notice.

A Scanner Darkly
Saw the movie ‘A Scanner Darkly yesterday at the cinema. Well the animation effect was fun for the first 15 minutes, after that the fact that the movie was just extremely boring started to kick in. Considered leaving the cinema at mutiple times before it was done playing.

Elisa and Dirac news

Thought I share some of the latest newsbits on Elisa our media center solution. Philippe and Loic are hard at work with the reworking of Elisa internals, which hopefully will be mostly done by the end of next week. Once that is done we have a much stronger fundation for going forward and can go back into ‘feature add’ mode. Two features which we hope to get added in the coming month(s) is full uPnP support and DVB support.

There already is limited client uPnP support in current Elisa, but thanks to the work Frank Scholz is doing on creating a python uPnP framework called Coherence (sorry no URL yet) it should be much easier for us to take the upnp support to the next step to make Elisa a full server and control point for upnp/viiv services. One nice thing that this will enable is integration with Media Streamer which is a upnp enabled player/controller for the Nokia 770. My hope is that you would eventually be able to use your 770 as a media center control pad for your home with Elisa as the heart.

In regards to DVB most of the GStreamer related work is done now and in GStreamer CVS. What we know need is some way to scan whats available through DVB and then hook everything up with a GUI in Elisa.
I hope to be able to throw out my DVB decoder box at home and replace it by a system with a DVB card and running Elisa before new years.

Another cool Elisa newsitem is the Flickr plugin that Michael Sheldon did. As Elisa matures I hope we have a huge number of such plugins available enabling people to easily pick and choose the plugins they want to create the media center system of their dreams.

Dirac stuff

David Schleef is doing some great work currently on Schroedinger. With latest CVS of Schroedinger and liboil I am able to transcode files to Dirac in Ogg using this pipeline:

gst-launch-0.10 filesrc location=320-256kbits-NVIDIA-MadModMike.wmv ! fluasfdemux ! fluwmvdec ! ffmpegcolorspace ! schroenc ! oggmux ! filesink location=dirac-in-ogg.ogg

And play it back again with gst-launch and playbin. Still eating a lot of CPU which David is trying to figure out how we can reduce even if the arithmetic decoding seems like a though nut to optimize. Getting some strange error in Totem, but we will hopefully be able to resolve that soon.

I am also able to create MPEG Transport Stream files with Dirac inside using our Transport Stream muxer that we developed with BBC R&D. We are working on some critical deadlines currently making time a lacking resource, but hopefully things will cool down a bit next week and we can take the time to move it into the public SVN and make a proper release for the public.

GStreamer and Phonon

Starting 1st of November Fluendo will be dedicating a resource to implementing a full featured GStreamer backend for Phonon, the multimedia API for KDE4.
The goal is to make the best backend for Phonon possible in order to demonstrate the qualities of GStreamer to the KDE community and hopefully lessen the chance of fragmentation in the free software multimedia space. This work is done in cooperation with a major industry player who shares our goal of providing the Linux and Unix communities with a unified multimedia API. I let them let announce their name themselves due to contractual reasons, but I do expect to see them talking publically about this at some point as it is quite direct follow-on to already announced efforts they are doing to bring more unity the free desktop under the auspices of the Portland project and the LSB.

As some of you know I have personally voiced reservations on Phonon in the past, and while I still think some of my concerns are valid, I hope that this effort can be a starting point for a more productive exchange of ideas. If we manage to make the GStreamer backend as good as we hope to then it would be a big step forward in resolving the worries some KDE developers have voiced about the readiness of GStreamer and maybe even encourage the development of a full set of Qt-style binding to GStreamer to suplement to the high level objects of Phonon.

I also hope is that this work will be a big step towards making users life much easier, as it will allow distributions to ship GStreamer plugins that enable proprietary codecs, and know that no matter if the user uses a GNOME/GTK or KDE/QT application the user will get access to these formats (at least as soon the licensing of applications are sorted out ;).

Time to give Solaris another try?

We have decided to try to support as many of our plugins as possible on the Solaris platform in addition to GNU/Linux. Due to this I installed Solaris Express under vmware on my machine this week. I have to say that Sun is making great strides forward with Solaris as a developers workstation. Coming at this from someone who has been using Red Hat/Fedora for a long while, this Nevada build was the first Solaris install I could actually see myself using for more than Solaris specific testing. And I mentioned this before, GNOME seems snappier when running under Solaris for some reason, even when running it inside wmvare.

DVD and Windows Media

On my last blog entry I got a couple of questions about the status of DVD and Windows Media in GStreamer.

In gst-ffmpeg CVS it now supports WMV9, so as soon as the next release is out then WMV9 support will be available through that. Also as I have mentioned here Fluendo will launch our proprietary Windows Media plugins very soon now, maybe as early as next week.

In regards to DVD support, well with the new decodebin, which we hope to integrate within the next week or two, getting DVD support working should be much easier. That said someone would still need to do the work. At Fluendo we are due to contractual obligations not able to directly participate in the development of the open source DVD plugins, so we need external contributors to do this work. Anyone interested in helping out should talk to __tim on #gstreamer on irc.freenode.com for the details of what needs doing.

Dirac

Thought I should do another Dirac update. The Schroedinger project is progressing nicely with the code currently being in bugfix and optimize mode. I hope to push out a release as soon as we have a couple of troublesome bugs fixed. We have sucessfully muxed Dirac into both Ogg and MPEG Transport Stream at this point and I am sure mappings for more formats will come.

Ours is not the only Dirac effort though, there is of course the reference/development version by the BBC and there is also a project to make a hardware implementation of Dirac by Peter Bleackley.

We are rapidly moving towards being able to start pushing Dirac with full force. The good thing at this point is that we have a lot more tools to start pushing Dirac with from day one. Like when we started pushing Theora there was a problem that people found they had few or no tools available to make Theora files, which caused even the strongest supporters of open formats to stumble. At this point hooking Dirac into tools such as Flumotion, Pitivi, Thoggen, Totem and many more is either a quick job or something that happens automatically, all thanks to having managed to build GStreamer and the eco-system around it.

DVB – I mentioned in an earlier blog Zaheer has been working hard on getting our DVB support up to scratch. Things are starting to come together know with a DVB signal being converted to Ogg on the fly and streamed using Flumotion. Some work remains before we can integrate DVB into applications like Elisa (and maybe even Totem?) but things are moving forward.

RTP – On the RTSP/RTP side progress is also being made. There is for instance a set of RTP paylaoders and depayloaders in CVS now for Vorbis. The plan is to also get a set for Theora in there.

Software and Copyright

Had an interesting conversation today with Wim about copyright and software. We are currently working on integrating some RTSP patches into GStreamer and it turns out these patches contain some code originating in Xine which means we need to get a relicense on the code to the LGPL or replace the GPL parts.

Part of the problem is that people in the free software community tend to be rather sloppy with copyright statements when copying code around. So when people take code from a GPL project to put into another GPL project they often don’t copy all the needed copyright headers over as well, and also a lot of people when making significant changes don’t add their names to the copyright header of the file.

On top of that there are issues like the hard to grasp definition of what exactly constitutes a copyrightable contribution and the general problems with programming languages not being very expressive by nature, meaning that there isn’t that many (non stupid) ways of doing something.

Neither of us being a lawyer probably doesn’t help either :)

Anyway all of this makes it a quite extensive task to a) identify all (potential) copyright holders on a specific piece of code. b) track all these people down. c) get their permission to relicense d) if anyone says no, identify exactly what is their contribution and figure how that can be removed. Figuring out what to do when things are not easy to rewrite in any intelligent way, as a rewrite would basically look like the original and so on.

In terms of rewrites being identical to the original copyright law addresses this with rules saying that only the expressive elements of code is copyrightable, but its not easy for a layman to have a clear feeling on what that translates into in terms of a specific piece of code. In many cases you can never really know, even with a good lawyer to help you, before a judge gives final verdict on it. And having a judge give final verdict is what you probably want to avoid in the first place as that process costs a lot of time and money.

What is certain is that it do seem clear to me that copyright law was not made with gigantic collaborative efforts, which open source software is an example of, in mind. (ok, I am not expecting any awards for spotting the obvious :)