X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fwriter.cc;h=ad588f0a62aa0ff0709168c89c304666ec0867fe;hb=786d0317a86f81d391efd4fab1bb331b4959f666;hp=9ebdd92a3e3b2e25f6c06c1e840b81e19652a2a9;hpb=998ebab3fafd238a49d4ececeecb4bbf9f17b699;p=dcpomatic.git diff --git a/src/lib/writer.cc b/src/lib/writer.cc index 9ebdd92a3..ad588f0a6 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -306,11 +306,14 @@ Writer::write (shared_ptr audio, DCPTime const time) 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), - 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 part (new AudioBuffers(audio, part_frames[0], 0)); _audio_reel->write (part);