GNOME Bugzilla – Bug 533617
[audioconvert] Produces silence when converting 1/2 channel audio with non-standard channel position
Last modified: 2008-05-20 12:15:31 UTC
Hi, the following pipeline currently produces plain silence: gst-launch-0.10 -v audiotestsrc num-buffers=1000 ! audioconvert ! "audio/x-raw-float,channels=2" ! deinterleave name=d d.src0 ! queue ! audioconvert ! wavenc ! filesink location=channel1.wav d.src1 ! queue ! audioconvert ! wavenc ! filesink location=channel2.wav The caps used on the audioconverts are: /pipeline0/audioconvert2.src: caps = audio/x-raw-int, rate=(int)44100, channels=(int)1, endianness=(int)1234, width=(int)32, depth=(int)32, signed=(boolean)true /pipeline0/audioconvert2.sink: caps = audio/x-raw-float, rate=(int)44100, channels=(int)1, endianness=(int)1234, width=(int)64, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT > /pipeline0/wavenc1.sink: caps = audio/x-raw-int, rate=(int)44100, channels=(int)1, endianness=(int)1234, width=(int)32, depth=(int)32, signed=(boolean)true So it drops the channel position and seems to do something wrong while converting.
So we don't support 1 and 2 channel layouts at all. audioconvert always assumes default channel layout for them and so do most elements I guess. Should be fixed ;)
2008-05-20 Sebastian Dröge <slomo@circular-chaos.org> * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate_channels): Passthrough the channel positions if the number of output channels is the same as the number of input channels, the input had a channel layout and downstream requests no special one. We did this already for > 2 channels but now it's also done for 1 channel. Fixes bug #533617.