13
0

Fix bounce-process: skip all processors before disk-reader

This commit is contained in:
Robin Gareus 2019-04-07 19:36:35 +02:00
parent 73816d3e38
commit 1ba391ab11
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -543,12 +543,21 @@ Route::bounce_process (BufferSet& buffers, samplepos_t start, samplecnt_t nframe
_trim->setup_gain_automation (start, start + nframes, nframes);
latency = 0;
bool seen_disk_io = false;
for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
if (!include_endpoint && (*i) == endpoint) {
break;
}
if (!for_export && !seen_disk_io) {
if (boost::dynamic_pointer_cast<DiskReader> (*i)) {
seen_disk_io = true;
buffers.set_count ((*i)->output_streams());
}
continue;
}
/* if we're *not* exporting, stop processing if we come across a routing processor. */
if (!for_export && boost::dynamic_pointer_cast<PortInsert>(*i)) {
break;
@ -593,10 +602,17 @@ Route::bounce_get_latency (boost::shared_ptr<Processor> endpoint,
return latency;
}
bool seen_disk_io = false;
for (ProcessorList::const_iterator i = _processors.begin(); i != _processors.end(); ++i) {
if (!include_endpoint && (*i) == endpoint) {
break;
}
if (!for_export && !seen_disk_io) {
if (boost::dynamic_pointer_cast<DiskReader> (*i)) {
seen_disk_io = true;
}
continue;
}
if (!for_export && boost::dynamic_pointer_cast<PortInsert>(*i)) {
break;
}