[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13147] branches/animsys-aligorith: == AnimSys - Merge from Trunk ==

Joshua Leung aligorith at gmail.com
Mon Jan 7 01:59:09 CET 2008


Revision: 13147
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13147
Author:   aligorith
Date:     2008-01-07 01:59:09 +0100 (Mon, 07 Jan 2008)

Log Message:
-----------
== AnimSys - Merge from Trunk ==

Finally merging changes from trunk:
r 12899/12900 to 13146 (HEAD)

(Hopefully the added files get committed ok)

Modified Paths:
--------------
    branches/animsys-aligorith/config/win32-mingw-config.py
    branches/animsys-aligorith/intern/guardedalloc/MEM_guardedalloc.h
    branches/animsys-aligorith/intern/guardedalloc/intern/mallocn.c
    branches/animsys-aligorith/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj
    branches/animsys-aligorith/projectfiles_vc7/blender/blenlib/BLI_blenlib.vcproj
    branches/animsys-aligorith/projectfiles_vc7/blender/src/BL_src.vcproj
    branches/animsys-aligorith/release/datafiles/blenderbuttons
    branches/animsys-aligorith/source/blender/avi/intern/avi.c
    branches/animsys-aligorith/source/blender/blenkernel/BKE_anim.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_bad_level_calls.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_constraint.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_image.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_ipo.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_mesh.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_node.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_scene.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_utildefines.h
    branches/animsys-aligorith/source/blender/blenkernel/bad_level_call_stubs/stubs.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/DerivedMesh.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/action.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/anim.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/armature.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/colortools.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/constraint.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/curve.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/image.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/mesh.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/modifier.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/node.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/object.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/particle.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/particle_system.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/scene.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/softbody.c
    branches/animsys-aligorith/source/blender/blenlib/BLI_blenlib.h
    branches/animsys-aligorith/source/blender/blenlib/intern/BLI_ghash.c
    branches/animsys-aligorith/source/blender/blenlib/intern/BLI_kdtree.c
    branches/animsys-aligorith/source/blender/blenlib/intern/util.c
    branches/animsys-aligorith/source/blender/blenloader/intern/readfile.c
    branches/animsys-aligorith/source/blender/blenloader/intern/writefile.c
    branches/animsys-aligorith/source/blender/imbuf/intern/anim.c
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/BlockDXT.cpp
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/BlockDXT.h
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/ColorBlock.cpp
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/ColorBlock.h
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/Common.h
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/DirectDrawSurface.h
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/Image.cpp
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/Image.h
    branches/animsys-aligorith/source/blender/imbuf/intern/filter.c
    branches/animsys-aligorith/source/blender/imbuf/intern/rotate.c
    branches/animsys-aligorith/source/blender/imbuf/intern/thumbs.c
    branches/animsys-aligorith/source/blender/include/BDR_editobject.h
    branches/animsys-aligorith/source/blender/include/BDR_sculptmode.h
    branches/animsys-aligorith/source/blender/include/BIF_butspace.h
    branches/animsys-aligorith/source/blender/include/BIF_editaction.h
    branches/animsys-aligorith/source/blender/include/BIF_editconstraint.h
    branches/animsys-aligorith/source/blender/include/BIF_editseq.h
    branches/animsys-aligorith/source/blender/include/BIF_gl.h
    branches/animsys-aligorith/source/blender/include/BIF_resources.h
    branches/animsys-aligorith/source/blender/include/BIF_space.h
    branches/animsys-aligorith/source/blender/include/BSE_node.h
    branches/animsys-aligorith/source/blender/include/BSE_seqeffects.h
    branches/animsys-aligorith/source/blender/include/BSE_sequence.h
    branches/animsys-aligorith/source/blender/include/BSE_time.h
    branches/animsys-aligorith/source/blender/include/butspace.h
    branches/animsys-aligorith/source/blender/include/multires.h
    branches/animsys-aligorith/source/blender/include/transform.h
    branches/animsys-aligorith/source/blender/makesdna/DNA_action_types.h
    branches/animsys-aligorith/source/blender/makesdna/DNA_constraint_types.h
    branches/animsys-aligorith/source/blender/makesdna/DNA_material_types.h
    branches/animsys-aligorith/source/blender/makesdna/DNA_node_types.h
    branches/animsys-aligorith/source/blender/makesdna/DNA_object_types.h
    branches/animsys-aligorith/source/blender/makesdna/DNA_particle_types.h
    branches/animsys-aligorith/source/blender/makesdna/DNA_sequence_types.h
    branches/animsys-aligorith/source/blender/makesdna/DNA_texture_types.h
    branches/animsys-aligorith/source/blender/nodes/CMP_node.h
    branches/animsys-aligorith/source/blender/python/api2_2x/Blender.c
    branches/animsys-aligorith/source/blender/python/api2_2x/Image.c
    branches/animsys-aligorith/source/blender/python/api2_2x/Mesh.c
    branches/animsys-aligorith/source/blender/python/api2_2x/NLA.c
    branches/animsys-aligorith/source/blender/python/api2_2x/Object.c
    branches/animsys-aligorith/source/blender/python/api2_2x/Scene.c
    branches/animsys-aligorith/source/blender/python/api2_2x/Texture.c
    branches/animsys-aligorith/source/blender/python/api2_2x/bpy_data.c
    branches/animsys-aligorith/source/blender/python/api2_2x/doc/Blender.py
    branches/animsys-aligorith/source/blender/python/api2_2x/doc/NLA.py
    branches/animsys-aligorith/source/blender/python/api2_2x/doc/Object.py
    branches/animsys-aligorith/source/blender/render/extern/include/RE_pipeline.h
    branches/animsys-aligorith/source/blender/render/intern/include/strand.h
    branches/animsys-aligorith/source/blender/render/intern/source/convertblender.c
    branches/animsys-aligorith/source/blender/render/intern/source/imagetexture.c
    branches/animsys-aligorith/source/blender/render/intern/source/rendercore.c
    branches/animsys-aligorith/source/blender/render/intern/source/renderdatabase.c
    branches/animsys-aligorith/source/blender/render/intern/source/shadeoutput.c
    branches/animsys-aligorith/source/blender/render/intern/source/strand.c
    branches/animsys-aligorith/source/blender/render/intern/source/texture.c
    branches/animsys-aligorith/source/blender/src/blenderbuttons.c
    branches/animsys-aligorith/source/blender/src/butspace.c
    branches/animsys-aligorith/source/blender/src/buttons_editing.c
    branches/animsys-aligorith/source/blender/src/buttons_object.c
    branches/animsys-aligorith/source/blender/src/buttons_scene.c
    branches/animsys-aligorith/source/blender/src/buttons_shading.c
    branches/animsys-aligorith/source/blender/src/drawaction.c
    branches/animsys-aligorith/source/blender/src/drawipo.c
    branches/animsys-aligorith/source/blender/src/drawnla.c
    branches/animsys-aligorith/source/blender/src/drawnode.c
    branches/animsys-aligorith/source/blender/src/drawseq.c
    branches/animsys-aligorith/source/blender/src/drawsound.c
    branches/animsys-aligorith/source/blender/src/drawtime.c
    branches/animsys-aligorith/source/blender/src/drawview.c
    branches/animsys-aligorith/source/blender/src/editaction.c
    branches/animsys-aligorith/source/blender/src/editarmature.c
    branches/animsys-aligorith/source/blender/src/editconstraint.c
    branches/animsys-aligorith/source/blender/src/editface.c
    branches/animsys-aligorith/source/blender/src/editipo.c
    branches/animsys-aligorith/source/blender/src/editmesh.c
    branches/animsys-aligorith/source/blender/src/editnla.c
    branches/animsys-aligorith/source/blender/src/editnode.c
    branches/animsys-aligorith/source/blender/src/editobject.c
    branches/animsys-aligorith/source/blender/src/editparticle.c
    branches/animsys-aligorith/source/blender/src/editscreen.c
    branches/animsys-aligorith/source/blender/src/editseq.c
    branches/animsys-aligorith/source/blender/src/editsima.c
    branches/animsys-aligorith/source/blender/src/editsound.c
    branches/animsys-aligorith/source/blender/src/edittime.c
    branches/animsys-aligorith/source/blender/src/editview.c
    branches/animsys-aligorith/source/blender/src/filesel.c
    branches/animsys-aligorith/source/blender/src/header_action.c
    branches/animsys-aligorith/source/blender/src/header_buttonswin.c
    branches/animsys-aligorith/source/blender/src/header_info.c
    branches/animsys-aligorith/source/blender/src/header_nla.c
    branches/animsys-aligorith/source/blender/src/header_node.c
    branches/animsys-aligorith/source/blender/src/header_seq.c
    branches/animsys-aligorith/source/blender/src/header_time.c
    branches/animsys-aligorith/source/blender/src/header_view3d.c
    branches/animsys-aligorith/source/blender/src/headerbuttons.c
    branches/animsys-aligorith/source/blender/src/meshtools.c
    branches/animsys-aligorith/source/blender/src/multires.c
    branches/animsys-aligorith/source/blender/src/outliner.c
    branches/animsys-aligorith/source/blender/src/playanim.c
    branches/animsys-aligorith/source/blender/src/poseobject.c
    branches/animsys-aligorith/source/blender/src/renderwin.c
    branches/animsys-aligorith/source/blender/src/sculptmode-stroke.c
    branches/animsys-aligorith/source/blender/src/sculptmode.c
    branches/animsys-aligorith/source/blender/src/seqaudio.c
    branches/animsys-aligorith/source/blender/src/seqeffects.c
    branches/animsys-aligorith/source/blender/src/sequence.c
    branches/animsys-aligorith/source/blender/src/space.c
    branches/animsys-aligorith/source/blender/src/toets.c
    branches/animsys-aligorith/source/blender/src/toolbox.c
    branches/animsys-aligorith/source/blender/src/transform.c
    branches/animsys-aligorith/source/blender/src/transform_conversions.c
    branches/animsys-aligorith/source/blender/src/verse_object.c
    branches/animsys-aligorith/source/blender/src/view.c
    branches/animsys-aligorith/source/blender/src/vpaint.c
    branches/animsys-aligorith/source/creator/creator.c
    branches/animsys-aligorith/source/nan_compile.mk
    branches/animsys-aligorith/source/nan_definitions.mk
    branches/animsys-aligorith/source/nan_link.mk
    branches/animsys-aligorith/tools/btools.py

