OK, I discovered that NULLing out the channel map in the pa_stream_new() call seems to fix the problem, so therefore the problem must be with bad generation of the channel-positions in interleave source or bad handling of (valid) channel-positions in pulsesink.
I haven't yet worked out how to give custom channel-positions arrays on the gst-launch command line. Should be an array of integers, and in this case probably {1, 2}, but I haven't found the syntax to express those arrays in yet.
OK, I discovered that NULLing out the channel map in the pa_stream_new() call seems to fix the problem, so therefore the problem must be with bad generation of the channel-positions in interleave source or bad handling of (valid) channel-positions in pulsesink.
I haven't yet worked out how to give custom channel-positions arrays on the gst-launch command line. Should be an array of integers, and in this case probably {1, 2}, but I haven't found the syntax to express those arrays in yet.