Fix AFL/PFL from MIDI tracks without audio (zero buffers)
authorRobin Gareus <robin@gareus.org>
Sun, 5 Mar 2017 20:18:18 +0000 (21:18 +0100)
committerRobin Gareus <robin@gareus.org>
Sun, 5 Mar 2017 20:18:18 +0000 (21:18 +0100)
libs/ardour/internal_send.cc

index 241506bdead180f7caa351746d9d5aca82a47d35..4f9306f38e22664eac9fd1d8b9d86369d1bcae28 100644 (file)
@@ -195,7 +195,8 @@ InternalSend::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame
                        */
 
                        uint32_t j = 0;
-                       for (uint32_t i = 0; i < mixbufs_audio; ++i) {
+                       uint32_t i = 0;
+                       for (i = 0; i < mixbufs_audio && j < bufs_audio; ++i) {
                                mixbufs.get_audio(i).read_from (bufs.get_audio(j), nframes);
                                ++j;
 
@@ -203,6 +204,10 @@ InternalSend::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame
                                        j = 0;
                                }
                        }
+                       /* in case or MIDI track with 0 audio channels */
+                       for (; i < mixbufs_audio; ++i) {
+                               mixbufs.get_audio(i).silence (nframes);
+                       }
 
                } else {
                        assert (mixbufs.available() >= bufs.count());