Making movies of your desktop

So we all know some cool tools. Dave wrote a VNC client for GStreamer a while ago. Right now, you can also do it simpler, without requiring a VNC server!

gst-launch-0.8 ximagesrc ! ffmpegcolorspace ! videoscale ! video/x-raw-rgb,width=320,height=240 ! ximagesink

And it’ll just work. Nice stuff, someone should write a “make-a-movie-of-your-desktop” app around this. Something like the command below makes a playable Theora movie of your desktop. Performance isn’t all that perfect yet, we may want to peek at what other X desktop grabbers do, they appear to be a whole bunch faster.

gst-launch-0.8 ximagesrc ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240,framerate=\(double\)2 ! theoraenc ! oggmux ! filesink location=/tmp/desktop.ogg

Sample movie available here, which is a sample of how to check in a fix to gst-ffmpeg (no, it’s not interesting, I know).

Posted in General | Comments Off on Making movies of your desktop

Politics and Parties

Dutch referendum
As expected, the Netherlands (or, rather, the people) rejected the proposed constitution for Europe. The interesting thing comes next: what caused this, and who will get dumped for it?

Why? Because nobody agrees. Thing is, every large organization and political party was in favour of this thing. Every one of them, left- to right-wing, conservative or progressive, government or opposition. This is a PR-disaster as you barely ever get to see. So, as always in politics, they all have their own fancy littly reasons on why it failed and how their political programme is going to solve everything, and here’s where the old fun just continues as ever:

  • The right-wing capitalist VVD, as spoken for by former leader Bolkestein, thinks people got too confused with the increased political power of the EU, and the EU should go back to being an economical cooperative union.
  • The left-wing socialist parties PvdA and Groen-Links all think it’s because Europe lost touch with its people, and we need new love to get back together.
  • Right-wing radical splinter party Groep Wilders, who was campaigning against the proposed constitution, claims this all shows everyone is sick of the current political parties and we need a new political system.
  • Our Harry Potter-like prime minister Balkenende at least got one thing right: we’re not against Europe. Seriously, I love it. I can go to Germany (GUADEC) without requiring a single bordercheck or currency exchange. I love you, Europe. Just not that way.

So all in all, it doesn’t really get us anywhere. But at least the proposed constitution is definitely off now.

GUADEC (in hindsight)
Looking back, GUADEC was awesome. First of all, the talks were mostly excellent and the demos were breathtaking. So you think Linux (GNOME, that is) on the desktop can’t keep up with Windows or Mac OS X? Wait until you see what we make for you right now. We all know Owen Taylor’s fancy Window-manager Luminocity, but imagine a slap-stick-like introduced dry brittish Xgl demo next. “Oh, wait, I can turn my desktop as a cube, too.”

“WHOA!”

Robert Love’s talk on performance was enlightening while still being understandable (thank you!), and Jeff Waugh totally surprised me with his Topaz peptalk. Glynn Foster’s as our GNOME muse was a worthy last talk for the event.

The evenings were mostly spent in the beautiful Schlosseplaze, which is basically Stuttgart’s town square with a nice set of resturants and bars around it. Monday night was spent enjoying Novell-paid beer (wooh!).

While there, I decided to work on a silly smallish bug in gnome-settings-daemon (keybindings) related to ALSA and how it handles mute. Also talked with Bastien Nocera on what to do next with Totem (it’s nice; but never perfect) and got some good ideas on where to go next, and tried to poke Colin Walters back into Rhythmbox (which may have succeeded), and many other discussions with many others, not without thanks to the monday-night party.

Finally, let’s not forget the fact that we had a huge attendance from NL compared to any other year (10-15 in total). Long live GNOME-NL!

Posted in General | Comments Off on Politics and Parties

GUADEC

I’m at GUADEC in Stuttgart, as are hundreds of other GNOME lovers. For those not here, there’s video streams available from Fluendo (I didn’t see those mentioned yet anywhere).

Posted in General | Comments Off on GUADEC

LUG-radio live
This must be one of the best ideas I’ve seen in the past few years (and thus deserves a mention). Nothing fancy, just beer. I’m imagining this huge lawn with ice cream bars (where sweet girls serve beer; don’t ask) and nice music, I must suffer from Woodstock-fever or so. Who of the Dutch Gnomeys wants to join me? If there’s enough, I’ll go!

Poor Uraeus; he gets a mention on slashdot, but they misspelled his name:

“The day long event includes speakers such as Ian Bell (co-creator of Elite), Simon Willison, Bill Thompson, Christan Schaller and more.”

Posted in General | Comments Off on

Using 32-bit binaries in 64-bit mode on x86-64
So, I get that question a lot lately: can I use PitfDLL in 64-bit mode on my AMD-64?

