Another thinko fix.
[dcpomatic.git] / src / lib / audio_buffers.cc
index 8d3a897c42d76eb7ecd7f0474afdba63ba014a27..63204dd6a8684fd50897e68dff0b6b8d15ea30c5 100644 (file)
@@ -125,7 +125,9 @@ AudioBuffers::set_frames (int32_t f)
 {
        DCPOMATIC_ASSERT (f <= _allocated_frames);
 
-       make_silent (f, _frames - f);
+       if (f < _frames) {
+               make_silent (f, _frames - f);
+       }
        _frames = f;
 }
 
@@ -269,8 +271,11 @@ AudioBuffers::ensure_size (int32_t frames)
                }
        }
 
-       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.