37 int range_first_frame = 0;
50 filename, head,
sizeof(head), tail,
sizeof(tail), &digits);
53 if (do_frame_range && (range !=
nullptr) &&
STREQLEN(base_head, head,
FILE_MAX) &&
57 if (frame->
framenr < range_first_frame) {
59 range_first_frame = frame->
framenr;
71 range_first_frame = frame->
framenr;
107 int udim_start, udim_range;
112 range->
offset = udim_start;
113 range->
length = udim_range;
122 if (frame !=
nullptr) {
123 int frame_curr = frame->
framenr;
124 range->
offset = frame_curr;
126 while (frame !=
nullptr && (frame->
framenr == frame_curr)) {
139 if (frame_last !=
nullptr) {
147 const bool detect_udim)
152 bool was_relative =
false;
bool BKE_image_get_tile_info(char *filepath, ListBase *tiles, int *r_tile_start, int *r_tile_range)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(ListBase *lb)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void void BLI_listbase_sort(ListBase *listbase, int(*cmp)(const void *, const void *)) ATTR_NONNULL(1
bool BLI_path_abs(char path[FILE_MAX], const char *basepath) ATTR_NONNULL(1
#define BLI_path_join(...)
bool BLI_path_is_rel(const char *path) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT
int BLI_path_sequence_decode(const char *path, char *head, size_t head_maxncpy, char *tail, size_t tail_maxncpy, unsigned short *r_digits_len)
bool void BLI_path_rel(char path[FILE_MAX], const char *basepath) ATTR_NONNULL(1)
char * STRNCPY(char(&dst)[N], const char *src)
#define STREQLEN(a, b, n)
Read Guarded memory(de)allocation.
#define RNA_BEGIN(sptr, itemptr, propname)
constexpr const char * c_str() const
ListBase ED_image_filesel_detect_sequences(blender::StringRefNull blendfile_path, blender::StringRefNull root_path, wmOperator *op, const bool detect_udim)
static void image_detect_frame_range(ImageFrameRange *range, const bool detect_udim)
static void image_sequence_get_frame_ranges(wmOperator *op, ListBase *ranges, bool *r_was_relative)
static int image_cmp_frame(const void *a, const void *b)
void * MEM_callocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
char * RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen, int *r_len)
std::string RNA_string_get(PointerRNA *ptr, const char *name)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)