The simplest answer I can give is: I don’t know. I’m not at all into this 64-bit thing and don’t want to worry about it too much. I’m sure there’s interested 64-bit hackers that can correct me on all wrong assumptions I’m making below and who are willing to code it, too. But that said, it’s probably possible.

  • As far as I’m aware, an app runs either in 64-bit mode or in 32-bit mode. An app can never run partly in 64-bit mode or in 32-bit mode.
  • Therefore, the 32-bit wine-loaded binary DLL files would need to run in a separate binary, probably pipe-driven or so, and this binary would need to be called as a helper binary from the otherwise 64-bit GStreamer plugin/player. Shared mem may make speed acceptable already.

That said, I cannot code this, I don’t have 64-bit hardware.

Totem playing
I wrote a new volume widget for Totem, which takes less space than the current one and looks more like other similar volume widgets on the GNOME desktop (i.e. a button with a volume icon on it rather than a largish slider). Nothing new here, you’d say. Well, the nice detail is that you still have press-and-drag behaviour, i.e. you can click the volume button and the popped-up slider will directly have grip/focus. Other apps, such as Rhythmbox, may be interested in trying this as well.

Posted in General | Comments Off on

Southpark hype
Most hypes suck. This one is cool. This is me. And this is me interpreted by a friend of mine. Or something… :-).

GStreamer’s fun
So, Thomas and Benjamin touched upon some of the difficulties in getting GStreamer 0.9 rolling. This is a difficult topic, not in the least because on the one hand, I’m indefinitely thankful to Fluendo for paying me so I can work on GNOME all the time, but on the other hand, I have seen some issues in this process so far, too. It doesn’t make the topic any easier, though.

The truth is, we indeed face issues.

  • Wim did all the design way before our February meeting in Barcelona. Actually, most of the design was done by then. Most criticism on it was discarded as “you don’t have something better”. That is painful, and possibly unfair in hindsight, especially to people who had really good ideas back then.
  • Seriously, the two meetings were very different. The one two years ago was in a very relaxed atmosphere, and I don’t think we ever did more work in a single week than back then. The thing is, we had tens of things to work on and thus everybody got to do something useful and it was all put together in the end. The environment, location, wheather, everything was perfect. The meeting in February just wasn’t perfect. There was some measurable tension already, we were in an office (which just isn’t the same), and most of the week was discussion rather than coding. And discussion wasn’t “how do we get this perfect”, but a lot of defense for this plan vs. that. It’s just not the same.
  • We were very focussed on deciding on a design within only four days. With this environment and pressure, it just didn’t feel all right.

Right now, though, it appears that most of the design is very flaky and subject to change. That’s both crap (because we agreed on working stuff already, or at least supposedly) but also good (because now we get to improve it). I try to make the best of it, giving feedback on proposals and the like.

Some parts of the process annoy me, though. Some are because of earthwaves and cannot be blamed on anyone, and most aren’t even targetting specific persons or companies. However, they are very tough issues that I don’t like talking about, but they are feelings nevertheless, and have to be said:

  • For the past half-year, I’ve been the sole and only developer spending considerable time on GStreamer 0.8. I dare say that more than 50% of all work is mine, and possibly up to 2/3rd or even 3/4th of all commits are mine. That is seriously a lot. I feel really happy that applications such as Totem are working out so well, and am happy to be given this option. But I’d love for others to help me a bit more. It really feels lonely. I have little to no time to comment on 0.9 stuff, because 0.8 sometimes takes full days to keep up with. Some fixes are yet unreleased, and some features still unimplemented. Totem is getting there, but is not there yet.
  • Having said that, even though I spend considerable attention on getting Totem user-ready and am, as arrogant as that may sound, fairly succesful at that so far, my opinions on 0.9 design as far as I have time to comment on it are pretty much discarded. Annoyingly, not by the developers, but by non-developers. Wim takes considerable time to take notice of my comments and adapt design to it. I regularly get doubt-founded comments on design proposals of mine from others, however. Seriously, if I were stupid, GNOME 2.10 would be media-player-less. It’d be nice if we didn’t endlessly try to discuss, proove and FUDify and otherwise make development boring and even downright annoying. I don’t give shit about the 1% of finetuning if we’re currently 90% wrong and I can make it 90% right. I won’t even consider suggesting 10% improvements if I spend 90% of my time on explaining and defending them. I have a life, I prefer to spend it otherwise, and I will spend it otherwise. Screw the design. Scheduling indeed needs design, but that doesn’t mean everything does. Most stuff gets there by mere, mortal coding. Design is currently heavily overrated in the GStreamer camp. This makes stuff boring.
  • Also, I regularly get no comments at all. I mostly get told that the SMTP of Wim is broken then, but god… This seriously sucks. If Wim is the only one able to give any useful comments on my emails which do not only consist of questions and downright false statements, then we’re in some serious trouble.
  • GStreamer suffers from the same communication problems as GNOME itself does. Mailinglists are hopelessly failing, with discussions usually endlessly moaning about unimportant points, where the main issue is disregarded and ignored. IRC works, somewhat, but lacks archives and requires better timing coordinations, which is hard in a free software hacker community where not all of us live in the same timezone or work on this fulltime. Yarrr may fix it, but is unfinished, leaving us with a black hole right now. I’d rather fix this yesterday than today. Until then, we need to learn to stop moaning about details; they’re irrelevant. Until then, we need to learn to focus on the main point we’re discussing.

