Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Parborg <darkdefende@gmail.com>2021-06-07 19:12:57 +0300
committerJeroen Bakker <jeroen@blender.org>2021-06-30 10:37:43 +0300
commit02a6be544324d6d42e2bbf2c8dca89169961ce2d (patch)
tree6320bffce3a949ef4fd10d6bbbbf7023f26e69d0
parent7eb3e77b94f51bdeee719425ec4a533f662c5edd (diff)
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.
-rw-r--r--source/blender/imbuf/intern/anim_movie.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index 4b5da22227b..21c7df277dd 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;