So Jono has been harassing me and Edward for documentation for the GStreamer python bindings. Well it seems Gian Mario Tagliaretti came to our rescue. He just set up the pygstdocs site with his documentation for the GStreamer python bindings. Thanks to Gian for his hard work.
Seems Jokosher (formerly known as Jono Edit) is really picking up steam. As mentioned in an earlier blog it is an effort to create something like Cubase for Linux using GStreamer and PyGTK+. Mike, Jason and Jono are kicking ass and taking names currently. Nice screenshots here and here.
MPEG2 Transport Streams, Annodex and more
So Wim has completed his work on the Fluendo MPEG2 demuxer adding support for MPEG2 Transport Stream. So if you have been looking for a way to play transport stream files with GStreamer be sure to grab latest svn.
Mike merged the Annodex patches for GStreamer made by Alessandro Decina. This means that the cool Annodex technology that Conrad Parker demoed as last years GUADEC is finally in GStreamer. A little more work is needed on playbin before it works in Totem etc., but the first major step has been taken.
Luca Ognibene fixed one of my last great annoyances in GStreamer 0.10, a bug which caused Totem to screw up with many MPEG2 files when using mpeg2dec for decoding. Tim has also been working more on the GPL DVD support porting the dvdnav and dvdsubdec plugins. Nice to see so many things come together.
Solaris and vmware
Been strugling quite a bit with Solaris 10 and vmware server. The basics work really well, in the sense that Solaris installs without a hitch. The problem is that I can’t seem to get network support working from within Solaris. I am using the bridged networking, but I simply can’t get it to actually work. Reading howto’s it seems networking is supposed to ‘just work’, but it hasn’t so far for me. Another thing to dig into as time allow :)
Bought myself a USB DVD burner on Saturday. Trying to get it working on Sunday I learned that we are not 100% there yet in terms of DVD burning and handling. There where multiple things that did anything but just work. The first issue was that HAL and gnome-device-manager was rather flakey when it comes to handling the device. For instance if I booted my laptop with it connected nautilus etc., seemed unaware of its existence. Also if I plugged it in while having a blank DVD already in then my system also failed to deal with it. Only if I waited until the desktop was running, plugged the USB dvd writer in with an empty slot, then put in a empty DVD, only then did a ‘DVD+R blank disc’ icon appear on my desktop.
Trying to burn a myself DVD Nautilus complained that I needed to put in a supported media for example DVD+R disc. Problem was that a DVD+R disc was exactly what I had in the burner. Turned out that was a bogus error message and the real issue was lacking diskspace to store the temporary ISO image.
At this point I tried switching to GNOME Baker instead to create my DVD’s. At this point I also realized that handling two burners on the system was not something that worked two well. During my period of testing (which included a couple fo reboots) only my internal cdwriter was the only one recognized, only the USB dvd writer being recognized or in a few rare cases both where. That said even in the best of cases there seemed to be some permission issues when trying to burn as a normal user onto the usb dvd burner. In the end I tried running GNOME Baker as root, which did sorta work until I got error messages which I think where from cdrecord. At this point I decided to try out K3B hoping that since its been around a little longer it might have some workarounds or something for my issues. K3B seemed unable to handle the two drives also, but removing my internal writer physically eventually solved that problem. K3B did actually have a workaround or rather it didn’t use cdrecord, dvdrecord but growisofs to create DVD+R’s and some googling seemed to indicate that growisofs is the only linux library capable of doing so.
So to sum up there is still some work needed in the detection area and probably some library side work as well. At least ideally I guess we would want one intergrated set of libraries handling all kinds of cd and dvd burning. I will try to follow up on my problems by filing more bug reports, just need to figure out against what to file them, where to file them and how to find the information needed to file them first :)
As a sidenote I also tried Nero Linux. Since my burner supports ‘lightscribe‘ I figured the Linux version of Nero might have that as it was Nero for Windows that came bundled with the USB writer.
Discovered it didn’t and I also discovered that FC5 no longer is able to provide GTK1 based applications with any fonts it seems. Anyway know if there is any work being done on Linux ‘lightscribe’ support?
I have no idea which one is the best of aiglx and Xgl. But I am happy that the primary goal of both these groups is to make my desktop look better. Having both groups release demo videos of GNOME in action using their technologies will be a great marketing for GNOME.
This week has been crazy. The amount contract work combined with a sprinkle of phone conferences and general correspondence felt neverending, mixed in with various phone conferences and I felt quite stressed out at times. Missed having Julien around to run things by, but I could hardly fault him for not being here as his son Leon was born. A big congratulations to both Julien and Noelle with this latest addition to their family.
Hopefully next week I will have more time again to help push out more plugins into the beta program and get our Solaris plugins underway.
There was some complaints not long ago on Planet GNOME about projects using Werror as default for their compile and the value/cost of it. I am currently using latest Fedora Development which comes with an updated GCC version. This is causing the GStreamer build to fail from CVS (and we haven’t gotten around to fixing all the issues yet), but it has actually also shown why having it is a good idea. Cause atm GStreamer is the only multimedia project I am able to compile at all (by turning off werror) using GCC 4.1. Xine, mplayer and VLC are all failing to build for me. So by fixing all these things for previous versions of GCC and other compilers made GStreamer compileable with this latest incarnation. My point is that unless werror is turned on by default nobody is going to bother fixing those warnings, which means that the code is less likely to be compileable as is with other compilers or future versions of your current compiler. Also since the GStreamer community has done this for a long while now, incrementally fixing outr build with new versions of GCC etc., the job of removing the warnings isn’t overwhelming. I think that for some GNOME modules (and most software in general) the job of making them warning free has at this point become so big that nobody can manage to build up the energy to even try.
We are planning on supporting Solaris with our plugins. Thanks to Sun we now have a SPARC box in our office to build and test our plugins on for the SPARC platform. Also to have a Solaris Intel build available I looked into the recently announced free vmware server product. Struggled a little to get it going on my Fedora development system as the config problem had some problems finding/using the kernel headers, but a patch called vmware-any-any-update97 sorted me out. One thing I have to say about vmware is that is it a very nice product. When using it you get the feeling of using something very polished and the GUI feels (and is) something actually made for running on your linux system, not an afterthough or sidejob of a GUI meant for a windows system.
GStreamer and GTK on embedded systems
I mentioned earlier some of the things that happened at 3GSM in
regards to GStreamer and GTK+. By combining that information with our current engagements at Fluendo and the dealings we have had at Fluendo in wake of 3GSM I think we are now in a situation where almost every major chipmaker in the embedded sector plans to or is already offering a SDK for their boards and chips using GStreamer for the multimedia handling and GTK+ for the GUI. And what is maybe even more interesting is that these efforts have come about due to the customers of these companies asking not only for a ‘linux SDK’, but for an SDK including GStreamer and GTK+. I don’t know the exact reasons for why our mindshare suddenly have exploded, but apart from the endorsement of GNOME and GTK+ from the major distributions I think we owe a lot of this to Nokia and the Maemo environment. Currently I know of hardware products under development using GStreamer and GTK+ such as TV’s, PVR’s, Media Center solutions, set-top boxes, portable music players, web tablets and mobile phones. It will be a year or two before these products starts hitting the market, but the current development is nothing short of amazing. The chipmakers seems believe that for embedded market will be focus on two major stacks going forward, WinCE and the Linux/GStreamer/GTK+ combo. Pretty cool stuff in my book :)
Seems the effort Jono kicked off to create a Cubase replacement for Linux using GTK, GStreamer and Python has managed to get of to a flying start. Check out Jono’s blog for some details. Nice screenshot too.
In the cool apps department, it would be cool to have a GStreamer version of Zapping.
The effort to create a more beautiful effort is moving us quickly into a situation where the future desktop depends on hardware acceleration provided from the graphics card. The problem is that while 2D drivers are available as free software for the most part, the major graphics cards makers keep their 3D drivers closed. If you wanted good 3D acceleration under Linux the non-free NVidia and ATI drivers has been the way to go for a long time now.
So adding a ‘hard’ dependency on 3d hardware acceleration will implicitly mean we are basing our free desktop on non-free drivers feels like a step backwards. On the other side I don’t feel not going down the route of making our solution more visually appealing and hopefully also more usable is a viable option either, so I am not suggesting that these efforts gets rejected or stopped.
Hopefully the increased use of 3D will also lead to increased interest among free software developers to actually make free 3D drivers (and thus finding enough resources to overcome the difficulty of reverse engineering current cards) or that the increased use of 3d will increase the pressure from distribution makers and consumers to get ATI and NVidia to open their drivers. Anyway I hope I am wrong to be a bit worried about how this ends up and instead this leads to a big increase in contributions to things like MesaGL
Back at the office today after spending the last 3 days at the 3GSM tradeshow. We helped one of our customers, SportAlert.com do a sucessful launch of their product, streaming sport events to mobile devices.
Also learned the hard way during the conference that I spend to much time sitting down in my job. The last half of every day at the conference was spent in pain with aching feet, neck and back.
A lot of interesting things on show at the conference. Was very happy for instance to see Nokia having 2 persons on the main booth dedicated to demonstrating the Nokia 770 and that these two persons always seemed to have a good crowd around them.
Was also nice to see the Lipsforum .org announcements about using GTK+ and GStreamer for mobile devices.
Also walking from booth to booth asking about people’s products it seem everyone doing some kind of software either had a linux port already or one was planned to start soon. Not that many years ago the answer would have been ‘linux? what is that?’
Next year maybe we do our own booth with Fluendo, but then again just walking around as we did this year also yielded very good results and a lot of interesting information.
So we have two new employees at the office now, both formally starting on Monday. Zaheer Merali is one of them, a well known long time contributor to GStreamer and also known as the creator of Istanbul. Also joining us is Matthieu Garcia (b0nk on IRC) who is an old friend of Edward (bilboed) and who will be doing codec optimisation work for us. A big welcome to both.
Media Center Solution
I also promised some more information about our media center solution in my previous blog entry. I have a couple of screenshots available for our early prototype which you can see here and here.
One of the core building blocks of the media center solution apart from GStreamer will be the Togra framework created by Jan (thaytan). We have also hired two people who will soon start at our Lyon office. I will announce their names in my next update on the media center solution, which we have baptized ‘Elisa’.
Got a lot of little issues fixed today. Wim fixed the RTSP element taking us one step closer to RTSP stream protocol support in the players. Edward ported the ffmpeg demuxer plugin, adding support for tons of new formats. Tim checked in his cdxa plugin port and the dvdread plugin port, giving VCD support and making a big step forward towards DVD support in Totem for 0.10. And Thomas fixed many small issues to polish of our mobile phone streaming for Flumotion.
I ended up doing some thumbnailing testing with Totem after a claim it was broken. Worked nicely for me. Only format which didn’t thumbnail at all was Real, but hopefully that is a small bug to sort out. Nice to see even the Flash files getting thumbnailed :)
Things are also starting to fall in place for our media center solution. Will blog more about that after the weekend, with some screenshots of our current proof-of-concept.
Tim has been working on a patch to
enable Surround Sound in GStreamer 0.10. Due to limited hardware available we really need people in the community to help out with testing it so we can make sure its 100% before merging it into an official release. So if you have surround sound hardware (not spdif) with your computer please grab that patch and gst-plugins-base CVS and compile and report back your findings to that bug report linked above.
So Edward got Pitivi, the worlds coolest non-linear editor project moved over to GNOME CVS and added to the GNOME
bugzilla. Which means you can now check out pitivi using your favourite GNOME CVS account. Also to make sure I went down in the history books I made sure to file the first Pitivi bug report ever. Also getting a bit envious of all those people with developer this or that behind their name I spiced up my own description a bit.