1
0
Fork 0

Also safeguard against zero channel counts in CLAP

This commit is contained in:
Robbert van der Helm 2022-04-27 17:06:19 +02:00
parent 21e28fdca2
commit 6185909ddf

View file

@ -1606,8 +1606,14 @@ impl<P: ClapPlugin> Wrapper<P> {
let num_output_channels = audio_outputs.channel_count as usize; let num_output_channels = audio_outputs.channel_count as usize;
nih_debug_assert_eq!(num_output_channels, output_slices.len()); nih_debug_assert_eq!(num_output_channels, output_slices.len());
for (output_channel_idx, output_channel_slice) in // NOTE: This `.take()` should not be necessary, but we'll do it as a safe
output_slices.iter_mut().enumerate() // guard. Apparently Ableton Live implements parameter flushes wrong
// for VST3 plugins, so if they ever add CLAP support they'll probably
// do it wrong here as well.
for (output_channel_idx, output_channel_slice) in output_slices
.iter_mut()
.take(num_output_channels)
.enumerate()
{ {
// If `P::SAMPLE_ACCURATE_AUTOMATION` is set, then we may be iterating over // If `P::SAMPLE_ACCURATE_AUTOMATION` is set, then we may be iterating over
// the buffer in smaller sections. // the buffer in smaller sections.