X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudio_buffer.cc;h=89e210c7728a7c323e8bc3940264a71fcae6c2fd;hb=cf52d6e4b40111eb04b244ec054055a4ec15dbe0;hp=b4e2a55ac2e7d38452e4dda3a7517dbaf03880fa;hpb=3020b224fa2d6e1b6b8a576e8e8e211e0585f2a2;p=ardour.git diff --git a/libs/ardour/audio_buffer.cc b/libs/ardour/audio_buffer.cc index b4e2a55ac2..89e210c772 100644 --- a/libs/ardour/audio_buffer.cc +++ b/libs/ardour/audio_buffer.cc @@ -22,7 +22,7 @@ #include "pbd/error.h" #include "pbd/malign.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace PBD; using namespace ARDOUR; @@ -43,7 +43,7 @@ AudioBuffer::AudioBuffer(size_t capacity) AudioBuffer::~AudioBuffer() { if (_owns_data) - free(_data); + cache_aligned_free(_data); } void @@ -57,28 +57,21 @@ AudioBuffer::resize (size_t size) if (_data && size < _capacity) { /* buffer is already large enough */ - - if (size < _size) { - /* truncate */ - _size = size; - } - return; } - free (_data); + cache_aligned_free (_data); cache_aligned_malloc ((void**) &_data, sizeof (Sample) * size); _capacity = size; - _size = 0; _silent = false; } bool -AudioBuffer::check_silence (pframes_t nframes, bool wholebuffer, pframes_t& n) const +AudioBuffer::check_silence (pframes_t nframes, pframes_t& n) const { - for (n = 0; (wholebuffer || n < _size) && n < nframes; ++n) { + for (n = 0; n < nframes; ++n) { if (_data[n] != Sample (0)) { return false; } @@ -88,7 +81,7 @@ AudioBuffer::check_silence (pframes_t nframes, bool wholebuffer, pframes_t& n) c void AudioBuffer::silence (framecnt_t len, framecnt_t offset) { - pframes_t n = 0; + if (!_silent) { assert(_capacity > 0); assert(offset + len <= _capacity);