Mugshot, Jobs, SoC, Polypaudio and more

Mugshot

So there s3cr3t project that Havoc, Colin, Owen and others at Red Hat has been working on for the last months was revealed. Mugshot is now out and available. I don’t really get it. I have read the mugshot blog where there are some attempts at explaining what its about, but it fails to explain why I would find it interesting. And I mean that in a non-negative way, I really miss some explanation linking their technical description of how it works/what it is supposed to be with some examples of why I would find it cool to use. Along the lines of ‘You see this, and you use this feature of mugshot and then you are able to do that thing you never have been able to do before’. Currently my feeling is that linkswarm is supposed to be a continous live version of the ‘slashdot effect’ and Music Radar to be manual version of the last.fm group hitlists. Both these descriptions are probably wildly wrong, but they do examplify how incomprehensible the project is to me currently.

Nokia on a hiring spree

Actually impressed by the number of new jobs offered in Carlos latest blog entry. Nokia is really beefing up their development capabilities on the Linux side. I think we will see a lot of great stuff coming out of Nokia and going into GNOME, GStreamer and other related efforts going forward. Their participation in the GStreamer community is much more direct and active now than it was before the initial release, which is a very good thing. So if you are looking for a job doing cool stuff with Linux you should check out the list in Carlos blog.

Summer of Code

