DiskReader should do nothing at all if there are no channels
[ardour.git] / libs / ardour / disk_reader.cc
index 4c2ff1e2c11c060da585c4acd541c2ad052bafe7..4c5667b9db93f5ea83a64c4ca3e83f4f2d7a706f 100644 (file)
@@ -251,12 +251,14 @@ DiskReader::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp
                }
        }
 
-       if (speed == 0.0) {
-               /* Nothing to do here.
-                *
-                * Do not clear input buffers here when (ms == MonitoringDisk)
-                * we need to allow out-of-band data to pass thru from the input.
-                * (e.g. MIDI immediate events)
+       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)
                 */
                return;
        }