I am trying to use gst-launch to:
* get N-channel audio from ALSA source
* deinterleave it
* choose one deinterleaved channel (the others are dropped)
* tee the chosen channel into M new channels
* apply some effects to each of the M channels
* interleave all M channels
* send interleaved audio to ALSA sink
One problem I am facing is channel assignments when interleaving. I want
each sink of the interleave to become a separate channel in the resulting
interleaved audio stream.
I have tried to assign channel positions using a channel-mask. I tried
assigning different bitmasks (e.g. 0x01, 0x02, 0x04, 0x08, 0x10 for 5
channel audio) just before sinking to the interleave, and also I use a
capssetter to set the interleave to e.g. bitmask=1F. But all channels seems
to mix down to stereo.
The audio data has no relation to the normal channel positions like
RIGHT_REAR, LEFT, CENTER and so on.
I want each sink of the interleave to become a separate channel in the
resulting interleaved audio stream. How can I do that?
If this absolutely cannot be done using gst-launch, can you point me to a
CLEAR example of how to do this in C++.