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) {
|
if (valid) {
|
||||||
ioData->mBuffers[i].mData = input_buffers->get_audio (idx).data (cb_offsets[bus] + input_offset);
|
ioData->mBuffers[i].mData = input_buffers->get_audio (idx).data (cb_offsets[bus] + input_offset);
|
||||||
} else {
|
} 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;
|
cb_offsets[bus] += inNumberSamples;
|
||||||
|
@ -1536,7 +1536,7 @@ AUPlugin::connect_and_run (BufferSet& bufs,
|
||||||
if (valid) {
|
if (valid) {
|
||||||
buffers->mBuffers[i].mData = bufs.get_audio (idx).data (offset);
|
buffers->mBuffers[i].mData = bufs.get_audio (idx).data (offset);
|
||||||
} else {
|
} 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);
|
const uint32_t buf_index = in_map.get(DataType::AUDIO, audio_in_index++, &valid);
|
||||||
connect_port(port_index,
|
connect_port(port_index,
|
||||||
valid ? bufs.get_audio(buf_index).data(offset)
|
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))) {
|
} else if (LADSPA_IS_PORT_OUTPUT(port_descriptor(port_index))) {
|
||||||
const uint32_t buf_index = out_map.get(DataType::AUDIO, audio_out_index++, &valid);
|
const uint32_t buf_index = out_map.get(DataType::AUDIO, audio_out_index++, &valid);
|
||||||
connect_port(port_index,
|
connect_port(port_index,
|
||||||
valid ? bufs.get_audio(buf_index).data(offset)
|
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) {
|
if (valid) {
|
||||||
in_map[ap + 1] = bufs.get_audio (buf_index).data (offset);
|
in_map[ap + 1] = bufs.get_audio (buf_index).data (offset);
|
||||||
} else {
|
} 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) {
|
for (uint32_t ap = 0; ap < audio_out; ++ap) {
|
||||||
|
@ -822,7 +822,7 @@ LuaProc::connect_and_run (BufferSet& bufs,
|
||||||
if (valid) {
|
if (valid) {
|
||||||
out_map[ap + 1] = bufs.get_audio (buf_index).data (offset);
|
out_map[ap + 1] = bufs.get_audio (buf_index).data (offset);
|
||||||
} else {
|
} 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);
|
index = in_map.get(DataType::AUDIO, audio_in_index++, &valid);
|
||||||
buf = (valid)
|
buf = (valid)
|
||||||
? bufs.get_audio(index).data(offset)
|
? bufs.get_audio(index).data(offset)
|
||||||
: silent_bufs.get_audio(0).data(offset);
|
: silent_bufs.get_audio(0).data(0);
|
||||||
} else {
|
} else {
|
||||||
index = out_map.get(DataType::AUDIO, audio_out_index++, &valid);
|
index = out_map.get(DataType::AUDIO, audio_out_index++, &valid);
|
||||||
buf = (valid)
|
buf = (valid)
|
||||||
? bufs.get_audio(index).data(offset)
|
? 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) {
|
} else if (flags & PORT_SEQUENCE) {
|
||||||
/* FIXME: The checks here for bufs.count().n_midi() > index shouldn't
|
/* 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);
|
index = in_map.get (DataType::AUDIO, in_index++, &valid);
|
||||||
ins[i] = (valid)
|
ins[i] = (valid)
|
||||||
? bufs.get_audio (index).data (offset)
|
? bufs.get_audio (index).data (offset)
|
||||||
: silent_bufs.get_audio (0).data (offset);
|
: silent_bufs.get_audio (0).data (0);
|
||||||
_connected_inputs[i] = valid;
|
_connected_inputs[i] = valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -801,7 +801,7 @@ VST3Plugin::connect_and_run (BufferSet& bufs,
|
||||||
index = out_map.get (DataType::AUDIO, out_index++, &valid);
|
index = out_map.get (DataType::AUDIO, out_index++, &valid);
|
||||||
outs[i] = (valid)
|
outs[i] = (valid)
|
||||||
? bufs.get_audio (index).data (offset)
|
? bufs.get_audio (index).data (offset)
|
||||||
: scratch_bufs.get_audio (0).data (offset);
|
: scratch_bufs.get_audio (0).data (0);
|
||||||
_connected_outputs[i] = valid;
|
_connected_outputs[i] = valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -724,7 +724,7 @@ VSTPlugin::connect_and_run (BufferSet& bufs,
|
||||||
index = in_map.get(DataType::AUDIO, in_index++, &valid);
|
index = in_map.get(DataType::AUDIO, in_index++, &valid);
|
||||||
ins[i] = (valid)
|
ins[i] = (valid)
|
||||||
? bufs.get_audio(index).data(offset)
|
? 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;
|
uint32_t out_index = 0;
|
||||||
|
@ -734,7 +734,7 @@ VSTPlugin::connect_and_run (BufferSet& bufs,
|
||||||
index = out_map.get(DataType::AUDIO, out_index++, &valid);
|
index = out_map.get(DataType::AUDIO, out_index++, &valid);
|
||||||
outs[i] = (valid)
|
outs[i] = (valid)
|
||||||
? bufs.get_audio(index).data(offset)
|
? 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) {
|
if (bufs.count().n_midi() > 0) {
|
||||||
|
|
Loading…
Reference in New Issue