Christian and Thomas asked for more comments on and help with Wim’s work. I’d love to, and I would do so even more than I do now, if only it was fun. Keep it fun for me. Stop talking, just let me (us) do it.

That said, GStreamer is still a lot of fun, even if only because of the many thankful emails I get from users telling me (or Bastien) how happy they are with Totem and its continuously improving media support. Thank you, you make my day. As always, the next version will blow your eyes out with support for ALAC (via gst-ffmpeg), QDM2/WMV9 (via PitfDLL) and a lot more.

Discussionless work
GNOME-media is slowly but steadily advancing without endless discussions. Right now, we’re down to 60 bugs alltogether, or 20 if I omit gnome-cd (which I still plan to ditch at some point in the near future) and all enhancements (which aren’t bugs). Explicit thanks for this goes to Nirmal and Madhan, who did some excellent work on this while doing their internships, although many other contributors also deserve thanks. Like in the previous cycles, I’m positively confident that GNOME 2.12 will feature a more enjoyable user experience than 2.10, which was pretty good already.

Totem, too, is getting nicer and nicer. While GStreamer is slowly finishing complete DVD playback support (including language support (finished), DVD subtitles (half-finished, patches in bugzilla) and menus (in progress), Totem itself is getting more and more finetuning, too. This flower has some serious power.

Posted in General | Comments Off on

Dutch referendum for the European constitution
In response to the new hype on Planet GNOME-NL, I’ll also give my opinion on the proposed European constitution, for which several countries will be having (or already had) a referendum in the next few weeks.
The European union is now commonly referred to as Europe, which is a great thing for our common identity. After two world wars, this collection of individual countries is now able to work together at strengtening their own and each others’ economy, and thereby increasing common wealth of every single person in this continent. To add up to this, “we” (the shared identity of all European citizens) are all able to freely travel between countries without requiring additional papers or visa fees, or even requiring currency exchange (OK, so the introduction of the euro also lead to price increases, but I don’t think you can blame the euro for that an sich; rather, the situation was abused by industry). So far so good.
Recently, however, this liberal giant was degraded to a social development platform by allowing new countries to enter the union without meeting the previously set requirements, instead of helping those countries to develop without already giving them membership. Instead of them being a featureful addition to the union, they were accepted for the mere reason that it was good for themselves. Imagine this in the meritocratic world of free software development. Would Red Hat package Blackbox on the Hurd and sell that because it’s good for the GNU? Of course not. They sell GNOME on Linux because that’s good for them; the relevant communities benefit from the newly added development power, leading to mutual benefit and happiness for both.
We don’t need the European union for social benefits; the individual member countries are more than capable of doing this on their own. They’ve always done it like this and should always do it like this. The purpose of the European union is to add something up to that, so that all members benefit from it.
The constitution will generalize international relations by having a common minister of foreign affairs, a single leader of the commission (the president), all things that I don’t think the European union was originally set up for, and that I don’t think it’s fit for. Also, it will lead to continuation of the developments that lead to the acceptance of countries into the union that should, as far as I’m concerned, have had more time to fit well with the rest of the European union.
I am in favour of Europe, I’m in favour of liberal economies, I’m in favour of free travel, shared currency, shared identity and all that; but currently, I see little reason to vote in favour of the constitution.

Posted in General | Comments Off on

Pitfdll
Did a first release of Pitfdll. Let’s hope it gets into the famous package repositories soon.

Posted in General | Comments Off on

World changes faster
With a wink to my previous post, I can say that at the same location, you will now find a working DLL loader that works in threaded applications, and thus in Totem, too. This means, in effect, that we now support QDM2 and WMV9. Thanks to Mike Hearn for helping me fix the threading issues!

I also updated the ffmpeg snapshot, which means that current CVS of everything now supports ALAC (Apple lossless), too.

Posted in General | Comments Off on

Changing minds
Alone in the dark, I present you Pitfdll, which is a GStreamer plugin for Win32 DLL loading. I guess I changed mind – I don’t see a working free software WMV9/QDM2 decoder coming up anytime soon, no matter how close the ffmpeg people claim to be or how hard Fluendo is trying to release binary-only plugins. So we’ll have to come up with something else for the time being. The plugin reads WMV9, IV50 and QDM2. More can be added by adding two lines of code defining the DLL and the format it supports in GStreamer notation.

The rushers will notice that it doesn’t work in Totem, which is on purpose; Totem is heavily threaded, and threading breaks the DLL directly (see README). I’m unsure why, and would love to get some help from someone familiar with Wine or Xine (the DLL loading code is a direct cp -a from the Xine tree) code in this process (contact me on IRC in #gnome-hackers). Once that’s fixed, I’ll do a real release and add it to the repositories so people using Totem-GStreamer can finally enjoy those dreaded Apple.com trailers. :-).

Posted in General | Comments Off on