One great ideas done for this years GNOME summer of code was setting up a Planet for SoC Students. A lot of students already signed up and more to come. Thanks to Jeff and co for setting up that planet. And if you are a student working on something GNOME/GTK related for any organisation (doesn’t have to be ‘GNOME’, be sure to start blogging about your progress and get your blog listed.

Polypaudio

Lennart Poettering released a new version of Polypaudio recently and also updated the GStreamer plugin to GStreamer 0.10. Personally I been feeling lukewarm about soundservers for a long time, but Polypaudio seems to get a lot of people to at least re-visit the sound server debate. Jan Schmidt whose opinion I respect a lot was very excited about polypaudio and even started trying to work with Lennart on getting the updated plugin into gst-plugins-good. Maybe Polypaudio
is the sound server that convince the world that sound servers aren’t such a bad idea after all. (And I hope no one asks ‘but what about JACK?’. JACK is great, but suggesting it for desktop usage makes about as much sense in my mind as suggesting someone should by a formula 1 car as a vehicle to take their family on vacation.)

The battle against bugzilla

The war to keep the GStreamer bugcount down continues without stop. It is paying off in the sense that I think people notice that we respond very quickly to bugs, which motivates people to report more. Luckily a lot of them with patches. But it also gives us a challenge in keeping up with bugzilla. This morning the statistics showed a total of 167 non-enhancement bugs, with +40 being submitted the last 7 days (and -29 closed the last 7 days). This means that over bug open/close traffic is between GTK+ and Evolution in volume, projects with over a 1000 unresolved bug reports compared to our 150+. It of course means we have to keep our eyes on the ball non-stop or our bugcount will start increasing quickly. Luckily we have a good community now with people offering patches (making resolving the bugs much easier), and also people helping us triange and reproduce bug reports. More is always welcome of course, just someone looking through our bug reports trying to reproduce issues reported and then commenting on the bugs is a great help. Especially if you are able to produce more details than the original report. For instance today I found a bug report saying that playing the WMA streams from Rush Limbaugh’s website caused Totem to stutter. After some testing (I downloaded the mms stream into a file using ‘gst-launch mmssrc location=”mms:uri-to.file.wma ! filesink location=rush.wma’) I found that we played the WMA file fine. So the problem is not the WMA/ASF elements, but most likely somewhere in Totem/playbin’s network buffering. Information like that saves time for the developers, enabling them to spend more time on fixing the bugs, and less time on investigating what the actual problem is. So even if you are not a programmer, helping your favourite project with their bugzilla is a good way to help developers and make your favourite project evolve even faster.

GUADEC video

We got some DVD’s with a presentation video of Vilanova de Geltru which I thought it would be nice to transcode to Ogg and share with everyone.

While waiting for Thoggen to get ported to 0.10 I had to make do with gst-launch. The pipeline below is what I managed to put together with the help of Zaheer.

gst-launch-0.10 dvdreadsrc title=”5″ ! decodebin name=”dvd” dvd. ! ffmpegcolorspace ! video/x-raw-yuv,format=\(fourcc\)YUY2 ! videoscale method=1 ! video/x-raw-yuv,format=\(fourcc\)YUY2,width=360,height=288,pixel-aspect-ratio=\(fraction\)16/15 ! videorate ! video/x-raw-yuv,framerate=25/2 ! ffmpegcolorspace ! theoraenc ! queue ! oggmux name=mux ! gnomevfssink location=file:///home/cschalle/vilanova_present.ogg dvd. ! audioconvert ! vorbisenc ! queue ! mux.

What this pipeline basically does is take the mpeg2/ac3 on the DVD, scale it down to 360×288 size, drop the framerate to half of the original and output the result as an Ogg Theora/Vorbis file.

Presentation video of Vilanova i la Geltru, home of GUADEC 2007

Anyway, you can now get a impression of the city of Vilanova i la Geltru by looking at
this presentation video of Vilanova
available in Ogg format and licensed under the Creative Commons Attribution-ShareAlike license. You can also watch the video online using the Cortado java-applet through this link.

Dirac
Also been testing the Schrodinger Dirac implementation recently. Thanks to Ralph Giles there is a official Dirac in Ogg specification now and I am able to create Ogg Dirac files using the GStreamer plugins provided by the Schrodinger project. We still have some way to go before this is truly useful, but it is nice to be able to actually encode something and view it in Totem.

svideo and linux continued

So in my previous blog entry I mentioned my intial work to get my xvideo output working with Linux. I did notice thought that there was one remaining issue, which was the problem that there was a black border around the computer screen image on the TV. I ended up spending more time on resolving that than I did on getting the thing working in the first place. Anyway Jan aka thaytan told me (after I had already spent quite some hours on the problem) that there is a option called TVOverScan in my xorg.conf file which can be used to get the image to scale up to get rid of black borders like I had. The problem was that whatever I set the TVOverScan too, my nvidia board seemed to ignore it. Adjusting it using nvidia-settings however worked fine. Seems that the TVOverScan in xorg.conf gets ignored, so what I did instead was set up my system to run ‘/usr/bin/nvidia-settings –load-config-only’ on login to solve it. A bit hackish, but it will have to do for now.

Also rediscovered my old issue of nautilus-cd-burner not being able to deal with both my internal cdwriter and my usb dvd burner at the same time. Ended up having to remove the internal drive and rebooting to ge t it to deal with my usb driver properly.

Enabling SVIDEO from my Dell 8600 laptop

On my Inspiron 8600 Laptop I have a SVIDEO output on the back which I thought would be nice to use for playing back videos etc., on my tv. Although my TV also has SVGA input support, the cable for that is way to short to work nicely for me. Anyway after a lot of googling and testing back and forth I managed to put together this xorg.conf file which does what I want, giving me a separate X screen on the svideo port. Tried playing some movies onto it yesterday and it worked very nicely. In addition to duplicating everything for two screens the magic was in the BusID option and the tvstandard, tvoutformat and connectedmonitor options.

Getting this going though was a very manual process with editing the xorg.conf file, reading the NVIDIA driver README and googling to find answers to some specific questions. (None of the Linux on Dell Inspiron sites seemed to have actually tried testing/using the SVIDEO output port).

I assume part of making this nice that X could do with some HAL/dbus magic in order to be able to handle this in a more automated fashion.
Not sure in the end if xorg or GNOME will be able to offer something to setup these things in a nice GUI’ed way or if we are depending on the hardware vendors to do this due to it being relativly hardware vendor specific? NVidia already have a little GTK+ based setup tool bundled which maybe they could extend (currently it only seems to allow you to adjust stuff not add anything). Anyone know if there are any efforts by anyone in this area currently?

Reminds me of my USB soundcard issues from some time ago. While there is rudimentary support in the drivers, we still have so way to go before its ready for joe average user. And when we do get to the point of trying to make it joe average friendly we will probably find, like they discovered with Network Manager, that the drivers needs a lot of fixes before being ready to work properly in such a scenario. At least for the sound card scenario we should have infrastructure for it in the next release of GNOME thanks to Jürg Billeter‘s work. Hopefully the USB soundcard drivers makers follows suit and improves their linux support.

Java and GNOME

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!

Going to GUADEC? Want to go cheap?

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 :)

It’s A Long Way To Tipperary

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?

werror

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.

vmware server

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 :)

Dependence on non-free drivers

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

Icon removal issue

It seems that some icons got removed from the gnome-icon-theme recently which has caused both problems and some debate. To me there are two issues here. The first is that I think we should start seeing our collection of icons as part of our ABI stability promise. Removing and changing icons names at regular intervals have been the norm for some time now, and as someone who has worked on maintaining themes its been a pain. Application developers and users also have a right to be upset if icons they IMHO rightly could expect to be there suddenly are gone and their applications breaks due to it.

The issue of wether we should have those icons displayed in Nautilus is another separate issue. I don’t have any strong feelings on it, but I think it would have been a better approach to at least add an option of getting those textual descriptions back through a gconf key enabling emblems. So that the people who wanted to keep textual descriptions could do so by enabling one gconf key and emblems would appear where before ‘hardcoded’ images where used. That solution would also allow for a more i18n friendly setup.