Using GStreamer for channel upmixing
herzi, the short answer is “gst-launch-0.8 filesrc location=file.ogg ! oggdemux ! vorbisdec ! audioconvert ! audioscale ! audio/x-raw-int,channels=6 ! alsasink” if your soundcard supports 5.1 playback. It assumes that your ‘default’ device in alsa (/etc/asound.conf) is set to hw:0 or plughw:0, but not dmix! Dmix only handles 2 channels so it’ll fail gracefully (or maybe even not). If you want more media types, then simply use “gst-launch-0.8 filesrc location=$file ! decodebin ! audioconvert ! audioscale ! audio/x-raw-int,channels=6 ! alsasink”.

I’m planning to hook up the ‘audio channel configuration’ widget in Totem into the GStreamer backend too during one of the next few days. That should automate this behaviour for most people. Maybe Rhythmbox should get such a widget too (and maybe we should therefore move it somewhere to the preferences at some point?).

Surround Sound a la Dolby
Ehw, patents! So I won’t call it Dolby. But it really is. Well, almost. I implemented a channel mix-matrix in GStreamer today, which makes 5.1 DVDs play fine on a 2.0 soundcard (which, in my case, is connected to a 4.0 receiver/speakerset). Joy and fun! Thanks to those people that emailed me with hints and sample code for channel up- and downmixing.

