squash the dreaded noise-on-stop of guirja01
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 26 Jan 2007 17:22:43 +0000 (17:22 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 26 Jan 2007 17:22:43 +0000 (17:22 +0000)
git-svn-id: svn://localhost/ardour2/trunk@1393 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/io.cc

index 5e99a14fada173e40b81e8d0c1d8da6304be3d03..944258337925165ff9e1db157ca5c16e0e8463c6 100644 (file)
@@ -570,10 +570,17 @@ IO::collect_input (vector<Sample *>& bufs, uint32_t nbufs, nframes_t nframes, nf
 
        /* fill any excess outputs with the last input */
        
-       while (n < nbufs && last) {
-               // the dest buffer's offset has already been applied
-               memcpy (bufs[n], last, sizeof (Sample) * nframes);
-               ++n;
+       if (last) {
+               while (n < nbufs) {
+                       // the dest buffer's offset has already been applied
+                       memcpy (bufs[n], last, sizeof (Sample) * nframes);
+                       ++n;
+               }
+       } else {
+               while (n < nbufs) {
+                       memset (bufs[n], 0, sizeof (Sample) * nframes);
+                       ++n;
+               }
        }
 }