summaryrefslogtreecommitdiff
path: root/libs/ardour/resampled_source.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/resampled_source.cc')
-rw-r--r--libs/ardour/resampled_source.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/ardour/resampled_source.cc b/libs/ardour/resampled_source.cc
index 5c811706d0..ca59d20b58 100644
--- a/libs/ardour/resampled_source.cc
+++ b/libs/ardour/resampled_source.cc
@@ -73,14 +73,15 @@ framecnt_t
ResampledImportableSource::read (Sample* output, framecnt_t nframes)
{
int err;
+ size_t bs = floor (blocksize / source->channels()) * source->channels();
/* If the input buffer is empty, refill it. */
if (_src_data.input_frames == 0) {
- _src_data.input_frames = source->read (_input, blocksize);
+ _src_data.input_frames = source->read (_input, bs);
/* The last read will not be a full buffer, so set end_of_input. */
- if ((framecnt_t) _src_data.input_frames < blocksize) {
+ if ((framecnt_t) _src_data.input_frames < bs) {
_end_of_input = true;
}