From d5066f2051d91b638f39bd22d5f82154accd1af2 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 26 Aug 2015 01:32:22 +0100 Subject: [PATCH] Revert "Replace _floor with _round in dcp_to_content_video. _floor breaks playback on Win XP 32 as the player keeps requesting the same frame from the decoder rather than the next one." This reverts commit e386b94425586760374d8e1cb16be99af09cf07f. The actual cause of the Win XP 32 bug appears to be -ffast-math. --- src/lib/player.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/player.cc b/src/lib/player.cc index a40c65cd5..d2ef1a5ff 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -524,7 +524,10 @@ Player::dcp_to_content_video (shared_ptr piece, DCPTime t) const shared_ptr vc = dynamic_pointer_cast (piece->content); DCPTime s = t - piece->content->position (); s = min (piece->content->length_after_trim(), s); - return max (ContentTime (), ContentTime (s, piece->frc) + piece->content->trim_start ()).frames_round (vc->video_frame_rate ()); + /* We're returning a frame index here so we need to floor() the conversion since we want to know the frame + that contains t, I think + */ + return max (ContentTime (), ContentTime (s, piece->frc) + piece->content->trim_start ()).frames_floor (vc->video_frame_rate ()); } DCPTime -- 2.30.2