Michael Sheldon's Stuff

Michael Sheldon (mike at mikeasoft dot com)

May 21, 2006

GStreamer Channel Splitting Element
Mike @ 12:45 pm

As part of the Jokosher hackfest, which is happening as I write, I’ve finally sat down and mostly sorted out the channel splitting element. We need this element for handling multiple simultanious inputs from a single sound card due to them coming in as a single multi-channel stream and us needing lots of single channel streams. An example of its usage would be roughly along these lines:

                  |-- chansplit channel=0 -- etc -- filesink location=0.flac
                  |-- chansplit channel=1 -- etc -- filesink location=1.flac
alsasrc -- tee -- |
                  |-- chansplit channel=2 -- etc -- filesink location=2.flac
                  |-- chansplit channel=3 -- etc -- filesink location=3.flac

It’s not quite perfect yet, it should really output a stream with a single channel instead of just moving the selected channel to position 0 and silencing the others, but it’s usable. I’ve created a package for Ubuntu Dapper (should work on Debian unstable as well): gstreamer0.10-chansplit_0.10.1-0_i386.deb and the source is available from the Jokosher subversion repositories.

In related news, ensonic has just fixed a bug in GStreamer which was preventing playing a project multiple times in Jokosher, which is great :).


  1. […] At the moment, the Jokosher hackfest is going on. If you’re interested in getting involved with Jokosher, get yourself along to #jokosher on irc.freenode.org and chip in. Elleo’s already fixed channel splitting, and ensonic has patched GStreamer to fix a bug with the “adder” element, so it’s all looking pretty good. Jono is working on simultaneous recording and playback, mrben is working on having the pipelines start somewhere other than right at the beginning, bilboed is being helpful about gnonlin, among other things, and I’ve been hacking on the website a bit to provide decent bugtracking, as well as importing all the old bugs and wiki data to the new Jokosher Subversion site. […]

    Pingback by as days pass by » Jokosher hackfest — May 21, 2006 @ 2:09 pm

  2. The correct way to do channel splitting is wth the deinterleave plugin. It has not been officially ported to 0.10 although there is a working port at http://cvs.gnome.org/viewcvs/marlin/marlin/marlin-channel-splitter.c?rev=1.5&view=markup

    It has not been tested in any other application than marlin, and is probably not 100% finished yet, but it works for marlin’s usage.

    Comment by Iain — May 26, 2006 @ 10:27 am

  3. Thanks Iain, that looks somewhat more complete than my little attempt; I’ll be heading home in a day or two and so will be able to actually make a start with handling multiple simultanious inputs (I only have a cheap integrated sound system with me at the moment).

    Comment by Mike — May 27, 2006 @ 12:52 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress