diff options
author | feandin <feandin@gmail.com> | 2016-03-04 20:07:15 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-03-05 15:54:47 +0100 |
commit | bf83093f43ac13bcadece6e451055d50c59e7787 (patch) | |
tree | 144b712ae869200c85c2b6367774ca5c22a42f6c /libs/ardour/audioregion.cc | |
parent | 3a3afe7cfca0b3f2f5e4b3e6f67228e69022962e (diff) |
Fix issue #0006806
Diffstat (limited to 'libs/ardour/audioregion.cc')
-rw-r--r-- | libs/ardour/audioregion.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index ddd152bf0e..6b549b3d13 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -1817,11 +1817,13 @@ AudioRegion::find_silence (Sample threshold, framecnt_t min_length, framecnt_t f while (pos < end && !itt.cancel) { framecnt_t cur_samples = 0; + framecnt_t const to_read = min (end - pos, block_size); /* fill `loudest' with the loudest absolute sample at each instant, across all channels */ memset (loudest.get(), 0, sizeof (Sample) * block_size); + for (uint32_t n = 0; n < n_channels(); ++n) { - cur_samples = read_raw_internal (buf.get(), pos, block_size, n); + cur_samples = read_raw_internal (buf.get(), pos, to_read, n); for (framecnt_t i = 0; i < cur_samples; ++i) { loudest[i] = max (loudest[i], abs (buf[i])); } |