Don't raise an error when trying to auto-connect master to physical outputs if the...
[ardour.git] / libs / ardour / route.cc
index e9c09e33bb8ed18c54b6496ec82d1385921b6207..1cb7b84bc972012df1ab89348e86cf3007083176 100644 (file)
@@ -420,7 +420,12 @@ Route::process_output_buffers (BufferSet& bufs,
 
        if (rm.locked()) {
                for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
-                       bufs.set_count (ChanCount::max(bufs.count(), (*i)->input_streams()));
+                       if (bufs.count() != (*i)->input_streams()) {
+                               cerr << _name << " bufs = " << bufs.count()
+                                    << " input for " << (*i)->name() << " = " << (*i)->input_streams()
+                                    << endl;
+                       }
+                       assert (bufs.count() == (*i)->input_streams());
                        (*i)->run (bufs, start_frame, end_frame, nframes);
                        bufs.set_count (ChanCount::max(bufs.count(), (*i)->output_streams()));
                }
@@ -474,13 +479,16 @@ Route::passthru (sframes_t start_frame, sframes_t end_frame, nframes_t nframes,
                }
        }
 
+       write_out_of_band_data (bufs, start_frame, end_frame, nframes);
        process_output_buffers (bufs, start_frame, end_frame, nframes, true, declick);
 }
 
 void
 Route::passthru_silence (sframes_t start_frame, sframes_t end_frame, nframes_t nframes, int declick)
 {
-       process_output_buffers (_session.get_silent_buffers (n_process_buffers()), start_frame, end_frame, nframes, true, declick);
+       BufferSet& bufs (_session.get_silent_buffers (n_process_buffers()));
+       write_out_of_band_data (bufs, start_frame, end_frame, nframes);
+       process_output_buffers (bufs, start_frame, end_frame, nframes, true, declick);
 }
 
 void
@@ -1341,7 +1349,6 @@ Route::configure_processors_unlocked (ProcessorStreams* err)
 
        // Ensure route outputs match last processor's outputs
        if (out != _output->n_ports ()) {
-               cerr << "For " << _name << " out/last mismatch - out = " << out << " vs. " << _output->n_ports() << endl;
                _output->ensure_io (out, false, this);
        }