fixes for desirable playback when using seamless looping.
[ardour.git] / libs / ardour / export_channel.cc
index c67f33bb918e5dc3b4a0f69b1328a7d2a123c6d3..93621717381ca19c2c4ea4a7d95761aa47dd75d7 100644 (file)
@@ -187,11 +187,12 @@ RegionExportChannelFactory::update_buffers (framecnt_t frames)
                assert (mixdown_buffer && gain_buffer);
                for (size_t channel = 0; channel < n_channels; ++channel) {
                        memset (mixdown_buffer.get(), 0, sizeof (Sample) * frames);
+                       buffers.get_audio (channel).silence(frames);
                        region.read_at (buffers.get_audio (channel).data(), mixdown_buffer.get(), gain_buffer.get(), position, frames, channel);
                }
                break;
        case Processed:
-               track.export_stuff (buffers, position, frames, track.main_outs(), true, true);
+               track.export_stuff (buffers, position, frames, track.main_outs(), true, true, false);
                break;
        default:
                throw ExportFailed ("Unhandled type in ExportChannelFactory::update_buffers");
@@ -239,7 +240,11 @@ RouteExportChannel::read (Sample const *& data, framecnt_t frames) const
 {
        assert(processor);
        AudioBuffer const & buffer = processor->get_capture_buffers().get_audio (channel);
-       assert (frames <= (framecnt_t) buffer.size());
+#ifndef NDEBUG
+       (void) frames;
+#else
+       assert (frames <= (framecnt_t) buffer.capacity());
+#endif
        data = buffer.data();
 }