Added Paths:
-----------
    branches/animsys-aligorith/source/blender/blenkernel/BKE_multires.h
    branches/animsys-aligorith/source/blender/blenkernel/BKE_sculpt.h
    branches/animsys-aligorith/source/blender/blenkernel/intern/multires-firstlevel.c
    branches/animsys-aligorith/source/blender/blenkernel/intern/multires.c
    branches/animsys-aligorith/source/blender/imbuf/intern/dds/PixelFormat.h
    branches/animsys-aligorith/source/blender/include/BIF_poselib.h
    branches/animsys-aligorith/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c
    branches/animsys-aligorith/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c
    branches/animsys-aligorith/source/blender/src/poselib.c

Removed Paths:
-------------
    branches/animsys-aligorith/source/blender/src/multires-firstlevel.c

Modified: branches/animsys-aligorith/config/win32-mingw-config.py
===================================================================
--- branches/animsys-aligorith/config/win32-mingw-config.py	2008-01-06 16:04:48 UTC (rev 13146)
+++ branches/animsys-aligorith/config/win32-mingw-config.py	2008-01-07 00:59:09 UTC (rev 13147)
@@ -18,7 +18,7 @@
 BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
 
 WITH_BF_FFMPEG = 'false'
-BF_FFMPEG_LIB = 'avformat avutil avcodec'
+BF_FFMPEG_LIB = 'avformat swscale avcodec avutil xvidcore x264'
 BF_FFMPEG_LIBPATH = LIBDIR + '/gcc/ffmpeg/lib'
 BF_FFMPEG_INC =  LIBDIR + '/gcc/ffmpeg/include'
 

