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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-04-07 20:37:55 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-04-07 20:37:55 +0400
commit7018345beecf0163ccae9077c150e7b74610a852 (patch)
tree7556fb4ab369ef259be5aa271c10a679600ecd79 /source/blender/blenkernel/intern/movieclip.c
parenta955a863356710acecce38ac3114245995604d06 (diff)
Fixed deadlock on loading file without number group into movie clip editor
Diffstat (limited to 'source/blender/blenkernel/intern/movieclip.c')
-rw-r--r--source/blender/blenkernel/intern/movieclip.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c
index e375262c045..4ba33a74373 100644
--- a/source/blender/blenkernel/intern/movieclip.c
+++ b/source/blender/blenkernel/intern/movieclip.c
@@ -80,7 +80,7 @@
/*********************** movieclip buffer loaders *************************/
-static int sequence_guess_offset(const char *full_name, int head_len, int numlen)
+static int sequence_guess_offset(const char *full_name, int head_len, unsigned short numlen)
{
char num[FILE_MAX] = {0};
@@ -273,17 +273,26 @@ static void movieclip_calc_length(MovieClip *clip)
}
else if (clip->source == MCLIP_SRC_SEQUENCE) {
int framenr = 1;
- char name[FILE_MAX];
+ short numlen;
+ char name[FILE_MAX], head[FILE_MAX], tail[FILE_MAX];
- for (;;) {
- get_sequence_fname(clip, framenr, name);
+ BLI_stringdec(clip->name, head, tail, &numlen);
- if (!BLI_exists(name)) {
- clip->len = framenr + 1;
- break;
- }
+ if (numlen == 0) {
+ /* there's no number group in file name, assume it's single framed sequence */
+ clip->len = framenr + 1;
+ }
+ else {
+ for (;;) {
+ get_sequence_fname(clip, framenr, name);
- framenr++;
+ if (!BLI_exists(name)) {
+ clip->len = framenr + 1;
+ break;
+ }
+
+ framenr++;
+ }
}
}
}