projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix assertion failure in AudioBuffers::copy_from() (#1909)
[dcpomatic.git]
/
src
/
lib
/
writer.cc
diff --git
a/src/lib/writer.cc
b/src/lib/writer.cc
index 9ebdd92a3e3b2e25f6c06c1e840b81e19652a2a9..ad588f0a62aa0ff0709168c89c304666ec0867fe 100644
(file)
--- a/
src/lib/writer.cc
+++ b/
src/lib/writer.cc
@@
-306,11
+306,14
@@
Writer::write (shared_ptr<const AudioBuffers> audio, DCPTime const time)
end - _audio_reel->period().to
};
end - _audio_reel->period().to
};
+ /* Be careful that part_lengths[0] + part_lengths[1] can't be bigger than audio->frames() */
Frame part_frames[2] = {
part_lengths[0].frames_ceil(afr),
Frame part_frames[2] = {
part_lengths[0].frames_ceil(afr),
- part_lengths[1].frames_
ceil
(afr)
+ part_lengths[1].frames_
floor
(afr)
};
};
+ DCPOMATIC_ASSERT ((part_frames[0] + part_frames[1]) <= audio->frames());
+
if (part_frames[0]) {
shared_ptr<AudioBuffers> part (new AudioBuffers(audio, part_frames[0], 0));
_audio_reel->write (part);
if (part_frames[0]) {
shared_ptr<AudioBuffers> part (new AudioBuffers(audio, part_frames[0], 0));
_audio_reel->write (part);