Modified: branches/animsys-aligorith/intern/guardedalloc/MEM_guardedalloc.h
===================================================================
--- branches/animsys-aligorith/intern/guardedalloc/MEM_guardedalloc.h	2008-01-06 16:04:48 UTC (rev 13146)
+++ branches/animsys-aligorith/intern/guardedalloc/MEM_guardedalloc.h	2008-01-07 00:59:09 UTC (rev 13147)
@@ -100,9 +100,13 @@
 	void *MEM_mapallocN(unsigned int len, const char * str);
 
 	/** Print a list of the names and sizes of all allocated memory
+	 * blocks. as a python dict for easy investigation */ 
+	void MEM_printmemlist_pydict(void);
+
+	/** Print a list of the names and sizes of all allocated memory
 	 * blocks. */ 
 	void MEM_printmemlist(void);
-
+	
 	/** Set the callback function for error output. */
 	void MEM_set_error_callback(void (*func)(char *));
 

Modified: branches/animsys-aligorith/intern/guardedalloc/intern/mallocn.c
===================================================================
--- branches/animsys-aligorith/intern/guardedalloc/intern/mallocn.c	2008-01-06 16:04:48 UTC (rev 13146)
+++ branches/animsys-aligorith/intern/guardedalloc/intern/mallocn.c	2008-01-07 00:59:09 UTC (rev 13147)
@@ -333,7 +333,8 @@
 }
 
 
