ignore send buffers for which there's no return
authorRobin Gareus <robin@gareus.org>
Sun, 16 Oct 2016 22:32:35 +0000 (00:32 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 16 Oct 2016 22:33:02 +0000 (00:33 +0200)
This fixes an issue with Audio+Midi sends feeding into an audio only return.

libs/ardour/delivery.cc

index 35c4f9ad80b32bc4118cc0895192beeb600857c6..569def966930c568fb0e09cdd036c47dc04363af 100644 (file)
@@ -337,8 +337,10 @@ Delivery::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, do
                for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
 
                        uint32_t n = 0;
-
                        for (BufferSet::iterator b = bufs.begin (*t); b != bufs.end (*t); ++b) {
+                               if (outs.count ().get (*t) <= n) {
+                                       continue;
+                               }
                                b->read_from (outs.get (*t, n++), nframes, (*t == DataType::AUDIO ? 0 : -Port::port_offset()));
                        }
                }