GNOME Bugzilla – Bug 536696
audioconvert fails with interleave
Last modified: 2008-06-05 06:11:33 UTC
Please describe the problem: A launch line that should give 6 channel audio fails. The problem seems to be between interleave and audioconvert. Steps to reproduce: The following launch line: gst-launch-0.10 interleave name=i ! audioconvert ! alsasink \ audiotestsrc volume=0.5 freq=200 ! audioconvert ! queue ! i. \ audiotestsrc volume=0.1 freq=300 ! audioconvert ! queue ! i. \ audiotestsrc volume=0.1 freq=500 ! audioconvert ! queue ! i. \ audiotestsrc volume=0.1 freq=700 ! audioconvert ! queue ! i. \ audiotestsrc volume=0.1 freq=900 ! audioconvert ! queue ! i. \ audiotestsrc volume=0.4 freq=1100 ! audioconvert ! queue ! i. Actual results: The pipeline dies with the following error messages: ** (gst-launch-0.10:16347): CRITICAL **: audio_convert_prepare_context: assertion `in->unpositioned_layout == out->unpositioned_layout' failed ERROR: from element /pipeline0/audiotestsrc2: Internal data flow error. Additional debug info: gstbasesrc.c(2240): gst_base_src_loop (): /pipeline0/audiotestsrc2: streaming task paused, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ... Expected results: This should create a 6 channel sound. Does this happen every time? Yes. Other information: This launchline used to work, the bug must have happened with a recent revision to the CVS (probably the last revision).
That's no bug. interleave will use a NONE channel layout by default unless it can build a valid channel layout from the input (i.e. every mono input contains a different valid channel position) or unless you provide a valid channel layout by the channel-positions property. audioconvert can handle NONE channel layouts but can't convert those to a different layout or to more or less channels. Take a look at the interleave unit test in gst-plugins-bad/tests/check/elements/interleave.c to see how to provide a channel layout.