-void MEM_printmemlist()
+/* Prints in python syntax for easy */
+static void MEM_printmemlist_internal( int pydict )
 {
 	MemHead *membl;
 
@@ -341,16 +342,51 @@
 
 	membl = membase->first;
 	if (membl) membl = MEMNEXT(membl);
+	
+	if (pydict) {
+		print_error("# membase_debug.py\n");
+		print_error("membase = [\\\n");
+	}
 	while(membl) {
-		print_error("%s len: %d %p\n",membl->name,membl->len, membl+1);
+		if (pydict) {
+			fprintf(stderr, "{'len':%i, 'name':'''%s''', 'pointer':'%p'},\\\n", membl->len, membl->name, membl+1);
+		} else {
+			print_error("%s len: %d %p\n",membl->name,membl->len, membl+1);
+		}
 		if(membl->next)
 			membl= MEMNEXT(membl->next);
 		else break;
 	}
-
+	if (pydict) {
+		fprintf(stderr, "]\n\n");
+		fprintf(stderr,
+"mb_userinfo = {}\n"
+"totmem = 0\n"
+"for mb_item in membase:\n"
+"\tmb_item_user_size = mb_userinfo.setdefault(mb_item['name'], [0,0])\n"
+"\tmb_item_user_size[0] += 1 # Add a user\n"
+"\tmb_item_user_size[1] += mb_item['len'] # Increment the size\n"
+"\ttotmem += mb_item['len']\n"
+"print '(membase) items:', len(membase), '| unique-names:', len(mb_userinfo), '| total-mem:', totmem\n"
+"mb_userinfo_sort = mb_userinfo.items()\n"
+"for sort_name, sort_func in (('size', lambda a: -a[1][1]), ('users', lambda a: -a[1][0]), ('name', lambda a: a[0])):\n"
+"\tprint '\\nSorting by:', sort_name\n"
+"\tmb_userinfo_sort.sort(key = sort_func)\n"
+"\tfor item in mb_userinfo_sort:\n"
+"\t\tprint 'name:%%s, users:%%i, len:%%i' %% (item[0], item[1][0], item[1][1])\n"
+		);
+	}
+	
 	mem_unlock_thread();
 }
 
