From 1949643ee58c533036395ab2ad4299489460e44b Mon Sep 17 00:00:00 2001 From: Sebastian Parborg Date: Mon, 7 Jun 2021 18:12:57 +0200 Subject: Fix: Wrong logic for checking if we can reuse decoded frame We should only check if the new pts value lies inside the duration of the current frame. --- source/blender/imbuf/intern/anim_movie.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source/blender/imbuf/intern/anim_movie.c') diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 622b6cbfc16..b65c3e364db 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -1076,7 +1076,8 @@ static int64_t ffmpeg_get_pts_to_search(struct anim *anim, static bool ffmpeg_pts_matches_last_frame(struct anim *anim, int64_t pts_to_search) { if (anim->pFrame && anim->cur_frame_final) { - return labs(anim->cur_pts - pts_to_search) < anim->pFrame->pkt_duration; + int64_t diff = pts_to_search - anim->cur_pts; + return diff >= 0 && diff < anim->pFrame->pkt_duration; } return false; -- cgit v1.2.3