From d1cc7e5a50e2144d7aea01bc5eceed6657513c1b Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 29 Nov 2013 22:26:33 -0500 Subject: fix up a bunch of confusion regarding the size/capacity/allocation of audio & midi buffers --- libs/ardour/thread_buffers.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libs/ardour/thread_buffers.cc') diff --git a/libs/ardour/thread_buffers.cc b/libs/ardour/thread_buffers.cc index fd3160bb15..e469187ce9 100644 --- a/libs/ardour/thread_buffers.cc +++ b/libs/ardour/thread_buffers.cc @@ -60,7 +60,7 @@ ThreadBuffers::ensure_buffers (ChanCount howmany) for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) { size_t count = std::max (scratch_buffers->available().get(*t), howmany.get(*t)); - size_t size = _engine->raw_buffer_size (*t); + size_t size = _engine->raw_buffer_size (*t) / sizeof (Sample); scratch_buffers->ensure_buffers (*t, count, size); mix_buffers->ensure_buffers (*t, count, size); @@ -68,12 +68,14 @@ ThreadBuffers::ensure_buffers (ChanCount howmany) route_buffers->ensure_buffers (*t, count, size); } + size_t audio_buffer_size = _engine->raw_buffer_size (DataType::AUDIO) / sizeof (Sample); + delete [] gain_automation_buffer; - gain_automation_buffer = new gain_t[_engine->raw_buffer_size (DataType::AUDIO)]; + gain_automation_buffer = new gain_t[audio_buffer_size]; delete [] send_gain_automation_buffer; - send_gain_automation_buffer = new gain_t[_engine->raw_buffer_size (DataType::AUDIO)]; + send_gain_automation_buffer = new gain_t[audio_buffer_size]; - allocate_pan_automation_buffers (_engine->raw_buffer_size (DataType::AUDIO), howmany.n_audio(), false); + allocate_pan_automation_buffers (audio_buffer_size, howmany.n_audio(), false); } void -- cgit v1.2.3