summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/audio_buffers.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/audio_buffers.cc b/src/lib/audio_buffers.cc
index 090c01081..a15288a3b 100644
--- a/src/lib/audio_buffers.cc
+++ b/src/lib/audio_buffers.cc
@@ -110,13 +110,21 @@ AudioBuffers::data (int c) const
}
/** Set the number of frames that these AudioBuffers will report themselves
- * as having.
+ * as having. If we reduce the number of frames, the `lost' frames will
+ * be silenced.
* @param f Frames; must be less than or equal to the number of allocated frames.
*/
void
AudioBuffers::set_frames (int f)
{
assert (f <= _allocated_frames);
+
+ for (int c = 0; c < _channels; ++c) {
+ for (int i = f; i < _frames; ++i) {
+ _data[c][i] = 0;
+ }
+ }
+
_frames = f;
}