+void MEM_printmemlist( void ) {
+	MEM_printmemlist_internal(0);
+}
+void MEM_printmemlist_pydict( void ) {
+	MEM_printmemlist_internal(1);
+}
+
 short MEM_freeN(void *vmemh)		/* anders compileertie niet meer */
 {
 	short error = 0;

Modified: branches/animsys-aligorith/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj
===================================================================
--- branches/animsys-aligorith/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj	2008-01-06 16:04:48 UTC (rev 13146)
+++ branches/animsys-aligorith/projectfiles_vc7/blender/blenkernel/BKE_blenkernel.vcproj	2008-01-07 00:59:09 UTC (rev 13147)
@@ -423,6 +423,12 @@
 				RelativePath="..\..\..\source\blender\blenkernel\intern\modifier.c">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\blenkernel\intern\multires-firstlevel.c">
+			</File>
+			<File
+				RelativePath="..\..\..\source\blender\blenkernel\intern\multires.c">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\blenkernel\intern\nla.c">
 			</File>
 			<File
@@ -616,6 +622,9 @@
 				RelativePath="..\..\..\source\blender\blenkernel\BKE_modifier.h">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\blenkernel\BKE_multires.h">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\blenkernel\BKE_nla.h">
 			</File>
 			<File

Modified: branches/animsys-aligorith/projectfiles_vc7/blender/blenlib/BLI_blenlib.vcproj
===================================================================
--- branches/animsys-aligorith/projectfiles_vc7/blender/blenlib/BLI_blenlib.vcproj	2008-01-06 16:04:48 UTC (rev 13146)
+++ branches/animsys-aligorith/projectfiles_vc7/blender/blenlib/BLI_blenlib.vcproj	2008-01-07 00:59:09 UTC (rev 13147)
@@ -359,6 +359,9 @@
 				RelativePath="..\..\..\source\blender\blenlib\intern\boxpack2d.c">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\blenlib\intern\bpath.c">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\blenlib\intern\dynlib.c">
 			</File>
 			<File
@@ -429,6 +432,9 @@
 				RelativePath="..\..\..\source\blender\blenlib\BLI_boxpack2d.h">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\blenlib\BLI_bpath.h">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\blenlib\intern\BLI_callbacks.h">
 			</File>
 			<File

Modified: branches/animsys-aligorith/projectfiles_vc7/blender/src/BL_src.vcproj
===================================================================
--- branches/animsys-aligorith/projectfiles_vc7/blender/src/BL_src.vcproj	2008-01-06 16:04:48 UTC (rev 13146)
+++ branches/animsys-aligorith/projectfiles_vc7/blender/src/BL_src.vcproj	2008-01-07 00:59:09 UTC (rev 13147)
@@ -440,9 +440,6 @@
 				RelativePath="..\..\..\source\blender\src\meshtools.c">
 			</File>
 			<File
-				RelativePath="..\..\..\source\blender\src\multires-firstlevel.c">
-			</File>
-			<File
 				RelativePath="..\..\..\source\blender\src\multires.c">
 			</File>
 			<File
@@ -464,6 +461,9 @@
 				RelativePath="..\..\..\source\blender\blenpluginapi\intern\pluginapi.c">
 			</File>
 			<File
+				RelativePath="..\..\..\source\blender\src\poselib.c">
+			</File>
+			<File
 				RelativePath="..\..\..\source\blender\src\poseobject.c">
 			</File>
 			<File

Modified: branches/animsys-aligorith/release/datafiles/blenderbuttons
===================================================================
(Binary files differ)

Modified: branches/animsys-aligorith/source/blender/avi/intern/avi.c
===================================================================
--- branches/animsys-aligorith/source/blender/avi/intern/avi.c	2008-01-06 16:04:48 UTC (rev 13146)
+++ branches/animsys-aligorith/source/blender/avi/intern/avi.c	2008-01-07 00:59:09 UTC (rev 13147)
@@ -190,6 +190,7 @@
 	AVI_DEBUG= mode;
 }
 
+/*
 int AVI_is_avi (char *name) {
 	FILE *fp;
 	int ret;
@@ -209,7 +210,196 @@
 	fclose(fp);
 	return ret;
 }
+*/
 
