Make sure we round properly when deciding how many audio frames to discard.
[dcpomatic.git] / src / lib / ffmpeg_decoder.cc
index 7923be59bb6c3e696ee372135cc39e512c3c4dbd..c23d56b425e575c83169ae7f2eaffc3f43cbda84 100644 (file)
@@ -337,7 +337,7 @@ FFmpegDecoder::decode_audio_packet ()
 
                        if (ct < ContentTime ()) {
                                /* Discard audio data that comes before time 0 */
-                               Frame const remove = min (int64_t (data->frames()), -ct.frames_round ((*stream)->frame_rate ()));
+                               Frame const remove = min (int64_t (data->frames()), (-ct).frames_ceil(double((*stream)->frame_rate ())));
                                data->move (remove, 0, data->frames() - remove);
                                data->set_frames (data->frames() - remove);
                                ct += ContentTime::from_frames (remove, (*stream)->frame_rate ());