From f16fcb5bd5ecfc6ef80b537b77b9a7dd99d9ecf8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 12 Apr 2020 02:37:31 +0200 Subject: Fix volume object not loading frame sequences correct in some cases Ensure we use the first frame as filepath so we can compute the number of leading zeros. For file validation, always test the first frame rather than the current scene frame. --- source/blender/editors/space_image/image_sequence.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender/editors/space_image/image_sequence.c') diff --git a/source/blender/editors/space_image/image_sequence.c b/source/blender/editors/space_image/image_sequence.c index e65924d0eb9..0817bdda88d 100644 --- a/source/blender/editors/space_image/image_sequence.c +++ b/source/blender/editors/space_image/image_sequence.c @@ -64,6 +64,7 @@ static void image_sequence_get_frame_ranges(wmOperator *op, ListBase *ranges) char dir[FILE_MAXDIR]; const bool do_frame_range = RNA_boolean_get(op->ptr, "use_sequence_detection"); ImageFrameRange *range = NULL; + int range_first_frame = 0; RNA_string_get(op->ptr, "directory", dir); RNA_BEGIN (op->ptr, itemptr, "files") { @@ -79,7 +80,11 @@ static void image_sequence_get_frame_ranges(wmOperator *op, ListBase *ranges) /* still in the same sequence */ if (do_frame_range && (range != NULL) && (STREQLEN(base_head, head, FILE_MAX)) && (STREQLEN(base_tail, tail, FILE_MAX))) { - /* pass */ + /* Set filepath to first frame in the range. */ + if (frame->framenr < range_first_frame) { + BLI_join_dirfile(range->filepath, sizeof(range->filepath), dir, filename); + range_first_frame = frame->framenr; + } } else { /* start a new frame range */ @@ -89,6 +94,8 @@ static void image_sequence_get_frame_ranges(wmOperator *op, ListBase *ranges) BLI_strncpy(base_head, head, sizeof(base_head)); BLI_strncpy(base_tail, tail, sizeof(base_tail)); + + range_first_frame = frame->framenr; } BLI_addtail(&range->frames, frame); -- cgit v1.2.3