[gst-devel] Channel positioning - redux
Iain *
iaingnome at gmail.com
Tue May 16 04:42:45 CEST 2006
Hi
I've been trying out some stuff with setting channel-positions in caps
and I came across this fun bit of code in
gst-plugins-base/gst-libs/gst/audio/multichannel.c:
/*
* It also adds some hacks that 0.8.x needs for compatibility:
* - if channels == 1, are we really mono?
* - if channels == 2, are we really stereo?
*/
/* 0.8.x evilry */
if ((channels == 1 && pos[0] != GST_AUDIO_CHANNEL_POSITION_FRONT_MONO) ||
(channels == 2 && (pos[0] != GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT ||
pos[1] != GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT))) {
g_warning ("0.8.x: channels=1 implies mono; channels=2 implies stereo");
return FALSE;
}
-------
What I'm doing in my 0.10 port of the deinterleaver is setting the
channel-position on the single channel output stream based on its
position in the multi-channel input stream. So for a stereo stream the
first srcpad on the deinterleaver would be a mono stream with
channel-position set as FRONT_LEFT, the second pad would get
FRONT_RIGHT.
With the code above in place, it doesn't work. I'm guessing from the
error and comments still saying 0.8 that no-one else has tried to do
this.
Is it safe to remove this code, or is the 1 channel == mono, 2 channel
== stereo assumption still in place in 0.10.
If it is still in place, is there any way I can do what I'm wanting to do?
iain
More information about the gstreamer-devel
mailing list