GNOME-nl revisited
So I blogged about it once and the whole IRC channel (yes! we have one) was flooded by new visitors today. I guess people actually read Planet GNOME. :). OK, so I’ll try to take the hints from Rodrigo in my mind. We have an IRC channel on GIMPnet (irc://irc.gimp.net/#gnome-nl), we have a website (http://nl.gnome.org/) and a mailinglist (gnome-nl-list@gnome.org). For all those dutch GNOME users and developers that would like to do something for GNOME in your own country: please join us! We’ll be happy to welcome you aboard.

And it’s fair to mention that it wasn’t my idea. GNOME-nl basically evolved from the dutch GNOME translation project. Credit goes to them. GNOME-nl, however, is no longer only about translations - we’re trying (like GNOME-es) to be more like a community thing.

DVD & Surround sound
Pieces are falling in place. I’m able to watch DVDs here, and they have working surround sound. The bad part is that if you downsample to stereo (and that’s what I do, because my cheap-ass soundcard is connected to the receiver using a simple stereo cable), the thing currently drops unused channels. This means that my beautiful 5.1 DVD is downsamples to 2.0 by dropping the surround and bass, which is not_cool[tm], because you miss half of the audio. I guess I’ll need to write a channel mixer sometime soon. Does anyone have papers on how that should be done (e.g. 5.1 to 2.0; 2.0 to 5.1; 4.1 to 5.0; etc.)? How should I balance front/rear? How to balance stereo/center? How to balance bass into the other channels? Etc.

GNOME-nl
Given the success of GNOME-es, we decided we could do that as well, so we, dutch GNOME users and developers, have set up GNOME-nl. We’re intending to have a lot of fun together, and maybe some of us will even be present at a Novell conference in the Netherlands early december to demo the GNOME desktop.

Release (and what’s next)
Thomas released GStreamer Plugins 0.8.6 today. This makes me really happy because I’ve been bugged all over the place for like two weeks now by Sebastien, Arjan and several others on when we were finally going to do this long-awaited new release. Now’s the time! The same as always: if you have media files that don’t play back, please file bugs! We’ll gladly fix more media playback bugs. Currently known issues:

  • No WMV9 (hmm, where’s the source?). No QDM2. No MMS (Maciej is working on this).
  • Some old AVI files (from the very early divx3 era) created by Virtualdub (and clones) have A/V sync issues
  • ASF files cannot pause.
  • Ogg radio will sometimes hang for no apparent reason. This is a threading bug in GStreamer core that’s fixed in CVS.

    And now that all this is done, I can finally break CVS. Yay! Today, I fixed/added:

  • SVCD/VCD support (#158704)
  • Surround sound support (#151624)
  • APE v1/2 tag reading support
  • Properties page in Nautilus (Totem; #156689)

    Pending, will be committed in a few days (first two; need only some minor adjustments) or are being worked on and will be ready in a few weeks (last two):

  • Visualization support (Totem; won’t be on-the-fly yet, though; screenshot)
  • Buffering support (Totem & GStreamer; screenshot)
  • DVD support (Totem; no menus, though)
  • Rewritten Application Development Manual

    Now, on to stuff that I’d like to advocate. I’m working a lot on Totem, however, you can make a difference too. We’re looking for more people that would like to help adding new features to Totem or Totem’s GStreamer backend. Here’s a list of things that need doing:

  • Language selection support (for both subtitles and audio streams; Arjan said he might look at this)
  • Subtitle support
  • DVD support with menus (I know Martin Soto is working on this, but I still want to advocate it so more people help him; it’s apparently not as easy).
  • Support for new media types or input types (such as mms, which Maciej is working on, and RTP, which Ramon is working on; but there’s also many that nobody’s working on yet!).

    We have a full Plugin Writer’s Guide that can guide you in your first steps. We’ll gladly assist you as you move on from there. Come on IRC or mail one of the developers, we’ll gladly help you finding a long-lasting solution to one of the issues. In the end, all this is simply to create the best possible movie player for the GNOME (-2.10) desktop. You’re not seriously gonna tell me mplayer looks good, uh?

    Competition
    All happy with the release, I forgot about something that I really wanted to blog about. Apparently, Xiph thinks media frameworks are a cool idea so they are doing one themselves! Best of all, it’s Ogg-only. Can someone please explain how this is not completely stupid? Dudes, waste your time on something else and just use GStreamer, or for that matter something else (NMM, Xine, MAS, …). But do not redo it. It’s a waste of your time. You guys have done so many way cooler things (Ogg, Theora, Vorbis), don’t make us feel like you’re idiots after all.

  • And then you’re home and…
    … you find an Apple iPod Mini in your postbox. :). Thank you IBM. Took me an hour to figure out why Fedora would continuosuly fail to even read the thing in fdisk (with all sort of I/O errors in the kernel log), until I found a post on the Fedora mailinglists suggesting to turn off a kernel option (EFI partitions) that screws up things. Did that and it all works like a charm now. I apparently have a HFS+ iPod, I’m not sure if that’s good or bad. I do know that it plays music. No Ogg/Vorbis, unfortunately, there goes half my collection. Screw you, Apple. GtkPod could also use some UI love, but I guess I should use Rhythmbox for this instead. I’ll try that tomorrow, I was happy enough to see/hear anything at all. :).

    (S)VCD support in Totem
    Got a SVCD. Fixed SVCD support in both Totem and GStreamer, including querying, seeking, resyncing and so on. Send me more! :). I’m currently working on updating the application development manual of GStreamer, the current one stems from the 0.4 era or so. A first update should be available soon, when the FDO website is up again.

    Related, I’ll probably rewrite the ASF demuxing element. I recently noticed that the current one cannot even handle a simple sequence of PLAY-PAUSE-PLAY. Related, it does not resync on a broken stream, although ASF is perfectly suited for that. I’ll probably take a long weekend off to do this sometime soon.

    And two weeks later…
    … politicians suddenly wake up. Oh my, v. Gogh is dead! Max van der Stoel, minister of state in the Netherlands, has commented on the issue by saying that we need to build upon having better relations and contact with immigrants.

    When I left for the USA, I had to do all this myself. I had to find people to get in contact with, I had to make new friends, and for all that, I had to speak the language and interact with the inhabitants. It’s a natural process for newcomers to adapt, not the other way around - it just tells me there’s too many of them already and we’ve screwed up for too long already. Get real, dude, is this what you get paid for?

    HCC
    What? HCC! HCC is originally a weekend dedicated to computers, in the centre of Utrecht (Jaarbeurs Hallen). People from all around the country come to see new stuff from companies such as IIyama, Creative, Microsoft, etc. It was quite sad to see the amount of “foldersnollen” (those are 17-year-old girls dressed in slut-like clothes that are trying to make you read advertisements; if I wanted to see that I’d have been in Tivoli last friday), “gilmeesters” (those are stages with men screaming about everything and nothing, and a whole crowd behind the stage that screams back when he tells them to; he usually gives away free keycords, or he has foldersnollen at the corners of the stage to do this for him) and the amount of bad-quality (too loud) noise (especially in GameExpo) in this year’s edition.

    There was a small corner for Linux-based computing, organized by NedLinux (an online Linux-oriented forum), NLLGG (Dutch Linux user group) and KDE-NL. Unfortunately, no sign of life from GNOME-NL there, but at least something positive. Partly my own fault, I could (should) have helped organizing if I expected GNOME-NL to do something visible… Ohwell.

    5.1 audio
    … in GStreamer never worked, uh? :). This bug contained a non-functional patch for a while (memory issues, pretty bad, even valgrind didn’t find anything useful), until I decided to pick it up again and found the issue! MPEG-2/4 AAC audio, AC-3 and DTS multichannel audio now works, lots of other stuff is still TODO (some demuxers (matroska, maybe mpeg, avi, quicktime), some decoders (vorbis/mp3) and encoders (ffenc_ac3/faac), maybe muxers). Vorbis and MP3 apparently can contain 5.1 audio too, but the channel-mapping (so which channel index number represents which position in a room?) is unknown to me. OggDS seems to indicate it’s similar to that of AC-3, so maybe I’ll add that to at some point. Info is appreciated.

    [edit]
    Ah what the hell, I fixed vorbis too. :-).

    The Dutch Civil War, 2004
    I just can’t think of anything else. I feel the need to rant again, the need to cry, or whatnot. I know that elsewhere in the world, the Palestinian prime minister is dying, and I’ve even read about some Iraqi business that would normally shock me beyond imagination, including the finding of Falluja-city rooms where the beheadings all took place, but it just doesn’t get into the thinking part of my brain. It sits there for a while, disappears until I re-read the “other” news headlines. And I really just read them because I already read the other headlines, those that I was looking for, those about… The Hague.

    Apparently, this morning 3:00 AM, a dutch special force team from the police tried to enter a building in which terrorism suspects were hiding to arrest them. One explosion, several gun shots, three wounded policemen and a few hours later, the whole block is shut down from existence. TV shows me images of tens or hundreds marines, heavily armed, keeping a close eye on that building. All TV channels give new updates every few minutes and even radio is united in content. Scary thought. What the hell is going on here? It’s like living in a dream. Until the moment that one of them is shot (he’s alive) and both are captured, around 6:00-7:00 PM. Until this very moment, we know pretty much nothing except that these persons are terrorist suspects and that there’s believed to be explosives in the building.

    This is unreal, really.

    Impressions
    There’s apparently a bunch of terrorists in this country. They should die the most horrible death, no doubt about that. We should stab their eyes out, feed their flesh to the dogs while alive and throw the leftovers in the sea. There’s no place in this world for terrorists. So far for the easy part.

    A whole population, particularly marrocs, but basically all muslims in this country, are being looked at as if they’re the terrorist threat themselves. There’s fights all over, muslim schools burn, mosques are attacked and churches likewise, to get even. “We” and “they” fight, with words mostly, and agree on something: this is wrong. We’re both at issue here. The whole fact that everyone uses that same words “they” and “we” implies how bad we’re really doing. The cynical thing is that every dutchman will tell you that he definately knows that it’s not all muslims that are that bad, he’ll even tell you that he has one, and exactly one, in his group of closest friends.

    “They” will tell “us” that we’re stigmatizing and discriminating. And “we” will tell “them” that “they”‘re segregating and terrorizing. And we both damn well know it’s just a subgroup of the others that’s torturing society, so why are we making such a big deal out of it? The fact that we do, implies how bad the situation is. And the worst part of all is that we’re point at each other and therefore fail to identify those that cause it.

    Musepack
    Current CVS of GStreamer has support for the Musepack audio codec, which I wrote today. We don’t read APEv2 tags yet. [rant] Which reminds me that I really need to rant on those kiddos for a change, because why oh why do those ignorant morons always have to come up with something new to make life of media developers worse? You could have used ID3v2! But no, ID3v2 is evil and bad and you can do worse, so let’s recreate something that already exists but do it worse. Bah! [/rant]

    Chained Ogg
    For the past two weeks, I’ve worked a lot on getting chained Ogg (mostly used for streaming Ogg radio over internet) to work, and I was nearly there friday. Wim took over (there were some reference counting bugs exposed elsewhere by my changes), and this afternoon I received the happy news that he got it working. Soon in a CVS repository mirror near you! Many thanks to Wim for helping me fix all sort of weird core bugs that I exposed by my random messing around and for finishing it off.

    Totem & GNOME
    Bastien proposed Totem (using the GStreamer backend) for GNOME-2.10! I hope that it’ll be included, it’ll be a worthy and highly appreciated component of the GNOME desktop!