Audio deinterleave plugin: support non-interleaved input sink?


I would need to convert one multi-channel non-interleaved stream, into several pads.

The deinterleave plugin does something similar,

  • from: one sink with interleaved multichannel audio
  • to: as many src_%u as input channels
  • ref: deinterleave

But while the output src_%u can be interleaved or non-interleaved, the sink can only be interleaved.

Is there a reason for that?
Or it would make sense to update the plugin to also support non-interleaved input?

Asking because it would be exactly my need, and something I could try to implement directly in the plugin, if the authors think it makes sense.

Alternatively, do you know another existing plugin that would do that ?


Hello Arthur,

Adding support for layout=non-interleaved input to the deinterleave element makes perfect sense, and might have performance advantages as well, since each channel / output buffer would be a subregion of the input buffer.

On the output side there’s no difference between layout=non-interleaved and layout=interleaved of course anyway, since it’s always one channel (signalling aside).

Feel free to propose a MR in gitlab to add this functionality.

The reason it doesn’t support non-interleaved input yet is likely just that the deinterleave element predates the addition of the non-interleaved layout, and no one has gotten around to adding support for it yet.

1 Like