optimization for track with zero audio channels should not short-circuit MIDI disk reading

This commit is contained in:
Paul Davis
2017-10-26 15:15:05 -04:00
parent ea0807d4aa
commit 33af0b0d3d

View File

@@ -251,11 +251,6 @@ DiskReader::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp
}
}
if (c->empty()) {
/* do nothing */
return;
}
if ((speed == 0.0) && (ms == MonitoringDisk)) {
/* no channels, or stopped. Don't accidentally pass any data
* from disk into our outputs (e.g. via interpolation)
@@ -263,6 +258,14 @@ DiskReader::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp
return;
}
BufferSet& scratch_bufs (_session.get_scratch_buffers (bufs.count()));
const bool still_locating = _session.global_locate_pending();
if (c->empty()) {
/* do nothing with audio */
goto midi;
}
if (speed != 1.0f && speed != -1.0f) {
interpolation.set_speed (speed);
disk_samples_to_consume = interpolation.distance (nframes);
@@ -273,8 +276,6 @@ DiskReader::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp
disk_samples_to_consume = nframes;
}
BufferSet& scratch_bufs (_session.get_scratch_buffers (bufs.count()));
const bool still_locating = _session.global_locate_pending();
if (!result_required || ((ms & MonitoringDisk) == 0) || still_locating || _no_disk_output) {