Revert "Fix image sequence detection to account for the number of digits"

This reverts commit 5c2d412a29.
because it caused a regression.

Resolve #124832.
This commit is contained in:
Campbell Barton
2024-08-21 12:38:09 +10:00
parent 6be90285bc
commit ddcf5bac44
2 changed files with 10 additions and 23 deletions

View File

@@ -200,13 +200,6 @@ struct ImageFrameRange {
/* Temporary data. */
ListBase frames;
/** Sequences filename head. */
char filename_head[FILE_MAX];
/** Sequences digits size. */
unsigned short filename_digits;
/** Sequences filename tail. */
char filename_tail[FILE_MAX];
};
/**

View File

@@ -42,7 +42,10 @@ 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 = nullptr;
int range_first_frame = 0;
/* Track when a new series of files are found that aren't compatible with the previous file. */
char base_head[FILE_MAX], base_tail[FILE_MAX];
RNA_string_get(op->ptr, "directory", dir);
RNA_BEGIN (op->ptr, itemptr, "files") {
@@ -55,19 +58,10 @@ static void image_sequence_get_frame_ranges(wmOperator *op, ListBase *ranges)
frame->framenr = BLI_path_sequence_decode(
filename, head, sizeof(head), tail, sizeof(tail), &digits);
/* Check if the image sequence is already initialized. */
ImageFrameRange *range = nullptr;
if (do_frame_range) {
LISTBASE_FOREACH (ImageFrameRange *, range_test, ranges) {
if ((digits == range_test->filename_digits) &&
(STREQ(head, range_test->filename_head) && STREQ(tail, range_test->filename_tail)))
{
range = range_test;
break;
}
}
}
if (range) {
/* still in the same sequence */
if (do_frame_range && (range != nullptr) && STREQLEN(base_head, head, FILE_MAX) &&
STREQLEN(base_tail, tail, FILE_MAX))
{
/* Set filepath to first frame in the range. */
if (frame->framenr < range_first_frame) {
BLI_path_join(range->filepath, sizeof(range->filepath), dir, filename);
@@ -79,9 +73,9 @@ static void image_sequence_get_frame_ranges(wmOperator *op, ListBase *ranges)
range = static_cast<ImageFrameRange *>(MEM_callocN(sizeof(*range), __func__));
BLI_path_join(range->filepath, sizeof(range->filepath), dir, filename);
BLI_addtail(ranges, range);
range->filename_digits = digits;
STRNCPY(range->filename_head, head);
STRNCPY(range->filename_tail, tail);
STRNCPY(base_head, head);
STRNCPY(base_tail, tail);
range_first_frame = frame->framenr;
}