From 13481416b7d059ced1fd4c82b8072ca3703cff7c Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Thu, 23 Jul 2015 13:13:36 +0200 Subject: [PATCH] Fixed a major bug in the Time Keyframe interpolation when rendering a video that caused the Replay to be restarted while rendering. This occurred whenever videoTime exactly matched a Time Keyframe's Position and was fixed by passing true to KeyframeList#getPreviousKeyframe and KeyframeList#getNextKeyframe, which therefore return the Keyframe itself if the timestamp matches. --- .../java/eu/crushedpixel/replaymod/video/VideoRenderer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java b/src/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java index d7c86f9a..4cae86fa 100644 --- a/src/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java +++ b/src/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java @@ -274,8 +274,8 @@ public class VideoRenderer implements RenderInfo { // WARNING: The rest of this method contains some magic for which Marius is responsible // Time interpolation - Keyframe lastTime = timeKeyframes.getPreviousKeyframe(videoTime, false); - Keyframe nextTime = timeKeyframes.getNextKeyframe(videoTime, false); + Keyframe lastTime = timeKeyframes.getPreviousKeyframe(videoTime, true); + Keyframe nextTime = timeKeyframes.getNextKeyframe(videoTime, true); int lastTimeStamp = 0; int nextTimeStamp = 0;