summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-11-01 21:10:46 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-11-01 21:10:46 +0000
commitddff1489f26a753efc3cbdb35fc4c1d19b17c53e (patch)
tree8ef722aa21021ef2de66e1aa2b0a30bc2284fa29 /libs/ardour
parent43f851273295383821d52a697df4f599da87a905 (diff)
force re-silence of buffers in ProcessThread::get_silent_buffers(), an interim fix before actually finding out why the buffers are marked silent when they were not
git-svn-id: svn://localhost/ardour2/branches/3.0@10383 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/process_thread.cc4
-rw-r--r--libs/ardour/route.cc10
2 files changed, 5 insertions, 9 deletions
diff --git a/libs/ardour/process_thread.cc b/libs/ardour/process_thread.cc
index 58d51bef4e..666c64e211 100644
--- a/libs/ardour/process_thread.cc
+++ b/libs/ardour/process_thread.cc
@@ -84,6 +84,10 @@ ProcessThread::get_silent_buffers (ChanCount count)
for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
for (size_t i= 0; i < count.get(*t); ++i) {
+ /* every call to get_silent_buffers() by a given thread
+ * requires that we re-silence them.
+ */
+ sb->get(*t, i).is_silent(false);
sb->get(*t, i).clear();
}
}
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index d0dca37e0a..7521f183da 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -404,15 +404,6 @@ Route::process_output_buffers (BufferSet& bufs,
bufs.is_silent (false);
-#if 0
- cerr << name() << " POB, buffers: count: " << bufs.count() << " avail " << bufs.available() << endl;
- int na = bufs.count().n_audio();
- for (int nn = 0; nn < na; ++nn) {
- AudioBuffer& ab (bufs.get_audio (nn));
- cerr << "\tAudio buffer " << nn << " @ " << &ab << " data @ " << ab.data() << endl;
- }
-#endif
-
/* figure out if we're going to use gain automation */
if (gain_automation_ok) {
_amp->setup_gain_automation (start_frame, end_frame, nframes);
@@ -563,6 +554,7 @@ void
Route::passthru_silence (framepos_t start_frame, framepos_t end_frame, pframes_t nframes, int declick)
{
BufferSet& bufs (_session.get_silent_buffers (n_process_buffers()));
+
bufs.set_count (_input->n_ports());
write_out_of_band_data (bufs, start_frame, end_frame, nframes);
process_output_buffers (bufs, start_frame, end_frame, nframes, true, declick, false);