use buffer APIs instead of raw memcpy, fix plugin bypass
This commit is contained in:
parent
f4060c6b38
commit
9875d43414
@ -346,9 +346,8 @@ PluginInsert::connect_and_run (BufferSet& bufs, pframes_t nframes, framecnt_t of
|
|||||||
/* XXX: audio only */
|
/* XXX: audio only */
|
||||||
uint32_t first_idx = in_map.get (DataType::AUDIO, 0, &valid);
|
uint32_t first_idx = in_map.get (DataType::AUDIO, 0, &valid);
|
||||||
if (valid) {
|
if (valid) {
|
||||||
Sample const * mono = bufs.get_audio (first_idx).data (offset);
|
|
||||||
for (uint32_t i = in_streams.n_audio(); i < natural_input_streams().n_audio(); ++i) {
|
for (uint32_t i = in_streams.n_audio(); i < natural_input_streams().n_audio(); ++i) {
|
||||||
memcpy (bufs.get_audio (in_map.get (DataType::AUDIO, i, &valid)).data (offset), mono, sizeof (Sample) * nframes);
|
bufs.get_audio(in_map.get (DataType::AUDIO, i, &valid)).read_from(bufs.get_audio(first_idx), nframes, offset, offset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -490,8 +489,9 @@ PluginInsert::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end
|
|||||||
|
|
||||||
/* not active, but something has make up for any channel count increase */
|
/* not active, but something has make up for any channel count increase */
|
||||||
|
|
||||||
for (uint32_t n = out - in; n < out; ++n) {
|
// TODO: option round-robin (n % in) or silence additional buffers ??
|
||||||
memcpy (bufs.get_audio (n).data(), bufs.get_audio(in - 1).data(), sizeof (Sample) * nframes);
|
for (uint32_t n = in; n < out; ++n) {
|
||||||
|
bufs.get_audio(n).read_from(bufs.get_audio(in - 1), nframes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user