+int AVI_is_avi (char *name) {
+	int temp, fcca, j;
+	AviMovie movie;
+	AviMainHeader header;
+	AviBitmapInfoHeader bheader;
+	
+	DEBUG("opening movie\n");
+
+	memset(&movie, 0, sizeof(AviMovie));
+
+	movie.type = AVI_MOVIE_READ;
+	movie.fp = fopen (name, "rb");
+	movie.offset_table = NULL;
+
+	if (movie.fp == NULL)
+		return 0;
+
+	if (GET_FCC (movie.fp) != FCC("RIFF") ||
+	    !(movie.size = GET_FCC (movie.fp))) {
+	    fclose(movie.fp);
+		return 0;
+	}
+
+	movie.header = &header;
+
+	if (GET_FCC (movie.fp) != FCC("AVI ") ||
+	    GET_FCC (movie.fp) != FCC("LIST") ||
+	    !GET_FCC (movie.fp) ||
+	    GET_FCC (movie.fp) != FCC("hdrl") ||
+	    (movie.header->fcc = GET_FCC (movie.fp)) != FCC("avih") ||
+	    !(movie.header->size = GET_FCC (movie.fp))) {
+		DEBUG("bad initial header info\n");
+		fclose(movie.fp);
+		return 0;
+	}
+	
+	movie.header->MicroSecPerFrame = GET_FCC(movie.fp);
+	movie.header->MaxBytesPerSec = GET_FCC(movie.fp);
+	movie.header->PaddingGranularity = GET_FCC(movie.fp);
+	movie.header->Flags = GET_FCC(movie.fp);
+	movie.header->TotalFrames = GET_FCC(movie.fp);
+	movie.header->InitialFrames = GET_FCC(movie.fp);
+	movie.header->Streams = GET_FCC(movie.fp);
+	movie.header->SuggestedBufferSize = GET_FCC(movie.fp);
+	movie.header->Width = GET_FCC(movie.fp);
+	movie.header->Height = GET_FCC(movie.fp);
+	movie.header->Reserved[0] = GET_FCC(movie.fp);
+	movie.header->Reserved[1] = GET_FCC(movie.fp);
+	movie.header->Reserved[2] = GET_FCC(movie.fp);
+	movie.header->Reserved[3] = GET_FCC(movie.fp);
+
+	fseek (movie.fp, movie.header->size-14*4, SEEK_CUR);
+
+	if (movie.header->Streams < 1) {
+		DEBUG("streams less than 1\n");
+		fclose(movie.fp);
+		return 0;
+	}
+	
+	movie.streams = (AviStreamRec *) MEM_callocN (sizeof(AviStreamRec) * movie.header->Streams, "moviestreams");
+
+	for (temp=0; temp < movie.header->Streams; temp++) {
+
+		if (GET_FCC(movie.fp) != FCC("LIST") ||
+		    !GET_FCC (movie.fp) ||
+		    GET_FCC (movie.fp) != FCC ("strl") ||
+		    (movie.streams[temp].sh.fcc = GET_FCC (movie.fp)) != FCC ("strh") ||
+		    !(movie.streams[temp].sh.size = GET_FCC (movie.fp))) {
+			DEBUG("bad stream header information\n");
+			
+			MEM_freeN(movie.streams);
+			fclose(movie.fp);
+			return 0;				
+		}
+
+		movie.streams[temp].sh.Type = GET_FCC (movie.fp);
+		movie.streams[temp].sh.Handler = GET_FCC (movie.fp);
+
+		fcca = movie.streams[temp].sh.Handler;
+		
+		if (movie.streams[temp].sh.Type == FCC("vids")) {
+			if (fcca == FCC ("DIB ") ||
+				fcca == FCC ("RGB ") ||
+				fcca == FCC ("rgb ") ||
+				fcca == FCC ("RAW ") ||
+				fcca == 0) {
+				movie.streams[temp].format = AVI_FORMAT_AVI_RGB;
+			} else if (fcca == FCC ("mjpg")||fcca == FCC ("MJPG")) {
+				movie.streams[temp].format = AVI_FORMAT_MJPEG;
+			} else {
+				MEM_freeN(movie.streams);
+				fclose(movie.fp);
+				return 0;
+			}
+		}
+		
+		movie.streams[temp].sh.Flags = GET_FCC (movie.fp);
+		movie.streams[temp].sh.Priority = GET_TCC (movie.fp);
+		movie.streams[temp].sh.Language = GET_TCC (movie.fp);
+		movie.streams[temp].sh.InitialFrames = GET_FCC (movie.fp);
+		movie.streams[temp].sh.Scale = GET_FCC (movie.fp);
+		movie.streams[temp].sh.Rate = GET_FCC (movie.fp);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list