copy_from (other.get(), other->_frames, 0, 0);
}
+AudioBuffers::AudioBuffers (boost::shared_ptr<const AudioBuffers> other, int32_t frames_to_copy, int32_t read_offset)
+{
+ allocate (other->_channels, frames_to_copy);
+ copy_from (other.get(), frames_to_copy, read_offset, 0);
+}
+
AudioBuffers &
AudioBuffers::operator= (AudioBuffers const & other)
{
{
DCPOMATIC_ASSERT (f <= _allocated_frames);
- make_silent (f, _frames - f);
+ if (f < _frames) {
+ make_silent (f, _frames - f);
+ }
_frames = f;
}
}
}
- make_silent (_allocated_frames, frames - _allocated_frames);
+ int32_t const old_allocated = _allocated_frames;
_allocated_frames = frames;
+ if (old_allocated < _allocated_frames) {
+ make_silent (old_allocated, _allocated_frames - old_allocated);
+ }
}
/** Mix some other buffers with these ones. The AudioBuffers must have the same number of channels.