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:
authorCampbell Barton <ideasman42@gmail.com>2013-11-25 09:59:10 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-11-25 09:59:10 +0400
commitd45ea33ff14b7feaae29fe992b4d20cb96a1f48e (patch)
tree3049c37522926335d8c70ab46e7c132ac5040b3d /source/blender
parent8cb02561a90bffa019cece9a4976ea98363c5b75 (diff)
Fix T37591: 'Extensions' option ignored for movies.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/intern/writeavi.c13
-rw-r--r--source/blender/blenkernel/intern/writeffmpeg.c31
-rw-r--r--source/blender/blenlib/BLI_path_util.h1
-rw-r--r--source/blender/blenlib/intern/path_util.c9
-rw-r--r--source/blender/quicktime/apple/qtkit_export.m17
5 files changed, 50 insertions, 21 deletions
diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c
index ff6212f6b09..1d29ef70d8b 100644
--- a/source/blender/blenkernel/intern/writeavi.c
+++ b/source/blender/blenkernel/intern/writeavi.c
@@ -132,9 +132,16 @@ static void filepath_avi(char *string, RenderData *rd)
BLI_make_existing_file(string);
- if (!BLI_testextensie(string, ".avi")) {
- BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
- strcat(string, ".avi");
+ if (rd->scemode & R_EXTENSION) {
+ if (!BLI_testextensie(string, ".avi")) {
+ BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
+ strcat(string, ".avi");
+ }
+ }
+ else {
+ if (BLI_path_frame_check_chars(string)) {
+ BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
+ }
}
}
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
index bcf5e712eff..ff4300c34e9 100644
--- a/source/blender/blenkernel/intern/writeffmpeg.c
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
@@ -1023,23 +1023,32 @@ void BKE_ffmpeg_filepath_get(char *string, RenderData *rd)
sprintf(autosplit, "_%03d", ffmpeg_autosplit_count);
}
- while (*fe) {
- if (BLI_strcasecmp(string + strlen(string) - strlen(*fe), *fe) == 0) {
- break;
+ if (rd->scemode & R_EXTENSION) {
+ while (*fe) {
+ if (BLI_strcasecmp(string + strlen(string) - strlen(*fe), *fe) == 0) {
+ break;
+ }
+ fe++;
}
- fe++;
- }
- if (*fe == NULL) {
- strcat(string, autosplit);
+ if (*fe == NULL) {
+ strcat(string, autosplit);
- BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
- strcat(string, *exts);
+ BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
+ strcat(string, *exts);
+ }
+ else {
+ *(string + strlen(string) - strlen(*fe)) = 0;
+ strcat(string, autosplit);
+ strcat(string, *fe);
+ }
}
else {
- *(string + strlen(string) - strlen(*fe)) = 0;
+ if (BLI_path_frame_check_chars(string)) {
+ BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
+ }
+
strcat(string, autosplit);
- strcat(string, *fe);
}
}
diff --git a/source/blender/blenlib/BLI_path_util.h b/source/blender/blenlib/BLI_path_util.h
index 9b461db4bcd..0cffa286014 100644
--- a/source/blender/blenlib/BLI_path_util.h
+++ b/source/blender/blenlib/BLI_path_util.h
@@ -158,6 +158,7 @@ bool BLI_has_parent(char *path);
bool BLI_path_abs(char *path, const char *basepath);
bool BLI_path_frame(char *path, int frame, int digits);
bool BLI_path_frame_range(char *path, int sta, int end, int digits);
+bool BLI_path_frame_check_chars(const char *path);
bool BLI_path_cwd(char *path);
void BLI_path_rel(char *file, const char *relfile);
diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c
index 4b8ee6e2847..3900ee014dc 100644
--- a/source/blender/blenlib/intern/path_util.c
+++ b/source/blender/blenlib/intern/path_util.c
@@ -720,6 +720,15 @@ bool BLI_path_frame_range(char *path, int sta, int end, int digits)
}
/**
+ * Check if we have '#' chars, usable for #BLI_path_frame, #BLI_path_frame_range
+ */
+bool BLI_path_frame_check_chars(const char *path)
+{
+ int ch_sta, ch_end; /* dummy args */
+ return stringframe_chars(path, &ch_sta, &ch_end);
+}
+
+/**
* If path begins with "//", strips that and replaces it with basepath directory. Also converts
* a drive-letter prefix to something more sensible if this is a non-drive-letter-based system.
* Returns true if "//" prefix expansion was done.
diff --git a/source/blender/quicktime/apple/qtkit_export.m b/source/blender/quicktime/apple/qtkit_export.m
index 8cf91e44c77..0c193df3861 100644
--- a/source/blender/quicktime/apple/qtkit_export.m
+++ b/source/blender/quicktime/apple/qtkit_export.m
@@ -242,14 +242,17 @@ void filepath_qt(char *string, RenderData *rd)
BLI_path_abs(string, G.main->name);
BLI_make_existing_file(string);
-
- if (!BLI_testextensie(string, ".mov")) {
- /* if we don't have any #'s to insert numbers into, use 4 numbers by default */
- if (strchr(string, '#')==NULL)
- strcat(string, "####"); /* 4 numbers */
- BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
- strcat(string, ".mov");
+ if (rd->scemode & R_EXTENSION) {
+ if (!BLI_testextensie(string, ".mov")) {
+ BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
+ strcat(string, ".mov");
+ }
+ }
+ else {
+ if (BLI_path_frame_check_chars(string)) {
+ BLI_path_frame_range(string, rd->sfra, rd->efra, 4);
+ }
}
}