[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26458] trunk/blender/source/blender: - hash characters in the path would confuse the output file name and not add numbers to it (when rendering animations).

Campbell Barton ideasman42 at gmail.com
Sat Jan 30 23:33:47 CET 2010


Revision: 26458
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26458
Author:   campbellbarton
Date:     2010-01-30 23:33:47 +0100 (Sat, 30 Jan 2010)

Log Message:
-----------
- hash characters in the path would confuse the output file name and not add numbers to it (when rendering animations).
- added an option to BLI_convertstringframe and BLI_convertstringframe_range to add digits if not found.
- removed BLI_convertstringframe where its obviously not needed - such as loading movies and sounds.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/blenkernel/intern/writeavi.c
    trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
    trunk/blender/source/blender/blenlib/BLI_path_util.h
    trunk/blender/source/blender/blenlib/intern/path_util.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/space_file/writeimage.c
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/makesrna/intern/rna_image_api.c
    trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/blenkernel/intern/image.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -392,7 +392,6 @@
 	
 	BLI_strncpy(str, name, sizeof(str));
 	BLI_convertstringcode(str, G.sce);
-	BLI_convertstringframe(str, frame);
 	
 	/* exists? */
 	file= open(str, O_BINARY|O_RDONLY);
@@ -404,7 +403,6 @@
 		if(ima->source!=IMA_SRC_VIEWER && ima->source!=IMA_SRC_GENERATED) {
 			BLI_strncpy(strtest, ima->name, sizeof(ima->name));
 			BLI_convertstringcode(strtest, G.sce);
-			BLI_convertstringframe(strtest, frame);
 			
 			if( strcmp(strtest, str)==0 ) {
 				if(ima->anim==NULL || ima->id.us==0) {
@@ -1412,15 +1410,9 @@
 void BKE_makepicstring(char *string, char *base, int frame, int imtype, int use_ext)
 {
 	if (string==NULL) return;
-
 	BLI_strncpy(string, base, FILE_MAX - 10);	/* weak assumption */
-	
-	/* if we dont have any #'s to insert numbers into, use 4 numbers by default */
-	if (strchr(string, '#')==NULL)
-		strcat(string, "####"); /* 4 numbers */
-	
 	BLI_convertstringcode(string, G.sce);
-	BLI_convertstringframe(string, frame);
+	BLI_convertstringframe(string, frame, 4);
 
 	if(use_ext)
 		BKE_add_image_extension(string, imtype);
@@ -1675,8 +1667,6 @@
 	else
 		BLI_convertstringcode(name, G.sce);
 	
-	BLI_convertstringframe(name, frame); /* TODO - should this be here? */
-	
 	/* read ibuf */
 	ibuf = IMB_loadiffname(name, IB_rect|IB_multilayer);
 	if(G.f & G_DEBUG) printf("loaded %s\n", name);
@@ -1838,7 +1828,7 @@
 		else
 			BLI_convertstringcode(str, G.sce);
 		
-		BLI_convertstringframe(str, cfra);
+		BLI_convertstringframe(str, cfra, 0);
 		
 		/* read ibuf */
 		ibuf = IMB_loadiffname(str, IB_rect|IB_multilayer|IB_imginfo);

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -583,8 +583,6 @@
 	    seq->type != SEQ_IMAGE) {
 		BLI_join_dirfile(str, seq->strip->dir, seq->strip->stripdata->name);
 		BLI_convertstringcode(str, G.sce);
-		BLI_convertstringframe(str, scene->r.cfra);
-		
 	}
 
 	if (seq->type == SEQ_IMAGE) {
@@ -1190,7 +1188,6 @@
 	if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) {
 		BLI_join_dirfile(name, dir, seq->strip->proxy->file);
 		BLI_convertstringcode(name, G.sce);
-		BLI_convertstringframe(name, cfra);
 
 		return TRUE;
 	}
@@ -1220,9 +1217,9 @@
 	}
 
 	BLI_convertstringcode(name, G.sce);
-	BLI_convertstringframe(name, frameno);
-	
+	BLI_convertstringframe(name, frameno, 0);
 
+
 	strcat(name, ".jpg");
 
 	return TRUE;
@@ -1988,7 +1985,6 @@
 			StripElem * s_elem = give_stripelem(seq, cfra);
 			BLI_join_dirfile(name, seq->strip->dir, s_elem->name);
 			BLI_convertstringcode(name, G.sce);
-			BLI_convertstringframe(name, scene->r.cfra);
 			if (!build_proxy_run) {
 				se->ibuf = seq_proxy_fetch(scene, seq, cfra, render_size);
 			}
@@ -2023,7 +2019,6 @@
 				if(seq->anim==0) {
 					BLI_join_dirfile(name, seq->strip->dir, seq->strip->stripdata->name);
 					BLI_convertstringcode(name, G.sce);
-					BLI_convertstringframe(name, scene->r.cfra);
 					
 					seq->anim = openanim(
 						name, IB_rect | 

Modified: trunk/blender/source/blender/blenkernel/intern/writeavi.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/writeavi.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/blenkernel/intern/writeavi.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -129,11 +129,7 @@
 	BLI_make_existing_file(string);
 
 	if (!BLI_testextensie(string, ".avi")) {
-		/* if we dont have any #'s to insert numbers into, use 4 numbers by default */
-		if (strchr(string, '#')==NULL)
-			strcat(string, "####"); /* 4 numbers */
-
-		BLI_convertstringframe_range(string, rd->sfra, rd->efra);
+		BLI_convertstringframe_range(string, rd->sfra, rd->efra, 4);
 		strcat(string, ".avi");
 	}
 }

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -781,7 +781,6 @@
 
 	strcpy(string, rd->pic);
 	BLI_convertstringcode(string, G.sce);
-	BLI_convertstringframe(string, rd->cfra);
 
 	BLI_make_existing_file(string);
 
@@ -802,11 +801,7 @@
 	if (!*fe) {
 		strcat(string, autosplit);
 
-		/* if we dont have any #'s to insert numbers into, use 4 numbers by default */
-		if (strchr(string, '#')==NULL)
-			strcat(string, "####"); /* 4 numbers */
-
-		BLI_convertstringframe_range(string, rd->sfra, rd->efra);
+		BLI_convertstringframe_range(string, rd->sfra, rd->efra, 4);
 		strcat(string, *exts);
 	} else {
 		*(string + strlen(string) - strlen(*fe)) = 0;

Modified: trunk/blender/source/blender/blenlib/BLI_path_util.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_path_util.h	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/blenlib/BLI_path_util.h	2010-01-30 22:33:47 UTC (rev 26458)
@@ -97,8 +97,8 @@
 	 * @retval Returns true if the path was relative (started with "//").
 	 */
 int BLI_convertstringcode(char *path, const char *basepath);
-int BLI_convertstringframe(char *path, int frame);
-int BLI_convertstringframe_range(char *path, int sta, int end);
+int BLI_convertstringframe(char *path, int frame, int digits);
+int BLI_convertstringframe_range(char *path, int sta, int end, int digits);
 int BLI_convertstringcwd(char *path);
 
 void BLI_makestringcode(const char *relfile, char *file);

Modified: trunk/blender/source/blender/blenlib/intern/path_util.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/path_util.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/blenlib/intern/path_util.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -557,9 +557,30 @@
 	}
 }
 
-int BLI_convertstringframe(char *path, int frame)
+static void ensure_digits(char *path, int digits)
 {
+	char *file= BLI_last_slash(path);
+
+	if(file==NULL)
+		file= path;
+
+	if(strrchr(file, '#') == NULL) {
+		int len= strlen(file);
+
+		while(digits--) {
+			file[len++]= '#';
+		}
+		file[len]= '\0';
+	}
+}
+
+int BLI_convertstringframe(char *path, int frame, int digits)
+{
 	int ch_sta, ch_end;
+
+	if(digits)
+		ensure_digits(path, digits);
+
 	if (stringframe_chars(path, &ch_sta, &ch_end)) { /* warning, ch_end is the last # +1 */
 		char tmp[FILE_MAX], format[64];
 		sprintf(format, "%%.%ds%%.%dd%%s", ch_sta, ch_end-ch_sta); /* example result: "%.12s%.5d%s" */
@@ -570,9 +591,13 @@
 	return 0;
 }
 
-int BLI_convertstringframe_range(char *path, int sta, int end)
+int BLI_convertstringframe_range(char *path, int sta, int end, int digits)
 {
 	int ch_sta, ch_end;
+
+	if(digits)
+		ensure_digits(path, digits);
+
 	if (stringframe_chars(path, &ch_sta, &ch_end)) { /* warning, ch_end is the last # +1 */
 		char tmp[FILE_MAX], format[64];
 		sprintf(format, "%%.%ds%%.%dd_%%.%dd%%s", ch_sta, ch_end-ch_sta, ch_end-ch_sta); /* example result: "%.12s%.5d-%.5d%s" */

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -9682,7 +9682,6 @@
 						char str[FILE_MAX];
 						BLI_join_dirfile(str, seq->strip->dir, seq->strip->stripdata->name);
 						BLI_convertstringcode(str, G.sce);
-						BLI_convertstringframe(str, scene->r.cfra);
 						seq->sound = sound_new_file(main, str);
 					}
 				}

Modified: trunk/blender/source/blender/editors/space_file/writeimage.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/writeimage.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/editors/space_file/writeimage.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -106,7 +106,6 @@
 
 	strcpy(str, name);
 	BLI_convertstringcode(str, G.sce);
-	BLI_convertstringframe(str, scene->r.cfra); /* TODO - is this even used? */
 
 	if (confirm)
 		overwrite = saveover(str);

Modified: trunk/blender/source/blender/editors/space_image/image_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_ops.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/editors/space_image/image_ops.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -810,7 +810,7 @@
 
 	if (ibuf) {	
 		BLI_convertstringcode(name, G.sce);
-		BLI_convertstringframe(name, scene->r.cfra);
+		BLI_convertstringframe(name, scene->r.cfra, 0);
 		
 		if(scene->r.scemode & R_EXTENSION)  {
 			BKE_add_image_extension(name, sima->imtypenr);

Modified: trunk/blender/source/blender/makesrna/intern/rna_image_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_image_api.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/makesrna/intern/rna_image_api.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -98,7 +98,7 @@
 
 	BLI_strncpy(filename, image->name, FILE_MAXDIR + FILE_MAXFILE);
 	BLI_convertstringcode(filename, CTX_data_main(C)->name);
-	BLI_convertstringframe(filename, CTX_data_scene(C)->r.cfra);
+	BLI_convertstringframe(filename, CTX_data_scene(C)->r.cfra, 0);
 
 	return filename;
 }

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c	2010-01-30 21:59:20 UTC (rev 26457)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2010-01-30 22:33:47 UTC (rev 26458)
@@ -2084,7 +2084,7 @@
 		
 		strcpy(name, re->r.backbuf);
 		BLI_convertstringcode(name, G.sce);
-		BLI_convertstringframe(name, re->r.cfra);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list