Plugins: Ignore offset for scratch/silent buffers
This allows to process buffers at an offset, as long as the number of processed samples is less or equal to the current buffersize.
This commit is contained in:
parent
2ca5f28910
commit
f858316503
@ -1417,7 +1417,7 @@ AUPlugin::render_callback(AudioUnitRenderActionFlags*,
|
||||
if (valid) {
|
||||
ioData->mBuffers[i].mData = input_buffers->get_audio (idx).data (cb_offsets[bus] + input_offset);
|
||||
} else {
|
||||
ioData->mBuffers[i].mData = silent_bufs.get_audio(0).data (cb_offsets[bus] + input_offset);
|
||||
ioData->mBuffers[i].mData = silent_bufs.get_audio(0).data (0);
|
||||
}
|
||||
}
|
||||
cb_offsets[bus] += inNumberSamples;
|
||||
@ -1536,7 +1536,7 @@ AUPlugin::connect_and_run (BufferSet& bufs,
|
||||
if (valid) {
|
||||
buffers->mBuffers[i].mData = bufs.get_audio (idx).data (offset);
|
||||
} else {
|
||||
buffers->mBuffers[i].mData = scratch_bufs.get_audio(0).data(offset);
|
||||
buffers->mBuffers[i].mData = scratch_bufs.get_audio(0).data(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -588,12 +588,12 @@ LadspaPlugin::connect_and_run (BufferSet& bufs,
|
||||
const uint32_t buf_index = in_map.get(DataType::AUDIO, audio_in_index++, &valid);
|
||||
connect_port(port_index,
|
||||
valid ? bufs.get_audio(buf_index).data(offset)
|
||||
: silent_bufs.get_audio(0).data(offset));
|
||||
: silent_bufs.get_audio(0).data(0));
|
||||
} else if (LADSPA_IS_PORT_OUTPUT(port_descriptor(port_index))) {
|
||||
const uint32_t buf_index = out_map.get(DataType::AUDIO, audio_out_index++, &valid);
|
||||
connect_port(port_index,
|
||||
valid ? bufs.get_audio(buf_index).data(offset)
|
||||
: scratch_bufs.get_audio(0).data(offset));
|
||||
: scratch_bufs.get_audio(0).data(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -813,7 +813,7 @@ LuaProc::connect_and_run (BufferSet& bufs,
|
||||
if (valid) {
|
||||
in_map[ap + 1] = bufs.get_audio (buf_index).data (offset);
|
||||
} else {
|
||||
in_map[ap + 1] = silent_bufs.get_audio (0).data (offset);
|
||||
in_map[ap + 1] = silent_bufs.get_audio (0).data (0);
|
||||
}
|
||||
}
|
||||
for (uint32_t ap = 0; ap < audio_out; ++ap) {
|
||||
@ -822,7 +822,7 @@ LuaProc::connect_and_run (BufferSet& bufs,
|
||||
if (valid) {
|
||||
out_map[ap + 1] = bufs.get_audio (buf_index).data (offset);
|
||||
} else {
|
||||
out_map[ap + 1] = scratch_bufs.get_audio (0).data (offset);
|
||||
out_map[ap + 1] = scratch_bufs.get_audio (0).data (0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2845,12 +2845,12 @@ LV2Plugin::connect_and_run(BufferSet& bufs,
|
||||
index = in_map.get(DataType::AUDIO, audio_in_index++, &valid);
|
||||
buf = (valid)
|
||||
? bufs.get_audio(index).data(offset)
|
||||
: silent_bufs.get_audio(0).data(offset);
|
||||
: silent_bufs.get_audio(0).data(0);
|
||||
} else {
|
||||
index = out_map.get(DataType::AUDIO, audio_out_index++, &valid);
|
||||
buf = (valid)
|
||||
? bufs.get_audio(index).data(offset)
|
||||
: scratch_bufs.get_audio(0).data(offset);
|
||||
: scratch_bufs.get_audio(0).data(0);
|
||||
}
|
||||
} else if (flags & PORT_SEQUENCE) {
|
||||
/* FIXME: The checks here for bufs.count().n_midi() > index shouldn't
|
||||
|
@ -790,7 +790,7 @@ VST3Plugin::connect_and_run (BufferSet& bufs,
|
||||
index = in_map.get (DataType::AUDIO, in_index++, &valid);
|
||||
ins[i] = (valid)
|
||||
? bufs.get_audio (index).data (offset)
|
||||
: silent_bufs.get_audio (0).data (offset);
|
||||
: silent_bufs.get_audio (0).data (0);
|
||||
_connected_inputs[i] = valid;
|
||||
}
|
||||
|
||||
@ -801,7 +801,7 @@ VST3Plugin::connect_and_run (BufferSet& bufs,
|
||||
index = out_map.get (DataType::AUDIO, out_index++, &valid);
|
||||
outs[i] = (valid)
|
||||
? bufs.get_audio (index).data (offset)
|
||||
: scratch_bufs.get_audio (0).data (offset);
|
||||
: scratch_bufs.get_audio (0).data (0);
|
||||
_connected_outputs[i] = valid;
|
||||
}
|
||||
|
||||
|
@ -724,7 +724,7 @@ VSTPlugin::connect_and_run (BufferSet& bufs,
|
||||
index = in_map.get(DataType::AUDIO, in_index++, &valid);
|
||||
ins[i] = (valid)
|
||||
? bufs.get_audio(index).data(offset)
|
||||
: silent_bufs.get_audio(0).data(offset);
|
||||
: silent_bufs.get_audio(0).data(0);
|
||||
}
|
||||
|
||||
uint32_t out_index = 0;
|
||||
@ -734,7 +734,7 @@ VSTPlugin::connect_and_run (BufferSet& bufs,
|
||||
index = out_map.get(DataType::AUDIO, out_index++, &valid);
|
||||
outs[i] = (valid)
|
||||
? bufs.get_audio(index).data(offset)
|
||||
: scratch_bufs.get_audio(0).data(offset);
|
||||
: scratch_bufs.get_audio(0).data(0);
|
||||
}
|
||||
|
||||
if (bufs.count().n_midi() > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user